Watir数据驱动 - Excel

本文介绍如何使用Ruby的Watir库结合Excel进行数据驱动的自动化测试。通过win32ole包读取Excel文件中的测试数据,并利用这些数据执行一系列搜索测试。文章提供了具体的代码示例,展示了从获取数据到执行测试的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值