师傅领进门,修行靠个人。
ruby+selenium-webdriver完成自动化测试(1)
上一篇 /
下一篇 2012-07-22 14:44:11
/ 个人分类:selenium
第一个小例子,登录soso首页,代码如下:
require 'rubygems'
require 'selenium-webdriver'
dr=Selenium::WebDriver.for :firefox
url='http://www.soso.com'
dr.get url
links=dr.find_element(:id;'ua').find_elements(:css;'a')
links[1].click
links[1].send_keys(:enter)
dr.switch_to.frame('login_frame')
sleep 2
dr.find_element(:id;'u').send_keys("test")
dr.find_element(:id;'p').send_keys("test")
dr.find_element(:id;'login_button').click
代码写出来了,运行通过,但是这并不是一个测试用例。
上一篇的小例子可以正常执行通过,但是这并不代表就可以按照这个思路写测试代码了。自动化测试与手工测试是一样的,要有测试用例,有执行有结果,但是上一篇的例子里并没有。
众所周知,java开发用JUnit进行单元测试、C#开发用NUit进行单元测试,selenium-webdriver也需要一个这样的测试框架来执行测试用例,这个框架可以用test::Unit,也可以用文中所用的rspec
目标:利用测试框架rspec创建一个测试用例,运行上一节的代码
1.安装rspec
命令行中执行命令:gem install rspec
基本结构:
describe
用例组
it
用例
should
断言
#encoding: utf-8
require 'selenium-webdriver'
describe "soso mainpage login" do
it "should return username and password is wrong" do
dr=Selenium::WebDriver.for :firefox
url='http://www.soso.com'
dr.get url
links=dr.find_element(:id=>'ua').find_elements(:css=>'a')
links[1].click
links[1].send_keys(:enter)
dr.switch_to.frame('login_frame')
sleep 2
dr.find_element(:id=>'u').send_keys("test")
dr.find_element(:id=>'p').send_keys("test")
dr.find_element(:id=>'login_button').click
dr.find_element(:id=>'err_m').text.should eql ("您输入的帐号或密码不正确,请重新输入。意见反馈")
end #it
end #describe
运行结果应为:
soso mainpage login
should return username and password is wrong
Finished in 11.06 seconds
1 example, 0 failures
证明测试用例运行成功。
但目前我在eclipse中运行,没有任何的输出信息和错误提示,
在命令行中貌似也运行不了。
备注:资料来源于http://17test.info (乙醇开源自动化测试blog)
收藏
举报
TAG: