上一篇的小例子可以正常执行通过,但是这并不代表就可以按照这个思路写测试代码了。自动化测试与手工测试是一样的,要有测试用例,有执行有结果,但是上一篇的例子里并没有。
众所周知,java开发用JUnit进行单元测试、C#开发用NUit进行单元测试,selenium-webdriver也需要一个这样的测试框架来执行测试用例,这个框架可以用test::Unit,也可以用文中所用的rspec
目标:利用测试框架rspec创建一个测试用例,运行上一节的代码
1.D盘下新建目录test002
2.test002中新建文件夹spec
3.打开编辑器SciTE新建一个文件
4.文件中编写如下代码
#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
5.保存文件至d:\test002\spec文件夹下,文件名为:soso_login_spec.rb
6.命令行执行命令:
cd D:\test002\
rspec -f doc
看到结果:
soso mainpage login
should return username and password is wrong
Finished in 11.06 seconds
1 example, 0 failures
证明测试用例运行成功
rspec基本语法:http://reverocean.iteye.com/blog/1489957