上一篇的小例子可以正常執行通過,但是這并不代表就可以按照這個思路寫測試代碼了。自動化測試與手工測試是一樣的,要有測試用例,有執行有結果,但是上一篇的例子里并沒有。
眾所周知,java開發用JUnit進行單元測試、C#開發用NUit進行單元測試,selenium-webdriver也需要一個這樣的測試框架來執行測試用例,這個框架可以用test::Unit,也可以用文中所用的rspec
目標:利用測試框架rspec創建一個測試用例,運行上一節的代碼
1.D盤下新建目錄test002
2.test002中新建文件夾spec
3.打開編輯器SciTE新建一個文件
4.文件中編寫如下代碼
[ruby] view plaincopy#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.命令行執行命令:
[plain] view plaincopycd D:\test002\
rspec -f doc
看到結果:
[plain] view plaincopysoso mainpage login
should return username and password is wrong
Finished in 11.06 seconds
1 example, 0 failures
證明測試用例運行成功
原文轉自:http://www.anti-gravitydesign.com