2016-05-04 55 views
1

我想用機器人框架實現硒網格。我已經配置了硒網格集線器和兩個節點,但是我不知道如何在此設置之後觸發並行測試用例執行,在哪裏使用python語言和selenium 2 lib關鍵字更新線程數和並行測試執行設置。另外,在哪裏分配集線器URL來觸發執行?請爲此提出可能的解決方法。 注意:我們在腳本中使用了selenium 2 lib關鍵字,而不是webdriver關鍵字,因此我無法使用'webdriver.remote'關鍵字來創建集線器實例。 謝謝!Selenium grid用Robot框架實現

我的框架有:目錄 - >多個測試套件 - >每個測試套件中的多個測試用例。 通過在teamcity上運行的powershell觸發機器人測試用例執行通過使用命令Python -m robot.run -i $ tag 但是,它會觸發測試用例的順序執行,這需要大約10個小時才能完成執行。所以我正在尋找解決方案,通過並行運行測試用例來減少總執行時間。

+1

看看https://github.com/mkorpela/pabot。不知道這是你需要的。 – jim

回答

4

I have no idea about how to trigger parallel test case execution

機器人沒有任何內置的支持並行運行測試,除了可以同時運行兩次機器人的事實。如果您想針對兩個不同的瀏覽器運行相同的測試,那麼您必須運行兩次機器人,併爲每次測試運行使用一組不同的參數(即:瀏覽器規格)。

您可能可以使用pabot,雖然它設計爲將一個測試分成兩個或多個部分,而不是運行一次測試兩次。你可能能夠適應你的需求。

還有很多其他解決方案。例如,如果您正在使用CI服務器,則可以設置兩個作業運行,並創建第三個作業,當這兩個作業完成後,這兩個作業將輸出這些作業並將它們合併到一個報表中。

如果你是一個bash shell中的系統上,另一種解決方案是編寫你自己的測試發射,看起來像下面的(雖然這是完全未經測試):

# run two robot jobs in the background 
robot -A firefox.args /path/to/tests.robot & 
robot -A chrome.args /path/to/tests.robot & 

# wait for the jobs to finish, then generate a consolidated report 
wait 
rebot --output ./output.xml firefox/output.xml chrome/.output.xml 

在上面的例子中, .args文件是標準機器人框架argument files。在他們身上,你可以指定命令行參數,如硒電網URL,路徑爲輸出文件的特殊文件夾等

例如:

# firefox.args 
--variable GRID_URL: http://127.0.0.1/wd/hub 
--variable CAPABILITIES:browserName:ff,version:45,platform:WINDOWS 
--outputdir firefox_results 

Also, where to assign hub url to trigger the execution?

你這樣做,當你打開與Open Browser關鍵字的瀏覽器。具體來說,使用remote_url參數。例如,一個測試用例可能看起來像以下,其中${GRID_URL}${CAPABILITIES}在參數文件中定義:

*** Settings *** 

| Library | Selenium2Library 

*** Test cases *** 
| Example of connecting to selenium grid 
| | [Setup] | Open Browser 
| | ... | http://example.com 
| | ... | remote_url=${GRID_URL} 
| | ... | desired_capabilities=${CAPABILITIES} 

So I am looking for the solution to reduce total execution time by running test cases in parallel.

你有兩個選擇:

  1. 使用pabot自動分割一個大套件分成幾個並行測試運行
  2. 手動爲您的測試套件的不同部分創建多個作業(例如:pybot tests/suite1; pybot tests/suite2; pybot tests/suite3等)
+0

感謝您的快速回復。我在我的問題中添加了更多的細節。 – ank15

+0

建議我在以下兩種解決方案中使用: 1.當我使用Pabot 0.24時,我得到以下錯誤消息: 用於觸發執行的命令:C:\ [測試套件的路徑]> pabot測試套件名稱(txt文件) 「」[錯誤]意外的錯誤:TypeError:'module'類型的參數不可迭代 Traceback(最近一次調用最後一次):None沒有測試執行 已用時間:0分鐘0.6秒「」 – ank15

+0

我也嘗試了下面的命令,但面臨類似的問題: - \t C:\ [測試套件的路徑]> pabot測試套件名稱(txt文件) - 並行2 --pabotlib --pabotlibhost - pabotlibport 8270 - \t - C:\ [測試路徑suite]> pabot -command -m測試套件名稱(txt文件)--- command-en d -parallel 2 -pabotlib -pabotlibhost -pabotlibport 8270 – ank15