ruby+selenium-webdriver一步一步完成自動化測試-----邏輯與數據分離

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

1.創建文件目錄:


2.login_dialog.rb文件內容與上一篇“面向對象編程”面向對象編程”中login_dialog.rb內容一致

3.login_main_page.rb文件內容與上一篇“面向對象編程”login_main_page.rb一致

4.login_data.yml文件中編寫如下內容:

data:
  mainPage:
    url: http://www.soso.com
    title: 搜搜更懂你

  login:
    wrong:
      username: test
      password: test
      message: 您輸入的帳號或密碼不正確,請重新輸入。意見反饋

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

#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.命令行運行命令:

cd d:\test004
rspec -f doc

得到如下結果:

soso login
  should return username and password is wrong

Finished in 9.23 seconds
1 example, 0 failures

運行通過

源代碼下載地址:http://download.csdn.net/detail/janne09/4402271

發佈了33 篇原創文章 · 獲贊 22 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章