<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 含硒硒(BDD 框架):帶有示例的教程 > 原文: [https://www.guru99.com/using-cucumber-selenium.html](https://www.guru99.com/using-cucumber-selenium.html) 在本教程中,您將學習如何將 Cucumber 與 Selenium Webdriver 集成。 ### 什么是黃瓜? Cucumber 是一種支持行為驅動開發(BDD)的測試方法。 它使用 Gherkin 語言以簡單的英語文本說明了應用程序的行為。 了解更多信息- [https://www.guru99.com/cucumber-tutorials.html](/cucumber-tutorials.html) ### 什么是硒? Selenium 是用于基于 Web 的應用程序的[功能測試](/functional-testing.html)的自動化工具。 Selenium 支持不同的語言,例如 java,ruby,python C#等。 了解更多信息- [https://www.guru99.com/selenium-tutorial.html](/selenium-tutorial.html) 在本教程中,我們將學習- * [為什么將黃瓜和硒一起使用?](#1) * [黃瓜和硒一起使用的先決條件。](#2) * [使用黃瓜和硒進行自動化測試。](#3) * [方案 1:在控制臺中打印文本。](#4) * [方案 2:輸入登錄憑據并重置該值。](#5) * [場景 3:在 Guru99 上輸入登錄憑據&重設該值。 對 3 組數據執行此操作。](#6) ## 為什么將黃瓜和硒一起使用? 黃瓜和硒是兩種流行的技術。 大多數組織使用 Selenium 進行功能測試。 這些正在使用 Selenium 的組織希望將 Cucumber 與硒集成在一起,因為 Cucumber 使**易于閱讀和理解應用程序流程。** 黃瓜工具基于行為驅動開發框架,其中**充當以下人員之間的橋梁**: 1. 軟件工程師和業務分析師。 2. 手動測試儀和自動化測試儀。 3. 手動測試人員和開發人員。 黃瓜**也使客戶理解應用程序代碼**,因為它使用純文本格式的 Gherkin 語言。 組織中的任何人都可以了解軟件的行為。 Gherkin 的語法采用簡單的文本,易于閱讀和理解。 ![](https://img.kancloud.cn/ea/89/ea890c4d49b98a05c6e98c355998d423_565x104.png) ## 黃瓜和硒一起使用的先決條件。 在開始將黃瓜與硒整合之前,我們需要以下各項: 硒罐文件: * 硒服務器獨立 可以從 [http://www.seleniumhq.org/download/](http://www.seleniumhq.org/download/) 下載 ![](https://img.kancloud.cn/ab/1d/ab1db666e2e087c0b675ed874fb7f1ee_738x358.png) 黃瓜的 Jar 文件: * 黃瓜芯 * 黃瓜-html * cobertura 代碼覆蓋率 * 黃瓜 * 黃瓜黃瓜 * 黃瓜-jvm-deps * 黃瓜報告 * Hemcrest-core * 小黃瓜 * 朱尼特 可以從 [https://mvnrepository.com/search?q=Cucumber](https://mvnrepository.com/search?q=Cucumber) 下載 您需要搜索文件并逐個下載。 例如,我們將向您展示下載其中一個 jar 文件,即“黃瓜芯”。 點擊上面的下載鏈接。 它將重定向到以下站點。 現在搜索特定的罐子,即“黃瓜芯”,如下圖所示: ![](https://img.kancloud.cn/77/67/7767ea1afafc5879cece0367a4bf1a9e_739x402.png) 在下一頁中,單擊 1.2.2 版, ![](https://img.kancloud.cn/56/62/56622388fecf7e1deb5022573e0acaa0_807x299.png) 在下一個屏幕中,單擊下載以獲取“ Cucumber Core” jar 文件。 ![](https://img.kancloud.cn/32/6f/326fb864096800b68f89a28b56e4b9ca_671x377.png) **注意**:為了您的方便,我們在此處捆綁了需要從 Maven [下載的 jar 文件。 隨著時間的流逝,這些罐子可能會更新并變得不兼容。 要求您使用上述方法下載它們。](https://drive.google.com/uc?export=download&id=0ByI5-ZLwpo25LWlnMTdrbU1ESXc) ## 使用黃瓜和硒進行自動化測試。 讓我們逐步研究將黃瓜與硒一起使用的步驟。 這里我們將介紹 3 種情況: * 方案 1:在控制臺中打印文本。 * 方案 2:輸入登錄憑據并重置該值。 * 方案 3:在 Guru99 &上輸入登錄憑據,以重置該值。 對 3 組數據執行此操作。 ### 方案 1:在控制臺中打印文本。 在這種情況下,我們只是使用 Cucumber 在控制臺中打印文本。 **步驟 1)**在 Eclipse 中創建項目。 創建名稱為“ CucumberWithSelenium”的 Java 項目,如下面的屏幕快照所示。 ![](https://img.kancloud.cn/1f/2e/1f2eafc03dfa0bd2e5e143908dccf5f1_597x340.png) ![](https://img.kancloud.cn/1f/f1/1ff1ede217f3fa14496952de4337f1ae_317x251.png) **步驟 2)**在項目中添加 Jar 文件。 右鍵單擊項目>,選擇屬性。>轉到 Java Build Path。 添加之前下載的所有庫。 [![](https://img.kancloud.cn/ca/f4/caf44dcba924e40e8d4d0ffebb765d59_810x561.png) ](/images/2-2017/092917_0716_UsingCucumb8.png) **步驟 3)**創建功能文件 要創建功能文件,首先創建功能文件夾,如下圖所示。 ![](https://img.kancloud.cn/a3/f3/a3f33c0492d66d7efda862a420498d0c_867x490.png) 現在輸入文件夾名稱“功能”,然后單擊“完成”按鈕。 ![](https://img.kancloud.cn/43/6f/436f2cea836391e26f33f9b5baf3dd1d_527x614.png) ![](https://img.kancloud.cn/06/c1/06c1297696cde21f02ba452466f4c443_304x279.png) 現在,在“功能”文件夾中創建名稱為“ MyTest.feature”的功能文件-過程類似于創建文件夾 ![](https://img.kancloud.cn/69/d6/69d6ca922d0eb0869741c81511fa85f9_277x316.png) **注意:**您可能需要安裝 Cucumber Eclipse 插件才能起作用。 轉到-幫助->安裝新軟件->復制粘貼鏈接 [http://cucumber.github.io/cucumber-eclipse/update-site/](http://cucumber.github.io/cucumber-eclipse/update-site/) 和 安裝 **步驟 4)**編寫腳本。 下面的行使用 Gherkin 語言寫在“ MyTest.feature”文件中,如下所示: ``` 功能:在應用程序登錄頁面上重置功能場景:重置按鈕的驗證給定打開 Firefox 并啟動應用程序輸入用戶名和密碼時然后重置憑證 ``` **代碼說明** **第 1 行)在這一行中,我們編寫業務功能。** **第 2 行)在這一行中,我們編寫了一個要測試的方案。** **第 3 行)在這一行中,我們定義了前提條件。** **第 4 行)在這一行中,我們定義了需要執行的操作。** **第 4 行)在這一行中,我們定義了預期的結果或結果。** **步驟 5)**編寫硒 testrunner 腳本。 在這里,我們創建“ TestRunner”包,然后在其下創建“ Runner.java”類文件。 ``` package TestRunner; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features="Features",glue={"StepDefinition"}) public class Runner { } ``` 在上面的代碼中,我們使用以下注釋來運行 Cucumber 測試: **@RunWith()**注釋告知測試運行器類開始執行測試。 **@CucmberOptions()**批注用于為我們的黃瓜測試設置一些屬性,例如功能文件,步驟定義等。 TestRunner 文件的屏幕截圖。 ![](https://img.kancloud.cn/8b/36/8b365d69b034736de5d1b7e169ebb2a5_732x296.png) **步驟 6)**創建步驟定義腳本。 現在在這里,我們創建“ StepDefinition”包,然后在其下創建“ Steps.java”腳本文件。 在這里,我們實際上編寫了一個硒腳本來執行 Cucumber 方法下的測試。 ``` package StepDefinition; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Steps { @Given("^Open the Firefox and launch the application$") public void open_the_Firefox_and_launch_the_application() throws Throwable { System.out.println("This Step open the Firefox and launch the application."); } @When("^Enter the Username and Password$") public void enter_the_Username_and_Password() throws Throwable { System.out.println("This step enter the Username and Password on the login page."); } @Then("^Reset the credential$") public void Reset_the_credential() throws Throwable { System.out.println("This step click on the Reset button."); } } ``` 在上面的代碼中,該類的名稱為“ Steps”。 黃瓜注釋用于與要素文件進行映射。 定義了每種注釋方法: **@Given** 注釋定義方法打開 Firefox 并啟動應用程序 **@當**注釋定義輸入用戶名和密碼的方法 **@然后使用**注釋定義方法來重置憑據 在每種方法下,我們僅打印一條消息。 下面是“ Steps.java”腳本和項目樹的屏幕截圖,它的外觀如何。 ![](https://img.kancloud.cn/43/3f/433f891f5d7ec23e297ccdd8cc6eaee0_936x531.png) **注意:**步驟定義不過是您要在該黃瓜方法下執行的步驟。 **步驟 7)**執行腳本。 用戶可以從測試運行器腳本(即“ Runner.java”)執行此腳本,如下面的屏幕快照所示。 ![](https://img.kancloud.cn/e3/a4/e3a41df859e64363424384240d58ec18_892x618.png) **步驟 8)**分析輸出。 在執行“ Runner.java”腳本時,它將在控制臺上顯示文本。 它與“ Steps.java”腳本中定義的文本相同。 ![](https://img.kancloud.cn/84/4b/844b1245f5df5b8cd75be236bcb54a75_1016x522.png) ### 方案 2:輸入登錄憑據并重置該值。 在這里,我們只需在 Guru99 演示登錄頁面上輸入 Credential 并重置值 對于方案 2,我們僅需要更新“ Steps.java”腳本。 在這里,我們實際上編寫了硒腳本,如下步驟所示。 首先,我們需要將 Selenium jar 文件添加到該項目中。 ![](https://img.kancloud.cn/93/a0/93a02ba2e23b656a721ea1091da80356_736x558.png) **步驟 1)**在這里,我們更新了'Steps.java'腳本,如下面的代碼和屏幕截圖所示。 ``` package StepDefinition; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Steps { WebDriver driver; @Given("^Open the Firefox and launch the application$") public void open_the_Firefox_and_launch_the_application() throws Throwable { System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe"); driver= new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://demo.guru99.com/v4"); } @When("^Enter the Username and Password$") public void enter_the_Username_and_Password() throws Throwable { driver.findElement(By.name("uid")).sendKeys("username12"); driver.findElement(By.name("password")).sendKeys("password12"); } @Then("^Reset the credential$") public void Reset_the_credential() throws Throwable { driver.findElement(By.name("btnReset")).click(); } } ``` 上述硒腳本的屏幕截圖。 ![](https://img.kancloud.cn/57/c3/57c3d6bd96bddbc431f6ebcff1634c48_1056x616.png) **步驟 2)**執行腳本。 更新后,我們運行 Runner.java。 **步驟 3)**分析輸出。 在輸出中,您可以看到以下內容: * 瀏覽器啟動。 * Guru99 銀行演示站點已打開。 * 用戶名和密碼位于登錄頁面上。 * 重置值。 ![](https://img.kancloud.cn/a3/32/a3329d154da03e2b24f99dd0f6ad718f_1333x749.png) ### 方案 3:在 Guru99 上輸入登錄憑據&重設該值。 對 3 組數據執行此操作。 在這里,我們需要更新“ Step.java”和功能文件。 **步驟 1)**更新功能文件,如下所示: ``` 在這里,我們使用“方案大綱”和“示例”語法更新功能文件。功能:在應用程序登錄頁面上重置功能方案概要:使用憑證編號驗證重置按鈕給定打開 Firefox 并啟動應用程序輸入用戶名<用戶名>和密碼<密碼>時然后重置憑證例子:|用戶名|密碼||用戶 1 |密碼 1 || User2 | password2 || User3 | password3 |//在這一行中,我們定義數據集。 ``` ![](https://img.kancloud.cn/4f/d5/4fd546fc6f281f42372c5e459f12376f_876x346.png) **步驟 2)**現在更新 Step.java 腳本。 在這里,我們更新方法以傳遞參數,更新后的腳本如下所示: ``` package StepDefinition; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Steps { WebDriver driver; @Given("^Open the Firefox and launch the application$") public void open_the_Firefox_and_launch_the_application() throws Throwable { System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe"); driver= new FirefoxDriver(); driver.manage().window().maximize(); driver.get("www.demo.guru99.com/v4"); } @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$") public void enter_the_Username_and_Password(String username,String password) throws Throwable { driver.findElement(By.name("uid")).sendKeys(username); driver.findElement(By.name("password")).sendKeys(password); } @Then("^Reset the credential$") public void Reset_the_credential() throws Throwable { driver.findElement(By.name("btnReset")).click(); } } ``` ![](https://img.kancloud.cn/67/d2/67d24e4f33126e5ad956785746445338_829x559.png) **步驟 3)**現在執行更新的腳本。 下面的屏幕顯示腳本的成功執行以及每組數據所花費的時間。 ![](https://img.kancloud.cn/37/4f/374ff0bee996b39b2b7ccc7301e574a2_1150x673.png) **步驟 4)**分析輸出。 In the output you can see the following: 下面的輸出將重復數據集的數量,即 3 組。 * 瀏覽器啟動。 * Guru99 銀行演示站點已打開。 * 用戶名和密碼位于登錄頁面上。 * 重置值。 ![](https://img.kancloud.cn/5b/40/5b40dc74ce864cdfe0acffbf5f1376c6_1200x674.png) #### 結論。 黃瓜是一種非常流行的 BDD 工具。 它易于閱讀,并且所有利益相關者(包括技術人員和非技術人員)都可以理解。 黃瓜可以通過以下 3 個步驟與 Selenium 集成 1. 創建功能文件,在其中使用 Gherkin 語言逐步定義功能和方案。 2. 創建 Testrunner 文件。 在此文件中,我們將黃瓜和硒進行了整合。 我們執行此腳本。 3. 創建步驟定義,即在此程序包下定義的實際硒腳本。
                  <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>

                              哎呀哎呀视频在线观看