<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Selenium Grid 教程:集線器&節點(帶有示例) > 原文: [https://www.guru99.com/introduction-to-selenium-grid.html](https://www.guru99.com/introduction-to-selenium-grid.html) ## 什么是硒網格? Selenium Grid 是 Selenium Suite 的一部分,專門用于跨不同的瀏覽器,操作系統和計算機并行運行多個測試。 Selenium Grid 有 2 個版本-較舊的 Grid 1 和較新的 Grid2。我們僅關注 Grid 2,因為 Selenium 團隊逐漸不贊成 Grid 1。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/69/5c/695cfbbc036800f316b13b9a8d43d7b8_486x308.png "Introduction to Selenium Grid") Selenium Grid 使用集線器節點概念,您只能在稱為**集線器**的單臺機器上運行測試,但是執行將由稱為**節點**的不同機器完成。 在本教程中,您將學習- * [什么是硒網格?](#1) * [何時使用 Selenium Grid?](#2) * [網格 1.0 與網格 2.0](#3) * [硒網格體系結構](#4) * [如何設置硒網格? 使用命令行](#5) * [設計可以在網格上運行的測試腳本](#6) * [使用 DesiredCapabilites 對象](#7) * [使用 RemoteWebDriver 對象](#8) * [在網格上運行示例測試用例](#9) * [使用 JSON 文件](#10)的硒網格配置 * [使用 JSON 配置 NODES](#11) ## 何時使用硒網格? 如果要執行以下一項或兩項操作,則應使用 Selenium Grid: * **同時針對不同的瀏覽器,操作系統和計算機運行測試。** 這將確保您正在測試[的應用程序](/software-testing.html)與多種瀏覽器-操作系統組合完全兼容。 * **節省執行測試套件**的時間。 如果您將 Selenium Grid 設置為一次運行 4 個測試,那么您將能夠以大約 4 倍的速度完成整個套件。 ## 網格 1.0 與網格 2.0 以下是 Selenium Grid 1 和 Selenium Grid 2 之間的主要區別。 | 網格 1 | 網格 2 | | Selenium Grid 1 有自己的遙控器,與 Selenium RC 服務器不同。 他們是兩個不同的程序。 | Selenium Grid 2 現在與 Selenium Server jar 文件捆綁在一起 | | 您需要首先安裝和配置 [Apache](/apache.html) Ant,然后才能使用 Grid 1。 | 您無需在 Grid 2 中安裝 Apache Ant。 | | 僅支持 Selenium RC 命令/腳本。 | 可以同時支持 Selenium RC 和 WebDriver 腳本。 | | 每個遙控器只能自動化一個瀏覽器。 | 一個遙控器最多可以自動化 5 個瀏覽器。 | ## 硒網格體系結構 Selenium Grid 具有集線器和節點體系結構。 #### 集線器 * 集線器是將測試加載到的中心點。 * 網格中應該只有一個集線器。 * 該集線器僅在一臺機器上啟動,例如,其操作系統為 Windows 7,瀏覽器為 IE 的計算機。 * 包含集線器的計算機將在其中運行測試,但是您將看到該節點上的瀏覽器是自動的。 #### 節點 * 節點是 Selenium 實例,將執行您在集線器上加載的測試。 * 網格中可以有一個或多個節點。 * 可以在具有不同平臺和瀏覽器的多臺計算機上啟動節點。 * 運行節點的機器不必與集線器的平臺相同。 硒網格可以通過兩種不同的方式設置: 一個通過命令行,另一個通過 JSON 配置文件。 ## 如何設置硒網格? 使用命令行 在本節中,您將使用 2 臺計算機。 第一臺計算機將是運行集線器的系統,而另一臺計算機將運行一個節點。 為簡單起見,讓我們將集線器運行的機器稱為“機器 A”,而將節點運行的機器稱為“機器 B”。 記錄其 IP 地址也很重要。 假設機器 A 的 IP 地址為 192.168.1.3,而機器 B 的 IP 為 192.168.1.4。 **步驟 1** 從[此處](https://www.selenium.dev/downloads/)下載 Selenium 服務器。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/d8/68/d868c294b1e93719497b77a422b164d6_423x202.png "Introduction to Selenium Grid") **步驟 2** 您可以將 Selenium Server .jar 文件放置在 HardDrive 中的任何位置。 但是出于本教程的目的,請將其放置在 Machine A 和 Machine B 的 C 驅動器上。完成此操作后,現在您已經完成了 Selenium Grid 的安裝。 以下步驟將啟動集線器和節點。 **步驟 3** * 我們現在要啟動一個樞紐。 轉到計算機 A。在命令提示符下,導航到計算機 A 的-C 驅動器的根目錄,因為這是我們放置 Selenium Server 的目錄。 * 在命令提示符下,鍵入 **java -jar selenium-server-standalone-2.30.0.jar -role hub** * 集線器應成功啟動。 您的命令提示符應類似于下圖 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/f3/4f/f34f012317f6214b2c60051b138085ab_579x223.png "Introduction to Selenium Grid") **步驟 4** 驗證集線器是否正在運行的另一種方法是使用瀏覽器。 Selenium Grid 默認情況下,將 Machine A 的端口 4444 用于其 Web 界面。 只需打開瀏覽器,然后轉到 [http:// localhost:4444 / grid / console](http://localhost:4444/grid/console) ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/ae/5b/ae5b7fe1e3bf8f8afa85dbb2b7be3131_263x144.png "Introduction to Selenium Grid") 另外,您可以通過以下方式檢查計算機 B 是否可以訪問集線器的 Web 界面:啟動瀏覽器,然后轉到“ iporhostnameofmachineA”應為運行集線器的計算機的 IP 地址或主機名。 由于機器 A 的 IP 地址為 192.168.1.3,因此在機器 B 上的瀏覽器中,您應該輸入 [http://192.168.1.3:4444/grid/console](http://192.168.1.11:4444/grid/console) **步驟 5** * 現在已經建立了集線器,我們將啟動一個節點。 轉到計算機 B 并在那里啟動命令提示符。 * 導航到驅動器 C 的根目錄,然后輸入以下代碼。 我們使用 IP 地址 192.168.1.3,因為那是集線器運行的地方。 盡管您可以選擇所需的任何免費端口號,但我們也使用了端口 5566。 * 注意:現在,如果使用 Firefox,則必須提供 Gecko 驅動程序的路徑。 這是需要使用的更新代碼 ``` java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566 ``` ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/db/a8/dba888c5490cf5a8f99341421f352752_449x170.png "Introduction to Selenium Grid") * 當您按 Enter 鍵時,您的命令提示符應類似于下圖。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/c2/cc/c2cc377859d099dcbd30d0828e5f901c_594x417.png "Introduction to Selenium Grid") **步驟 6** 轉到 Selenium Grid Web 界面并刷新頁面。 您應該會看到類似這樣的內容。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/38/51/385139b7352073365984dfd236397a61_466x298.png "Introduction to Selenium Grid") 至此,您已經配置了一個簡單的網格。 現在,您可以在計算機 B 上遠程運行測試了。 ## 設計可以在網格上運行的測試腳本 要設計將在網格上運行的測試腳本,我們需要使用 **DesiredCapabilites** 和 **RemoteWebDriver** 對象。 * **所需的功能**用于設置將要自動化的**瀏覽器**和 **OS** 的類型 * **RemoteWebDriver** 用于設置測試將針對的節點(或計算機)。 要使用 **DesiredCapabilites** 對象,您必須首先導入此程序包 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/ef/98/ef98d94469d2aedf5608701e2e024793_376x12.png "Introduction to Selenium Grid") 要使用 **RemoteWebDriver** 對象,必須導入這些程序包。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/c0/8a/c08a575a40db77c2ac5aead648574f20_348x42.png "Introduction to Selenium Grid") ## 使用 DesiredCapabilites 對象 轉到 Grid 的 Web 界面,然后將鼠標懸停在要自動化的瀏覽器圖像上。 注意工具提示顯示的**平臺,**和**瀏覽器名稱**。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/07/db/07db0dd82e33feb18ccf67906af16e3a_423x252.png "Introduction to Selenium Grid").png) 在這種情況下,平臺為“ XP”,而 browserName 為“ Firefox”。 我們將在 WebDriver 中使用平臺和 browserName,如下所示(當然,您需要首先導入必要的軟件包)。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/3b/3f/3b3f70d4ccd9869c7cd3d3d26fe95bb6_439x43.png "Introduction to Selenium Grid") ## 使用 RemoteWebDriver 對象 為 RemoteWebDriver 導入必要的程序包,然后將上面創建的 DesiredCapabilities 對象作為 RemoteWebDriver 對象的參數傳遞。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/24/d9/24d97075ad1f6a26ee69b3d55677ae61_439x151.png "Introduction to Selenium Grid") ## 在網格上運行示例測試用例 下面是一個簡單的 WebDriver [Testng](/all-about-testng-and-selenium.html) 代碼,您可以在 Eclipse 上在機器 A 上創建該代碼。一旦運行,它將在機器 B 上執行自動化。 ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/ab/60/ab60d3908a756a1a886ec5549597a75f_509x492.png "Introduction to Selenium Grid") 測試應該通過。 | ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/2f/32/2f32496a8d62d3a26ec0c87526c2b7c8_390x276.png "Introduction to Selenium Grid") | ![Selenium Grid Tutorial: Step by Step Guide with Example](https://img.kancloud.cn/97/bc/97bca3e24c832532f039f4b3f80b47ad_382x111.png "Introduction to Selenium Grid") | ## 使用 JSON 文件的硒網格配置: JSON 代表 Javascript Object Notation。 它是用于在瀏覽器和 Web 服務器之間交換數據的標準格式。 Selenium 具有一個內置的 JSON 配置文件,可用于設置 Selenium 網格。 以下是使用 JSON 配置文件配置硒網格的步驟。 **步驟 1)**使用以下路徑下載 JSON 配置文件的代碼 [https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org /openqa/grid/common/defaults/DefaultHub.json](https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json) 這是代碼 ``` { "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 } ``` **步驟 2)**將代碼復制并粘貼到擴展名為'.json'的文本編輯器(如記事本)中 **步驟 3)**在命令提示符下使用以下命令啟動集線器 ``` java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json ``` **注意:**硒獨立的 jar 文件和 json 文件必須存在于同一目錄中 **步驟 4)**將出現以下屏幕,表明集線器已成功設置 ![](https://img.kancloud.cn/cf/97/cf97a5e3547b341cf61fb51c9288f0db_1000x290.png) **步驟 5)**打開網絡瀏覽器,然后嘗試連接到以下 URL ``` http://192.168.43.223:4444/grid/console ``` **注:** URL 可能因機器而異。 必須使用上述屏幕上的 URL,后跟“節點應注冊到”。 **步驟 6)** Grid Console 屏幕將出現,指示集線器已啟動并正在運行 ![](https://img.kancloud.cn/e8/0d/e80dc8e843296a3e596264937d658b8e_700x176.png) ## 使用 JSON 配置 NODES: **步驟 1)**使用以下 URL 下載 Selenium 提供的示例節點配置文件 [https://github.com/SeleniumHQ/selenium/blob/selenium-2.53.0/java/server/src /org/openqa/grid/common/defaults/DefaultNode.json](https://github.com/SeleniumHQ/selenium/blob/selenium-2.53.0/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json) **注意:**如果使用的是 SELENIUM 3.0 或更高版本,則必須使用以下 JSON 文件 [https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json](https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json) **步驟 2)**復制代碼并將其粘貼到文本編輯器(如記事本)中,并保存擴展名為“ .json”的文件 **步驟 3)** 在命令提示符下運行以下命令 ``` Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json ``` **注意:**運行命令之前,請確保已將每個瀏覽器的驅動程序下載到本地計算機目錄中 **步驟 4)**按下 Enter 鍵將出現以下屏幕 ![](https://img.kancloud.cn/e6/7e/e67e32cc79b934f65c661fabdce59266_1400x350.png) **步驟 5)**導航到網格控制臺以驗證是否已成功配置節點 ![](https://img.kancloud.cn/60/09/60091ea62af69a6ac08658c530ad6aad_800x408.png) 瀏覽器顯示在網格控制臺上。 因此,我們可以確保節點配置成功。 **硒網格上的測試案例:** ``` package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "http://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:4444/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } } ``` 上面的代碼將啟動 chrome 瀏覽器,并導航到“ baseURL”變量中指定的 URL。 確認頁面上顯示了鏈接名稱“ Mobile Testing” 可以修改“ nodeURL”變量上的 URL 以反映遠程計算機的 IP 地址。 可以在生成的默認 TestNG 報告上驗證測試結果 ## 摘要 * Selenium Grid 用于在不同的瀏覽器和平臺上同時運行多個測試。 * 網格使用集線器節點概念。 * 集線器是您加載測試的中心點。 * 節點是 Selenium 實例,將執行您在集線器上加載的測試。 * 要安裝 Selenium Grid,只需下載 Selenium Server jar 文件-與運行 Selenium RC 測試所用的文件相同。 * 有兩種驗證集線器是否正在運行的方法:一種是通過命令提示符,另一種是通過瀏覽器 * 要在 Grid 上運行測試腳本,應使用 DesiredCapabilities 和 RemoteWebDriver 對象。 * DesiredCapabilites 用于設置我們將自動執行的瀏覽器和操作系統的類型 * RemoteWebDriver 用于設置測試將針對其運行的節點(或計算機)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看