Watir数据驱动 - Excel

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

 

 

 

你可能感兴趣的:(Excel,Google,脚本,search,Class,interface)