ruby+selenium自动化测试-----多个测试用

发表于:2012-09-04来源:Csdn作者:janne09点击数: 标签:ruby
在上一篇“逻辑与数据分离”中只有一个测试用例,在这篇中主要是针对多个用例。验证用户名、密码全部错误;用户名、密码全部为空;用户名为空;密码为空,几种情况登录。

  在上一篇“逻辑与数据分离”中只有一个测试用例,在这篇中主要是针对多个用例。验证用户名、密码全部错误;用户名、密码全部为空;用户名为空;密码为空,几种情况登录。

  1.D盘新建文件夹test005,文件结构与“逻辑与数据分离中一致”

  2.login_dialog.rb文件内容与上一篇“面向对象编程”面向对象编程”中login_dialog.rb内容一致

  3.login_main_page.rb文件内容与上一篇“面向对象编程”中login_main_page.rb一致

  4.login_data.yml文件中书写如下内容:

  [ruby] view plaincopydata:

  mainPage:

  url: http://www.soso.com

  title: 搜搜更懂你

  login:

  wrong:

  username: test

  password: test

  message: 您输入的帐号或密码不正确,请重新输入。意见反馈

  allNotExist:

  username:

  password:

  message: 您还没有输入帐号!意见反馈

  usernameNotExist:

  username:

  password: test

  message: 您还没有输入帐号!意见反馈

  passwordNotExist:

  username: test

  password:

  message: 您还没有输入密码!意见反馈

  5.login_spec.rb文件中编写如下内容:

  [ruby] view plaincopy#encoding: utf-8

  require "rspec"

  require 'yaml'

  require 'selenium-webdriver'

  require File.dirname(__FILE__)+'/../tool/login_dialog'

  require File.dirname(__FILE__)+'/../action/login_main_page'

  describe "soso login" do

  include LoginDialog

  #before(:all) do

  # @problem=YAML.load(File.open(File.dirname(__FILE__)+'/../../sosoLogin/config/login_data.yml'))

  # @dr=Selenium::WebDriver.for :firefox

  # @url=@problem["data"]["mainPage"]["url"]

  # @dr.get @url

  #end

  before(:each) do

  @problem=YAML.load(File.open(File.dirname(__FILE__)+'/../config/login_data.yml'))

  @dr=Selenium::WebDriver.for :firefox

  @url=@problem["data"]["mainPage"]["url"]

  @dr.get @url

  @login_element=LoginMainPage.new(@dr)

  end

  it "should should open soso url" do

  @dr.title.should eql (@problem["data"]["mainPage"]["title"])

  close_browser

  end

  it "should return username and password is wrong" do

  @login_element.login(@problem["data"]["login"]["wrong"]["username"],@problem["data"]["login"]["wrong"]["password"])

  err_message.should eql (@problem["data"]["login"]["wrong"]["message"])

  close_browser

  end

  it "should return username and password are not exist" do

  @login_element.login(@problem["data"]["login"]["allNotExist"]["username"],@problem["data"]["login"]["allNotExist"]["password"])

  err_message.should eql (@problem["data"]["login"]["allNotExist"]["message"])

  close_browser

  end

  it "should return username is not exist" do

  @login_element.login(@problem["data"]["login"]["usernameNotExist"]["username"],@problem["data"]["login"]["usernameNotExist"]["password"])

  err_message.should eql (@problem["data"]["login"]["usernameNotExist"]["message"])

  close_browser

  end

  it "should return password is not exist" do

  @login_element.login(@problem["data"]["login"]["passwordNotExist"]["username"],@problem["data"]["login"]["passwordNotExist"]["password"])

  err_message.should eql (@problem["data"]["login"]["passwordNotExist"]["message"])

  close_browser

  end

  end

  6.命令行执行命令:

  [ruby] view plaincopycd d:\test005

  rspec -f doc

  运行结果:

  [ruby] view plaincopysoso login

  should should open soso url

  should return username and password is wrong

  should return username and password are not exist

  should return username is not exist

  should return password is not exist

  Finished in 49.11 seconds

  5 examples, 0 failures

原文转自:http://www.ltesting.net