Selenium Cucumber (Учебное пособие по фреймворку BDD)
В этом уроке вы узнаете, как интегрировать Cucumber Selenium Вебдрайвер.
Что такое Cucumber?
Cucumber — это подход к тестированию, который поддерживает разработку на основе поведения (BDD). Он объясняет поведение приложения простым текстом на английском языке с использованием языка Gherkin.
Узнайте больше на - https://www.guru99.com/cucumber-tutorials.html
Что такое Selenium?
Selenium это инструмент автоматизации для Функциональное тестирование веб-приложения. Selenium поддерживает разные языки, такие как Java, Ruby, Python C# и т. д.
Узнайте больше на - https://www.guru99.com/selenium-tutorial.html
Зачем использовать Cucumber Selenium?
Cucumber и Selenium две популярные технологии.
Большинство организаций используют Selenium для функционального тестирования. Эти организации, которые используют Selenium, хочу интегрировать Selenium Cucumber as Cucumber создает его легко читать и понимать ход выполнения приложения.
Cucumber инструмент основан на платформе Behavior Driven Development, которая действует как мост между следующими людьми:
- Инженер-программист и бизнес-аналитик.
- Ручной тестер и автоматический тестер.
- Ручной тестер и разработчики.
Cucumber BDD-фреймворк также помогает клиенту понять код приложения поскольку он использует язык Gherkin, который представлен в виде обычного текста. Любой сотрудник организации может понять поведение программного обеспечения. Синтаксис Gherkin представлен простым текстом, который легко читается и понятен.
Обязательное условие для использования Cucumber Selenium
Прежде чем мы приступим Cucumber Selenium Для интеграции нам понадобятся следующие элементы:
- Selenium jar-файлы:
- Selenium-сервер-автономный
Можно скачать на http://www.seleniumhq.org/download/
Jar-файлы для Cucumber :
- Cucumber-core
- Cucumber-html
- покрытие кода кобертуры
- Cucumber-Ява
- Cucumber-юнит
- Cucumber-jvm-deps
- Cucumber-составление отчетов
- Hamcrest-ядро
- корнишон
- Юнит
Можно скачать на https://mvnrepository.com/search?q=Cucumber
Вам нужно искать файлы и загружать их один за другим по отдельности.
Например, мы покажем вам, как загрузить один из jar-файлов, например: «Cucumber-основной."
Нажмите на ссылку для скачивания выше. Он перенаправляет на сайт ниже. Теперь найдите конкретную банку, т.е.Cucumber Core», как показано на скриншоте ниже:
На следующей странице нажмите версию 1.2.2,
На следующем экране нажмите «Загрузить», чтобы получить «Cucumber Core' jar-файл.
Внимание: Для вашего удобства мы включили файлы jar, необходимые для загрузки из Maven. здесь. Со временем эти банки могут обновиться и стать несовместимыми. Вам предлагается загрузить их, используя метод, показанный выше.
Автоматизация тестирования с использованием Cucumber Selenium.
Давайте изучим шаги по использованию Cucumber с селеном шаг за шагом. Здесь мы рассмотрим 3 сценария:
- Сценарий 1. Печать текста в консоли.
- Сценарий 2. Введите учетные данные для входа и сбросьте значение.
- Сценарий 3. Введите учетные данные для входа в Guru99 и сбросьте значение. Сделайте это для 3 наборов данных.
Сценарий 1. Печать текста в консоли.
В этом сценарии мы просто печатаем текст в консоли, используя Cucumber.
Шаг 1) Создать проект в Eclipse.
Создавай Java проект с названием «CucumberДля пользователя Selenium», как показано на скриншоте ниже.
Шаг 2) Добавление Jar-файлов в проект.
Щелкните правой кнопкой мыши проект> выберите «Свойства»> «Перейти к». Java Путь сборки. Добавьте все библиотеки, скачанные ранее.
Шаг 3) Создание файла объекта
Для создания файла функций сначала создайте папку функций, как показано на снимке экрана ниже.
Теперь введите имя папки «Функции» и нажмите кнопку «Готово».
Теперь создайте файл функции в папке «Функции» с именем «MyTest.feature». Процесс аналогичен созданию папки.
Примечание: Возможно, вам придется установить Cucumber Eclipse Плагин, чтобы это работало. Перейти к — Помощь->Установить новое программное обеспечение->скопировать и вставить ссылку. http://cucumber.github.io/cucumber-eclipse/update-site/ и установить
Шаг 4) Пишите сценарии.
Нижеприведенные строки записаны в файле MyTest.feature с использованием языка Gherkin, как показано ниже:
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
Код Пояснение
Строка 1) В этой строке мы пишем бизнес-функциональность.
Строка 2) В этой строке мы пишем сценарий для тестирования.
Строка 3) В этой строке мы определяем предварительное условие.
Строка 4) В этой строке мы определяем действие, которое нам нужно выполнить.
Строка 4) В этой строке мы определяем ожидаемый результат или результат.
Шаг 5) Написание скрипта selenium testrunner для Selenium Cucumber конструкция каркаса
Здесь мы создаем пакет 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 Java пример кода, мы запускаем огуречный тест используя следующие аннотации:
@Бежать с() аннотация сообщает о классе запуска тестов, с помощью которого можно начать выполнение наших тестов.
@CucmberOptions() аннотация используется для установки некоторых свойств нашего теста огурца, таких как файл объекта, определение шага и т. д.
Скриншот файла TestRunner.
Шаг 6) Создание сценария определения шага.
Теперь здесь мы создаем пакет 'StepDefinition', а затем файл скрипта 'Steps.java' в нем. Здесь мы фактически пишем скрипт selenium для выполнения теста в 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. Cucumber аннотация используется для сопоставления с файлом объекта. Каждый метод аннотации определяется:
@Данный аннотация определяет метод открытия Firefox и запуска приложения
@Когда аннотация определяет метод для ввода имени пользователя и пароля
@Затем аннотация определяет метод для сброса учетных данных
В каждом методе мы только печатаем сообщение.
Ниже приведен скриншот скрипта Steps.java и дерева проекта, как оно выглядит.
Примечание: Определение шага — это не что иное, как шаги, которые вы хотите выполнить в рамках этого метода огурца.
Шаг 7) Выполнение сценария.
Пользователь может выполнить этот сценарий из сценария запуска тестов, т. е. «Runner.java», как показано на снимке экрана ниже.
Шаг 8) Проанализируйте результат.
При выполнении сценария Runner.java он отображает текст на консоли. Это тот же текст, что и в скрипте Steps.java.
Сценарий 2. Введите учетные данные для входа и сбросьте значение.
Здесь мы просто введем учетные данные на демонстрационной странице входа Guru99 и сбросим значение.
Для сценария 2 нам нужно обновить только скрипт 'Steps.java'. Здесь мы фактически пишем скрипт selenium, как показано ниже. Сначала нам нужно добавить 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.
- Имя пользователя и пароль размещены на странице входа.
- Сбросьте значения.
Заключение
Cucumber — очень популярный инструмент BDD. Его легко читать, и он может быть понятен всем заинтересованным сторонам, включая технических и нетехнических специалистов.
Cucumber может быть интегрирован с Selenium используя следующие 3 шага
- Создайте файл функции, в котором шаг за шагом определите функцию и сценарии, используя язык Gherkin.
- Создайте файл Testrunner. В этот файл мы интегрировали Cucumber с фреймворком BDD в Selenium. Выполняем этот скрипт.
- Определение шага создания — фактический сценарий Selenium, определенный в этом пакете.