昨天因为要装watir-webdriver的原因将用了快一年的ruby1.8.6升级到了1.9。由于1.9是原生支持unicode编码,所以我们可以使用中文进行自动化脚本的编写工作。
做了简单的封装后,我们可以实现如下的自动化测试代码。请注意,这些代码是可以正确运行并作为正式的自动化测试用例的。
- 测试浏览器 = Watir::Browser.new :firefox
测试浏览器.转到 'www.google.com'
在(测试浏览器.的.text_field(:name, "q")).中.输入 "qq"
点击 测试浏览器.的.button(:name, "btnG")
等待(测试浏览器.的.div(:id, "resultStats"))
断言 '测试通过' if 测试浏览器.的.text.包含('腾讯QQ')
关闭 测试浏览器
这样做有什么好处呢?
当然,测试脚本中文化,自然化口语化也会带来一些列的问题,这点我们也必须清楚认识到。
总结一下,个人的观点如下:
对于产品代码来说,中英文混编的风格目前来说应该是不合时宜的。但对于测试脚本来说,中文越多,用例可读性越高,自动化测试代码越接近手动用例,这反而应该是一件不错的事情。这在里先抛砖引玉,希望有志同道合者可以一起研究,让自动化脚本更加的人性、自然、可读、可维护。也许在不远的将来,手动用例可以直接拿来当自动化用例执行也未尝不可能。
下面是用例的完整代码,由于只是演示兴致,因此只是随意在Module层进行了简单的可视化封装,过于简陋和demo,还望砖家手下留情。
- # encoding: utf-8
require 'rubygems'
require 'watir-webdriver'
module CWrap
def 点击(obj)
obj.click rescue obj.class.to_s + '对象无法进行点击'
end
def 加载完毕()
self
end
alias :中 :加载完毕
alias :的 :中
alias :应该 :的
def 在(obj)
obj
end
def 等待(obj)
obj.wait_until_present rescue puts('该' + obj.class.to_s + '对象无法进行等待操作')
end
def 关闭(obj)
obj.close rescue puts('无法关闭这个' + obj.class.to_s + '对象')
end
def 输入(text)
self.set text rescue puts('这个' + self.class.to_s + '对象无法进行输入')
end
def 转到(url)
self.goto url rescue puts(self.class.to_s + '对象不是一个浏览器对象')
end
def 包含(text)
self.include? text rescue puts self.class.to_s + '对象无法进行包含操作'
end
def 断言(text)
puts text
end
end
include CWrap
测试浏览器 = Watir::Browser.new :firefox
测试浏览器.转到 'www.google.com'
在(测试浏览器.的.text_field(:name, "q")).中.输入 "qq"
点击 测试浏览器.的.button(:name, "btnG")
等待(测试浏览器.的.div(:id, "resultStats"))
断言 '测试通过' if 测试浏览器.的.text.包含('腾讯QQ')
关闭 测试浏览器
以上就是手工测试用例就是自动化测试脚本——使用ruby 1.9新特性进行自动化脚本的编写的详细内容,更多关于手工测试用例就是自动化测试脚本——使用ruby 1.9新特性进行自动化脚本的编写的资料请关注九品源码其它相关文章!