В этом уроке вы узнаете, как интегрировать Cucumber с Selenium Webdriver.
Что такое огурец?
Cucumber — это подход к тестированию, который поддерживает Behavior Driven Development (BDD). Он объясняет поведение приложения в простом английском тексте с использованием языка огурцов.
Узнайте больше на — https://www.guru99.com/cucumber-tutorials.html
Что такое селен?
Selenium — инструмент автоматизации для функционального тестирования веб-приложения. Selenium поддерживает разные языки, такие как Java, Ruby, Python C # и т. Д.
Узнайте больше на — https://www.guru99.com/selenium-tutorial.html
В этом уроке мы узнаем
- Зачем использовать огурец с селеном?
- Обязательное условие использования огурца с селеном.
- Автоматизация тестирования с использованием огурца с селеном.
- Сценарий 1: печать текста в консоли.
- Сценарий 2: введите учетные данные для входа и сбросьте значение.
- Сценарий 3: введите учетные данные для входа на Guru99 и сбросьте значение. Сделайте это для 3 наборов данных.
Зачем использовать огурец с селеном?
Огурец и селен — две популярные технологии.
Большинство организаций используют Selenium для функционального тестирования. Эти организации, которые используют Selenium, хотят интегрировать Cucumber с селеном, так как Cucumber позволяет легко читать и понимать последовательность приложений.
Инструмент Cucumber основан на платформе Behavior Driven Development, которая действует как мост между следующими людьми:
- Инженер-программист и бизнес-аналитик.
- Ручной тестер и тестер автоматизации.
- Ручной тестер и разработчики.
Cucumber также помогает клиенту понимать код приложения, так как он использует язык Gherkin, который находится в виде простого текста. Любой в организации может понять поведение программного обеспечения. Синтаксис огурца в простом тексте, который читается и понятен.
Обязательное условие использования огурца с селеном.
Прежде чем приступить к интеграции огурца с селеном, нам понадобятся следующие пункты:
Файлы Selenium jar:
- Селен-сервер автономного
Можно загрузить по адресу http://www.seleniumhq.org/download/.
Фляги для огурца:
- Огурцы-жильный
- Огурцы-HTML
- покрытие кода cobertura
- Огурцы-ява
- Огурцы-JUnit
- Огурцы-Deps-JVM
- Огурцы-отчетность
- Hemcrest-жильный
- корнишон
- Junit
Можно загрузить по адресу https://mvnrepository.com/search?q=Cucumber.
Вам нужно искать файлы и скачивать их по одному в отдельности.
Например, мы покажем вам скачать один из файлов jar, то есть «Cucumber-core».
Нажмите на ссылку выше скачать. Он перенаправляет на сайт ниже. Теперь ищите конкретную банку, то есть «Ядро огурца», как показано на скриншоте ниже:
На следующей странице нажмите версии 1.2.2,
На следующем экране нажмите «Загрузить», чтобы получить файл jar «Cucumber Core».
Примечание . Для вашего удобства мы собрали файлы jar, которые необходимо загрузить с Maven, здесь . Со временем эти банки могут обновиться и стать несовместимыми. Вам предлагается загрузить их, используя метод, показанный выше.
Автоматизация тестирования с использованием огурца с селеном.
Давайте шаг за шагом изучим шаги по использованию огурца с селеном. Здесь мы рассмотрим 3 сценария:
- Сценарий 1: печать текста в консоли.
- Сценарий 2: введите учетные данные для входа и сбросьте значение.
- Сценарий 3: введите учетные данные для входа на Guru99 и сбросьте значение. Сделайте это для 3 наборов данных.
Сценарий 1: печать текста в консоли.
В этом случае мы просто печатаем текст в консоли, используя Cucumber.
Шаг 1) Создание проекта в затмении.
Создайте проект Java с именем «CucumberWithSelenium», как показано на скриншоте ниже.
Шаг 2) Добавление файлов Jar в проект.
Щелкните правой кнопкой мыши на Project> выберите Properties> Go to Java Build Path. Добавьте все библиотеки, загруженные ранее.
Шаг 3) Создание файла объекта
Для создания файла объектов сначала создайте папку объектов, как показано на скриншоте ниже.
Теперь введите имя папки «Features» и нажмите кнопку «Finish».
Теперь создайте файл объектов в папке «Features» с именем «MyTest.feature» — процесс аналогичен созданию папки
Note: You may need to install the Cucumber Eclipse Plugin for this to work. Goto — Helps->Install New Software->copy paste the link http://cucumber.github.io/cucumber-eclipse/update-site/ and install
Step 4) Write scenarios.
Below lines are written in ‘MyTest.feature’ file using the Gherkin language as shown below:
Feature: Reset functionality on login page of Application
Scenario: Verification of Reset button
Given Open the Firefox and launch the application
When Enter the Username and Password
Then Reset the credential
Code Explanation
Line 1) In this line we write business functionality.
Line 2) In this line we write a scenario to test.
Line 3) In this line we define the precondition.
Line 4) In this line we define the action we need to perform.
Line 4) In this line we define the expected outcome or result.
Step 5) Writing selenium testrunner script.
Here we create ‘TestRunner’ package and then ‘Runner.java’ class file under it.
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 { }
In the above code we run the cucumber test by using the following annotations:
@RunWith() annotation tells about the test runner class to start executing our tests.
@CucmberOptions() annotation is used to set some properties for our cucumber test like feature file, step definition, etc.
Снимок экрана с файлом TestRunner.
Шаг 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."); } }
В приведенном выше коде класс создается с именем «Шаги». Аннотация огурца используется для сопоставления с файлом объекта. Каждый метод аннотации определяется:
@ Given аннотация определить метод, чтобы открыть Firefox и запустить приложение
@ Когда аннотации определяют метод для ввода имени пользователя и пароля
@ Затем аннотации определяют метод для сброса учетных данных
Под каждый метод мы печатаем только сообщение.
Ниже приведен скриншот скрипта и дерева проекта Steps.java, как он выглядит.
Примечание. Определение шага — это не что иное, как шаги, которые вы хотите выполнить с помощью этого метода огурца.
Шаг 7) Выполнение скрипта.
Пользователь может выполнить этот скрипт из скрипта Test runner, то есть ‘Runner.java’, как показано на скриншоте ниже.
Шаг 8) Анализ выходных данных.
При выполнении сценария Runner.java текст выводится на консоль. Это тот же текст, который определен в скрипте Steps.java.
Сценарий 2: введите учетные данные для входа и сбросьте значение.
Здесь мы просто введем Credential на странице входа в демо-версию Guru99 и сбросим значение
Для сценария 2 нам нужно обновить только скрипт Steps.java. Здесь мы на самом деле пишем сценарий селена, как показано ниже. Во-первых, нам нужно добавить файл Selenium jar в этот проект.
Шаг 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(); } }
Скриншот приведенного выше сценария селена.
Шаг 2) Выполнить скрипт.
После обновления запускаем Runner.java.
Шаг 3) Анализ выходных данных.
В выводе вы можете увидеть следующее:
- Браузер запущен.
- Открывается демонстрационный сайт банка Guru99.
- Имя пользователя и пароль размещены на странице входа.
- Сбросьте значения.
Сценарий 3: введите учетные данные для входа на Guru99 и сбросьте значение. Сделайте это для 3 наборов данных.
Здесь нам нужно обновить и файл Step.java, и файл функций.
Шаг 1) Обновите файл функции, как показано ниже:
Here we update the feature file with 'Scenario Outline' and 'examples' syntax.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with numbers of credential
Given Open the Firefox and launch the application
When Enter the Username <username>and Password <password>
Then Reset the credential
Examples:
|username |password |
|User1 |password1 |
|User2 |password2 |
|User3 |password3 |
// In this line we define the set of data.
Шаг 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(); } }
Шаг 3) Теперь выполните обновленный скрипт.
Внизу экрана показано успешное выполнение сценария и время, затраченное на каждый набор данных.
Шаг 4) Анализ выходных данных.
В выводе вы можете увидеть следующее:
Ниже вывод повторяется для количества наборов данных, то есть 3 набора.
- Браузер запущен.
- Открывается демонстрационный сайт банка Guru99.
- Имя пользователя и пароль размещены на странице входа.
- Сбросьте значения.
Вывод.
Огурец — очень популярный инструмент BDD. Он легко читается и понятен всем заинтересованным сторонам, включая технических и нетехнических лиц.
Огурец может быть интегрирован с Selenium, используя следующие 3 шага
- Создайте файл объектов, в котором шаг за шагом определяйте объект и сценарии, используя язык Gherkin.
- Создать файл Testrunner. В этом файле мы интегрировали огурец с селеном. Мы выполняем этот скрипт.
- Определение шага Creat, фактический сценарий селена, определенный в этом пакете.