• 關閉

    Selenium的四種部署方式詳解

    發表于:2024-1-25 09:48

    字體: | 上一篇 | 下一篇 | 我要投稿

     作者:老潘不老    來源:知乎

      關于selenium 的部署,我在網上找了很多,基本上都沒有提到或是說的比較清晰的。當時我一直有個困惑:測試的腳本代碼,是放在跟瀏覽器同一臺機器上呢,還是放在Application Server上?
      在官方開發文檔中,提到了四種部署方式:
      一、本地部署
      說明:腳本代碼跟測試的瀏覽器同一臺機器
      【WebDriver】 相當于 依賴包,以下代碼為例
      <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.X</version>
      </dependency>
      【Driver】是下載下來的exe可執行程序(以window系統來說),測試不同的瀏覽器時,需要不同的exe可執行程序
      【Browser】是目標測試瀏覽器
      此部署方式最簡單,把測試腳本放在目標瀏覽器同一臺機器上,然后執行測試腳本即可。
      在第6行代碼中,直接啟動本地(指代碼與瀏覽器Drvier.exe同一臺機器)的chromedriver.exe,然后就是跑腳本了。
      簡單總結: 優點:容易上手,快速見效,容易對selenium 有大概認識; 缺點:只能作為新手練習用,不能作為建設自動化測試系統的方案,因為不管對每臺瀏覽器管理啊。
      二、遠程部署
      執行的測試腳本與目標瀏覽器不在同一臺機器上。
      【RemoteWebDriver】簡單來說就提供了一套API接口,允許WebDriver訪問RemoteWebDriver 此部署方式分兩部分,一邊是客戶端,一邊是服務端?梢园褱y試腳本與目標瀏覽器分開在不同的機器上。 服務端是指【RemoteWebDriver】這邊,啟動時,RemoteWebDriver可以看作為Tomcat容器啟動一個WEB應用,暴露了監聽端口,并發布RESTFUL接口。
      注意:服務器的地址如下:http://你的host地址:4444/wd/hub/,記錄,后面編寫客戶端代碼的時候需要使用。
      客戶端是指【WebDriver】這邊,是應用程序跑測試腳本的(Java\Python\JavaScript等),通過RESTFUL接口把測試參數化傳給RemoteWebDriver。
      在第17行代碼中,需要把定IP和端口。
      圖片RemoteWebDriver.png和代碼源于:https://www.cnblogs.com/hejing-swust/articles/8052969.html
      簡單總結: 優點:此部署方式,可以用于一般的企業自動化測試方案,實現測試腳本和執行機(目標瀏覽器)分離,可以自己實現遠程管理多個執行機。 缺點:比本地部署稍稍麻煩些。
      三、Grid部署
      集中管理,由selenium grid 來統一分以任務。
      【Grid】官方描述:Selenium Grid is a smart proxy server that allows Selenium tests to route commands to remote web browser instances. Its aim is to provide an easy way to run tests in parallel on multiple machines ,簡單來說就是由Grid智能的分發任務到各個執行機
      下圖"components of grid.png" 這里分三部分,一是client,二是HUB,三是NODES。 【client】就是上文中描述過的 client ,不再重復; 【HUB】相當于一個中控,類似于“二、遠程部署”那章的中的“server服務端”,client 端將腳本通過HTTP接口傳給HUB,至于由哪個執行機(目標瀏覽器)執行,那就由HUB去計算了。 【NODES】就是HUB的節點,全由HUB監聽和管理;
      啟動HUB很簡單,注意下文的命令是 "-role hub",啟動后可以通過瀏覽器訪問控制臺 http://localhost:4444/grid/console。
      java -jar selenium-server-standalone.jar -role hub
      啟動NODES也簡單,注意下文的命令是“-role node”, 而 -hub http:localhost:4444 是HUB的IP 和端口。 一臺機會可以同時啟動多個NODES
      java -jar selenium-server-standalone.jar -role node -hub http://localhost:4444
      HUB 和 NODES 更多的配置就參考官網Setting up your own Grid
      而client 如何訪問HUB呢?
      DesiredCapabilities capability = new DesiredCapabilities();
      capability.setBrowserName("ie");
      capability.setPlatform(Platform.WINDOWS);
      try {
          WebDriver  driver = new RemoteWebDriver(new URL("http://192.168.0.245:4444/wd/hub"), capability);
          driver.get("http://www.baidu.com");
          driver.quit();
      } catch (MalformedURLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
      四、Test Framework
      它是這么說的,我就不翻譯了:Natural language frameworks/tools such as Cucumber may exist as part of that Test Framework box in the figure above, or they may wrap the Test Framework entirely in their own implementation. 對于Test Framework。
      本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理
    《2023軟件測試行業現狀調查報告》獨家發布~

    關注51Testing

    聯系我們

    快捷面板 站點地圖 聯系我們 廣告服務 關于我們 站長統計 發展歷程

    法律顧問:上海蘭迪律師事務所 項棋律師
    版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2024
    投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

    滬ICP備05003035號

    滬公網安備 31010102002173號

    久久97久久97精品免视_欧洲国产伦久久久久久_91麻豆精品国产自产在线观_伊人久久大香线蕉综合av