netbeans + ruby + watir web自动测试框架搭建
这是一个开源,免费,灵巧,简易的web自动化测试组合框架;通常情况,开源的东西总是给人以迷人,开放式的触感,但同时,也让人难以快速接近(像是东方男人看待西方美女);要了解一个开源而且组合漂亮的框架,总是要费些周章......总而言之,它不会像收费的东西,你很讨厌它,但不可否认,你的付费其实换取了别人的琐碎劳动成本,各有利弊(就像某些肉体交易似的)。
1.netbeans还是那个netbeans。其实你完全可以不用它,可以直接使用记事本编码,然后ruby命令运行。不过还是那个原因,对于老是在“万千”项目中转来转去的我们这些人,不像那些专注于某一门IT艺术的开发者,我们老不停地接触新项目,它不大,却很繁琐,因为它老是根据我们自己的,或者“老板”的意志到处转移,所以,基本上我们没有太多时间专注某一门艺术......这样,就要求我们对大多数东西都希望它尽快搭建完整,进入测试使用阶段;对,这就是我现在的工作,哈哈!最新版本netbeans 6.8!
2.ruby。最新已经是1.9.1了,但是我还是安装了1.8.6,原因?很简单!我google.com.hk到的第一个就是它,哈哈!
3.watir就该细细说了,呵呵,因为前面两个简单的缘故,这个安装理所当然复杂点,要不然余下的时间又该空虚寂寞冷了。
Watir全称是“Web Application Testing in Ruby”,发音类似“water”。
Watir能做什么?
Watir是一个Ruby库,使用IE浏览器进行Web应用程序测试。
Watir可以使用IE5.5,IE6.0,IE7.0,支持Win2000,WinXP,Win2003 Server,Vista。
Watir可以模拟用户点击链接,填写表单,点击按钮。
Watir可以模拟用户验证页面内容。
Watir不能做什么?
Watir不能用于Firefox,Safari浏览器,一个替代方案是使用Firewatir或者Safariwatir。
Watir不能用于Ajax control的测试。
Watir不支持Activex的测试
Watir不支持IE Dialog的支持(以前曾经支持过)。
因为ruby装的不是最新版本,所以,最新版本的watir安装失败,这个最新版本是watir-1.6.5.gem。经过极其十分非常严格的安装测试,发现watir-1.5.6.gem可以装得进去!
注意事项:
1).本地安装命令: gem install watir-1.5.6.gem 注释:【这里不是命令部分!】需要cd到watir-1.5.6.gem所在目录
2).远程安装命令: gem install watir-1.5.6.gem --remote
3).运行ruby安装目录/lib/ruby/gems/1.8/gems/wa
相关文档:
最近由于学习使用linux下的C开发,需要查询Linux C函数参考,就经常上http://man.chinaunix.net/develop/c&c++/linux_c/default.htm查看,描述得比较详细而且还有例子。
网上还有许多各种技术的网页格式的参考材料都非常强大,可惜很多时候都没有网。于是就想写个脚本可以把文档下载,像android开发者文档一样弄到本地 ......
可用库:getoptlong.rs, optionparser
对应类:GetoptLong, OptionParser
前者已过时,建议使用后者,且后者比前者易用。
后者特点:
1. 参数描述和代码处理写在一起
2. 输出参数说明,不需单独维护
3. 可选参数和命令参数描述简洁
4. 参数可自动转换为特定的类
5. ......
转自 http://www.advidea.cn/biancheng/200943135232.html
Ruby watir 测试框架
大多数人都会安装 ruby,
也通过Ruby 安装 gem,
也安装了ruby IDE开发工具:netbeans,
但就是不能跑watir环境,狂晕加吐中。。。
错误如下:
in `require': no such file to load -- watir (LoadError)
反正就是找不到watir,这里 ......
class Point
@x = 1
@y = 2
def initialize(x,y)
@x,@y = x,y
end
end
代码中的@x,@y为实例变量,实例变量只对self的环境起作用,因此initialize外面的@x=1,@y=2只对类本身起作用,而方法内部,的@x,@y是对对象的实例起作用的。
class Point
include Enumerable
def initialize(x ......
正常情况下,ruby如果发现文件夹中有system,readonly,hide类型的文件,则是不能直接删除
他们的。如何解决呢?
以其人之道还治其人之身!
def dryf(fpath) #destroy file
x = Iconv.iconv('utf-8','gbk',fpath).to_s
%x{attrib -R -S -H \"#{Iconv.iconv('gbk','utf-8',x).to_s}\"}
f = File.new(f ......