Selenium網頁自動化測試可否指定電腦執行測試程式?

Selenium網頁自動化測試可否指定電腦執行測試程式?

這篇文章主要說明如何將Selenium自動化測式程式佈署到指定的電腦執行。

Selenium提供 GRID 的架構

讓我們可以將自動化測試程式執行在預期的平台(FireFox or Chrome, Windows or Mac)

但是可不可以指定特定電腦執行呢?

 

指定電腦執行

原則上是不可以。因為 GRID的執行概念就是,後端的電腦有哪幾台,程式開發不用理會。

程式執行僅需要給予參數說明希望執行的 platform 例如 FireFox/Chrome, Windows/Mac等

GRID Hub就會自動尋找適合的 Node來執行該測試程式。

但是,如果我一定要指定機器執行可以嗎? 例如我只有在特定機器上有安裝 AutoIT 或是其他工具。

某些特定的測試程式我希望一定要執行在特定機器。怎麼達到呢?

目前有一個 workaround (非官方)做法就是指定 applicationName註冊 node

程式就可以透過指定 applicationName間接達到將自動化測試程式佈署到那台電腦 node 執行。

 

Node 設定

NODE1:
java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://HUB_IP:4444/grid/register -browser browserName=firefox,version=11,maxInstances=1,platform=WINDOWS,applicationName=windows7_32bits_firefox_11

NODE2:
java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://HUB_IP:4444/grid/register -browser browserName=firefox,version=11,maxInstances=1,platform=WINDOWS,applicationName=windows7_64bits_firefox_11

 

Python 程式範例

[pastacode lang=”python” message=”” highlight=”” provider=”manual”]

    def setUp(self):
        desired_caps = {}
        desired_caps['platform'] = 'WINDOWS'	
        desired_caps['browserName'] = 'firefox'

        desired_caps['applicationName'] = 'windows7_32bits_firefox_11'

        self.driver = webdriver.Remote('http://<Hub_IP_Address>:4444/wd/hub', desired_caps)
        self.driver.get('https://www.google.com/')
        self.driver.implicitly_wait(30)
        self.driver.maximize_window()

[/pastacode]

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *