ruby+selenium完成自動化測試-----邏輯與數據

發表于:2012-09-04來源:Csdn作者:janne09點擊數: 標簽:
上一篇面向對象編輯,貌似這個用例已經很完美,但是還有不完善的地方,測試數據(用戶名、密碼、斷言的判斷數據)還是硬編碼,要想做的更完美,實現邏輯與數據分離,這才是自動化測試的真諦。

  上一篇面向對象編輯,貌似這個用例已經很完美,但是還有不完善的地方,測試數據(用戶名、密碼、斷言的判斷數據)還是硬編碼,要想做的更完美,實現邏輯與數據分離,這才是自動化測試的真諦。

  方法:運用yaml,讀取配置文件中測試數據

  1.創建文件目錄:

  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: 您輸入的帳號或密碼不正確,請重新輸入。意見反饋

  5.login_spec.rb文件中編寫如下內容:

  [ruby] view plaincopy#encoding: utf-8

  require "rspec"

  require 'yaml'

  require 'selenium-webdriver'

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

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

  describe "soso login" do

  include LoginDialog

  before(:all) do

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

  @dr=Selenium::WebDriver.for :firefox

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

  #@url='http://www.soso.com'

  @dr.get @url

  end

  before(:each) do

  @login_element=LoginMainPage.new(@dr)

  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

  end

  6.命令行運行命令:

  [plain] view plaincopycd d:\test004

  rspec -f doc

  得到如下結果:

  [plain] view plaincopysoso login

  should return username and password is wrong

  Finished in 9.23 seconds

  1 example, 0 failures

  運行通過

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97