Ruby WEB自动化测试框架Watir的打包

来源:互联网 发布:java知名培训机构 编辑:程序博客网 时间:2024/05/16 19:00

Watir 是一个使用 Ruby 实现的开源Web 自动化测试框架,相对于那些庞大的商业工具来说,它很小巧,也很灵活。Watir不仅可以支持IE浏览器,也可以支持Firefox浏览器。其应用范围也不仅限于WEB自动化测试,各种复杂的WEB自动化功能都可以用它来完成,例如自动抓取分析一些关注的网页。

 最近帮一个同事把他写的基于Watir的自动化脚本用Script.NET生成独立可执行文件时候,发现一些问题,一开始生成的exe总是无法运行,简单研究了一下,最终终于生成了可以执行的exe,现在把生成的过程描述一下供大家参考。

 

1、首先要把Watir的所有依赖库都拷贝到Script.NET的ruby库目录下,因为Script.NET到2.2版本的Ruby开发包中并没有包含Waitr,可以在其他的ruby环境下先通过gem把watir下载下来,然后从ruby环境的gem目录(例如E:/ruby/lib/ruby/gems/1.8/gems)把下面几个子目录中的lib子目录的内容全部拷贝到Script.NET的ruby lib目录中(目录为Script.NET/V2/interps/ruby/lib/ruby/1.8):

activesupport-2.2.2

builder-2.1.2

commonwatir-1.6.2

firewatir-1.6.2

hoe-1.9.0

rake-0.8.4

rubyforge-1.0.3

s4t-utils-1.0.4

user-choices-1.1.6

watir-1.6.2

win32-api-1.4.0

win32-process-0.6.0

windows-api-0.3.0

windows-pr-1.0.1

xml-simple-1.0.12

 

2、拷贝上上面这些库之后,在Script.NET中已经可以运行Watir应用了,但构建成可执行文件之后再运行,确提示加载watir/IEDialog/Release/IEDialog.dll文件失败,可能因为Script.NET目前使用的打包方法在应用时候的问题,没有能够把这个动态库打进exe中,暂时没有时间深入研究,但是可以采用一个简单方法来规避,就是把IEDialog.dll文件不打进去,直接放在生成出的exe相同目录下来使用,但watir默认加载的IEDialog.dll就是在上面所说的lib的watir/IEDialog/Release目录中,要在其他目录加载的话,可以修改watir目录下的win32.rb文件的第4行,原来的内容如下:

    @@iedialog_file = (File.expand_path(File.dirname(__FILE__) + '/..') + "/watir/IEDialog/Release/IEDialog.dll").gsub('/', '//')
修改为

    @@iedialog_file = 'IEDialog.dll'

就可以,这样修改之后IEDialog.dll文件只要在能找到的路径中就可以。

修改之后打包和运行脚本时候都需要把IEDialog.dll文件拷贝到需要生成exe的ruby脚本目录下才可以。

 

当然,目前这种方法并不是很完美的解决方案,Script.NET以后的版本会深入分析一下ruby的打包问题,正确让打包工作更完善、灵活、自动。

原创粉丝点击