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.
你有兩個選擇:
- 使用pabot自動分割一個大套件分成幾個並行測試運行
- 手動爲您的測試套件的不同部分創建多個作業(例如:pybot tests/suite1; pybot tests/suite2; pybot tests/suite3等)
看看https://github.com/mkorpela/pabot。不知道這是你需要的。 – jim