selenium grid的使用與配置

https://www.cnblogs.com/zw520ly/p/5995708.htmlhtml

 

1、selenium grid的組成與做用:由一個集線器hub和多個客戶機node組成,若是你的程序須要在不用的瀏覽器,不一樣的操做系統上測試,並且比較多的case須要多線程遠程執行,那麼一個比較好的測試方案就是使用 selenium grid,hub用來管理各個代理節點的註冊和狀態信息,而且接受遠程客戶端代碼的請求調用,而後把請求的命令再轉發給代理節點來執行。java

其結構組成:node

2、準備工做:hub集線器上安裝jdk,selenium-server-standalone-xxx.jar,準備好各瀏覽器的驅動(主要是chromedriver和iedriver)web

       node節點上也須要安裝jdk,selenium-server-standalone-xxx.jar,準備好各瀏覽器的驅動(主要是chromedriver和iedriver)chrome

3、啓動hub節點(在你使用的hub集線器機器上執行命令):java -jar selenium-server-standalone-2.53.0.jar -role hub (hub啓動命令可作成bat文件,方便維護與使用)json

其默認監聽端口4444,默認IP是localhost  若是要修改,只須要加-port 參數和-Hubhost  瀏覽器

例如:java -jar selenium-server-standalone-2.53.0.jar -role hub -port 1234 -Hubhost 192.168.1.30多線程

4、啓動node節點(在你使用的node節點機器上執行命令,也能夠在hub集線器機器上執行,即把hub集線器當成node節點):java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://hub集線器的ip:4444/grid/register -Dwebdriver.chrome.driver=chromedriver.exe  -browser browserName=chrome(這裏指定了要啓動的瀏覽器和對應的瀏覽器驅動,node啓動命令可作成bat文件,方便維護與使用)post

其默認監聽端口5555,若是要修改,只須要加-port 參數測試

例如:java -jar selenium-server-standalone-2.53.0.jar -role node -port 6666 -hub http://hub集線器的ip:4444/grid/register -Dwebdriver.chrome.driver=chromedriver.exe  -browser browserName=chrome(這裏指定了要啓動的瀏覽器和對應的瀏覽器驅動)

node節點的啓動參數也能夠作成json文件,json文件內容以下(文件名隨意取,我這裏的文件名爲:node.json):
{ "capabilities":[{ "browserName": "chrome", "maxInstances": 6, "platform": "WINDOWS", "version":"52.0.2743.82 m","webdriver.chrome.driver":"chromedriver.exe" }], "configuration": { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, "port": 5555, "register": true, "registerCycle": 5000, "hub": "http://192.168.1.36:4444" } }

執行配置文件node.json:java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://hub集線器的ip:4444/grid/register -nodeConfig node.json,這個跟直接使用命令行是一樣的效果,隨我的喜愛

 

如今hub集線器和node節點都已經啓動完畢了,意味着hub集線器已經徹底控制了node節點,開始編寫腳本

public void setUpDriver() throws MalformedURLException{
        ChromeOptions options = new ChromeOptions();

  //加載chrome瀏覽器的配置文件,好比插件,下載設置等,我的建議先在瀏覽器中設置好,不要把瀏覽器的一些參數寫在腳本里,作些無用工,也不會顯得你很牛逼
        options.addArguments("user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data");

  //啓動chrome瀏覽器
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();

    //將配置文件加載到chrome瀏覽器中
        capabilities.setCapability(ChromeOptions.CAPABILITY,options);
        //capabilities.setCapability("chromeOptions", options);

  //啓動遠程的node節點,注意:URL地址必定要寫你的node節點的地址,端口號爲你指定的端口號,若沒有修改,則就是默認的5555,若修改了,就用你本身修改事後的端口號
        driver = new RemoteWebDriver(new URL("http://node節點的ip:5555/wd/hub"), capabilities);

  //打開百度主頁        driver.get("http://www.baidu.com");            }

相關文章
相關標籤/搜索