業務案例:我試圖自動化生產流程以用自動化取代人類。我在給定日期以各種間隔接收許多觸發器,並且只要我得到觸發器,腳本應該開始自動運行。我有80個節點(在80臺機器中)配置爲Selenium集線器。如何使用Selenium Grid高效地分配負載
場景:觸發器1應執行腳本1在一個空閒節點中。 觸發器2應該在空閒節點之一中執行腳本2。 觸發器3應該在空閒節點之一中執行腳本3。 觸發器4應執行腳本1在一個空閒節點中。
在上面的場景中,腳本1總是隻能在一臺特定的機器上執行。這是因爲在創建遠程Web驅動程序對象時必須指定遠程主機url。所以如果我得到兩個觸發器來執行腳本1同時,執行將在同一臺機器上順序發生,儘管我有很多機器處於空閒狀態。平行執行並不是理想的選擇,因爲我得到觸發器同時啓動相同腳本的50-60次執行。
問題聲明:我無法在整個免費機器上高效地分配負載。
是否是硒網格的限制?有沒有更好的方法來管理負載分配?是否有可能創建遠程webdriver而不指定節點url?
我手動啓動節點使用命令「Java的罐子硒的服務器獨立-3.0.0.jar -role節點-hub的http://:4444/grid/register -browser browserName = firefox,maxInstances = 1 -maxSession 1「。當節點的URL傳遞給遠程Web驅動程序對象時,我可以調用遠程機器中的腳本。但是,如果集線器的URL已通過那麼我得到下面的錯誤 –
2017年1月30日上午10點12分55秒org.openqa.selenium.remote.ProtocolHandshake createSession 信息:試圖雙方言會議,假設Postel的定律在遠端執行 Jan 30, 2017 10:12:55 AM org.openq a.selenium.remote.ProtocolHandshake createSession 信息:回落到原始的OSS JSON有線協議。 2017年1月30日上午10點12分55秒org.openqa.selenium.remote.ProtocolHandshake createSession 信息:回落到直接的W3C遠程端連接 –
線程「main」中的異常org.openqa.selenium.SessionNotCreatedException:無法創建新的遠程會話。需要的能力=能力[{}] 構建信息:版本:'3.0.0',修訂:'350cf60 ',時間:'2016-10-13 10:48:16 -0700' 系統信息:主機:'',ip:'',操作系統名稱:'Windows Server 2012 R2',os.arch:' amd64',os.version:'6.3',java.version:'1.8.0_101' 驅動程序信息:driver.version:RemoteWebDriver –