2013-10-28 27 views
0

我有50多個Watir測試腳本,它們當前只是檢查每個內部定義的特定URL。Watir webdriver - 將變量傳遞給多個測試?

現在我們啓動了另外4個網站,並希望在所有5個網站上運行這些測試。保持5包50+測試將是未來的噩夢。

有沒有一種方法可以將一個變量傳遞給所有具有要訪問的URL的單個測試。

例如

url = "http://site1.com" 

如果我們想通過這種方式來測試,然後站點2,我們只需要改變url變量,而不是每一個腳本。

url = "http://site2.com" 

試驗例:

require "watir-webdriver" 

browser = Watir::Browser.new :chrome 

browser.goto "http://url.com/" 

browser.text_field(:id, "edit-search").set("Accounting") 
browser.button(:value,"Search").click 
browser.link(:text, "Accounting Manager with a leading US MNC").click 
browser.link(:text, "Apply").click 
browser.text_field(:id, "edit-firstname").set("hi2") 
browser.text_field(:id, "edit-lastname").set("hi") 
browser.text_field(:id, "edit-email").set("[email protected]") 
browser.text_field(:id, "edit-current-job").set("Test") 
browser.radio(:id, "edit-use-stored").click 
browser.radio(:id, "edit-existing-cv-319706").click 
browser.text_field(:id, "edit-message").set("Testing") 
browser.checkbox(:id, "edit-create-alert").click 
browser.button(:value,"Apply").click 
browser.screenshot.save '..\screenshots\ApplyWithAlertNonRegistered.png' 
browser.link(:text, "Home").click 
browser.close 
+0

我使用的是寫在紅寶石 – CustomNet

+0

的Watir-的webdriver的Watir webdriver的僅僅是用於驅動器的庫。通常,您可以在測試框架中使用該測試框架,測試運行,報告等。例如,一些流行的Ruby測試框架是RSpec,Cucumber,MiniTest和Test/Unit。 –

+0

哦不,剛剛的Watir webdriver的,我將添加一個樣本測試的問題 – CustomNet

回答

0

雖然我會建議遷移到一個實際的測試框架,我認爲下面的方法將工作你的情況。

解決方案1 ​​ - 通過值從批次到測試

在測試腳本,你可以從使用argv數組批處理文件傳遞的參數。

  1. 在您的批處理文件中,您可以定義URL並將其作爲參數傳遞給測試腳本。

    SET URL="http://site2.com" 
    ruby test_example1.rb %URL% 
    ruby test_example2.rb %URL% 
    
  2. 你的測試會得到ARGV [0]值,轉向它:

    browser.goto ARGV[0] 
    
  3. 對於每個測試運行,你就需要更新批次正確的URL。

解決方案2 - 在一個助手文件

一種替代的解決方案是在由每個測試包括一個變量來指定URL中指定的URL。這可能是更好的方法,特別是如果有多個變量。

  1. 創建一個test_helper.rb中的文件:

    url = "http://site1.com" 
    
  2. 對於每一個測試腳本,需要這種test_helper文件,並使用URL變量:

    require "watir-webdriver" 
    require "test_helper" #(Change path if not in the same folder) 
    browser = Watir::Browser.new :chrome 
    browser.goto url 
    
  3. 每個前測試運行,更新test_helper.rb文件以指向正確的url。

+0

非常有用,並且有多種方法,非常感謝! – CustomNet

0

我喜歡賈斯汀的回答,但另一種選擇是Fig Newton。它允許你根據你運行的系統(localhost,jenkins,UAT等等)來改變多個變量。

0

Justin - 在test_helper文件中,可以設置瀏覽器類型(chrome,即或ff)並將該變量傳遞給每個測試腳本;所以,如果我想更改瀏覽器,我只需要在test_helper文件中更改它,而不必進入每個測試腳本進行更改?

如果可能的話,這將如何看待test_helper文件和測試腳本? test_helper:type = ff 測試腳本:browser = Watir :: Browser.new:type

謝謝!