Selenium з Cucumber (Навчальний посібник з BDD Framework)
У цьому посібнику ви дізнаєтесь, як інтегрувати 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 Інструмент базується на структурі розвитку, орієнтованої на поведінку, яка виконує роль мосту між такими людьми:
- Інженер-програміст та бізнес-аналітик.
- Ручний тестер і тестер автоматизації.
- Ручний тестер і розробники.
Cucumber Також структура BDD допомагає клієнту зрозуміти код програми оскільки він використовує мову Gherkin, яка є звичайним текстом. Будь-хто в організації може зрозуміти поведінку програмного забезпечення. Синтаксис Gherkin містить простий текст, який можна читати та зрозуміло.
Необхідна умова використання Cucumber з Selenium
Перш ніж ми почнемо Cucumber Selenium інтеграції, нам потрібні наступні елементи:
- Selenium файли jar:
- Selenium- автономний сервер
Можна завантажити на http://www.seleniumhq.org/download/
Файли jar для Cucumber :
- Cucumber- ядро
- Cucumber-html
- покриття коду cobertura
- Cucumber-ява
- Cucumber-юніт
- Cucumber-jvm-deps
- Cucumber-звітування
- Хамкрест-ядро
- Ґеркін
- Юніт
Можна завантажити на https://mvnrepository.com/search?q=Cucumber
Потрібно шукати файли та завантажувати їх по одному окремо.
Наприклад, ми покажемо вам завантажити один із файлів jar, тобто «Cucumber-ядро.»
Натисніть посилання для завантаження вище. Він перенаправляє на наведений нижче сайт. Тепер знайдіть певну банку, тобто 'Cucumber Core", як показано на знімку екрана нижче:
На наступній сторінці натисніть версію 1.2.2,
На наступному екрані натисніть «Завантажити», щоб отримати «Cucumber Ядро файлу jar.
Примітка:: Для вашої зручності ми зібрали файли jar, які потрібно завантажити з Maven тут. З часом ці банки можуть оновлюватися та ставати несумісними. Вам пропонується завантажити їх за допомогою описаного вище методу.
Автоматизація тестування за допомогою Cucumber з Selenium.
Давайте вивчимо кроки використання Cucumber з селеном крок за кроком. Тут ми розглянемо 3 сценарії:
- Сценарій 1: Друк тексту в консолі.
- Сценарій 2: введіть облікові дані для входу та скиньте значення.
- Сценарій 3: введіть облікові дані для входу на Guru99 і скиньте значення. Зробіть це для 3 наборів даних.
Сценарій 1: Друк тексту в консолі.
У цьому сценарії ми просто друкуємо текст у консолі за допомогою Cucumber.
Крок 1) Створіть проект у eclipse.
Створити Java проект під назвою «CucumberЗSelenium», як показано на знімку екрана нижче.
Крок 2) Додавання файлів Jar в проект.
Клацніть правою кнопкою миші на проекті > виберіть Властивості > Перейти до Java Побудувати шлях. Додайте всі бібліотеки, завантажені раніше.
Крок 3) Створення файлу функції
Щоб створити файл функцій, спочатку створіть папку функцій, як показано на знімку екрана нижче.
Тепер введіть назву папки «Features» і натисніть кнопку «Finish».
Тепер створіть файл функцій у папці «Features» з назвою «MyTest.feature» – процес подібний до створення папки
Примітка: Можливо, вам знадобиться встановити Cucumber Eclipse Плагін для роботи. Goto — Helps->Install New Software->copy paste посилання 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 приклад коду, ми запускаємо огірковий тест використовуючи такі анотації:
@RunWith() анотація розповідає про клас запуску тестів, щоб почати виконання наших тестів.
@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."); } }
У наведеному вище коді створено клас із назвою «Кроки». Cucumber анотація використовується для зіставлення з файлом функцій. Кожен метод анотації визначено:
@Given анотація визначає метод відкриття 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(); } }
Знімок екрана наведеного вище сценарію selenium.
Крок 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. Ми виконуємо цей скрипт.
- Створіть визначення Step, фактичний сценарій selenium, визначений у цьому пакеті.