Watir資料驅動 - Excel

TIB發表於2010-01-24

Watir中做資料驅動,採用Excel作為資料來源是個不錯的選擇,使用Excel需要win32ole包,讀取Excel非常方便:

 

require 'win32ole'

 

excel = WIN32OLE::new('excel.Application')

 

workbook = excel.Workbooks.Open('D://Ruby Watir//Watir//watir project//Data.xls')

worksheet = workbook.Worksheets(1) #定位到第一個sheet

worksheet.Select

 

line=1

data = []

while worksheet.Range("a#{line}")['value']

    puts worksheet.Range("a#{line}:b#{line}")['value'] #輸出每行的第一列和第二列資料

    data << worksheet.Range("a#{line}:b#{line}")['value'] #存到陣列中 

    line = line + 1

end

 

excel.Quit

 

 

關於Watir資料驅動:

http://wiki.openqa.org/display/WTR/Data-Driven+Tests

 

 

有現成的Excel介面類庫可以簡化Excel資料的讀寫:

http://wiki.openqa.org/display/WTR/Excel+interface+class

 

下面是採用這個類庫寫的Watir資料驅動測試指令碼:

require 'xls'

require 'watir'

 

xlFile = XLS.new(Dir.pwd + '/test_XLS_data.xls') #grab the data file in the same dirrectory

myData = xlFile.getRowRecords('Google Search Data','Example')  #pull data records  from excel

xlFile.close

myData.each do |record|

  ie = Watir::IE.start('google.com')

  ie.text_field(:name,'q').set(record['SearchString'])

  ie.button(:value,/Search/i).click

  if ie.contains_text(record['ContainsText'])

    puts "Results of search: '#{record['SearchString']}' contains '#{record['ContainsText']}'"

  else

    puts "Error: could not find text: '#{record['ContainsText']}' in results of search: '#{record['SearchString']}'"

  end

  sleep 3

  ie.close

end

 

 

 

相關文章