师傅领进门,修行靠个人。

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:

 

评分:0

我来说两句

Open Toolbar