Селен з огірком (BDD Framework): Підручник із прикладом

Зміст:

Anonim

У цьому підручнику ви дізнаєтесь, як інтегрувати огірок із Selenium Webdriver.

Що таке огірок?

Огірок - це підхід до тестування, який підтримує поведінковий розвиток (BDD). Це пояснює поведінку програми простим англійським текстом на мові огірків.

Докладніше на - https://www.guru99.com/cucumber-tutorials.html

Що таке селен?

Селен - це інструмент автоматизації функціонального тестування веб-додатків. Селен підтримує різні мови, такі як java, ruby, python C # тощо.

Докладніше на - https://www.guru99.com/selenium-tutorial.html

У цьому підручнику з огірків ми дізнаємось-

  • Навіщо використовувати огірок з селеном?
  • Передумова використання огірка з селеном.
  • Тестування автоматизації з використанням огірка з селеном.
  • Сценарій 1: Друк тексту на консолі.
  • Сценарій 2: Введіть облікові дані для входу та скиньте значення.
  • Сценарій 3: Введіть облікові дані для входу на Guru99 і скиньте значення. Зробіть це для 3 наборів даних.

Навіщо використовувати огірок з селеном?

Огірок та селен - дві популярні технології.

Більшість організацій використовують селен для функціонального тестування. Ці організації, які використовують селен, хочуть інтегрувати селен з огірком, оскільки огірок полегшує читання та розуміння потоку заявок.

Інструмент "Огірок" заснований на структурі, що керується поведінкою, яка діє як місток між наступними людьми:

  1. Інженер-програміст та бізнес-аналітик.
  2. Ручний тестер та тестер автоматизації.
  3. Ручний тестер та розробники.

Структура BDD для огірків також допомагає клієнту зрозуміти код програми, оскільки вона використовує мову огірків, яка є у звичайному тексті. Будь-хто в організації може зрозуміти поведінку програмного забезпечення. Синтаксис Геркіна поданий у простому тексті, який читається і зрозумілий.

Передумова використання огірка з селеном

Перш ніж розпочати інтеграцію огірка селену, нам потрібні такі елементи:

  • Файли банок селену:
  • Селен-сервер - автономний

Можна завантажити за адресою http://www.seleniumhq.org/download/

Банки для огірків:

  • Огірок-серцевина
  • Огірок-html
  • охоплення кодексу кобертури
  • Огірок-ява
  • Огірок-джуніт
  • Огірок-jvm-deps
  • Огірок-звітність
  • Хемкрест-ядро
  • Корнішон
  • Джуніт

Можна завантажити за адресою https://mvnrepository.com/search?q=Огірок

Вам потрібно шукати файли та завантажувати їх по одному окремо.

Наприклад, ми покажемо вам завантажити один із файлів jar, тобто "огірковий стрижень".

Клацніть на посилання для завантаження вище. Він переспрямовує на сайт нижче. Тепер виконайте пошук у певній баночці, наприклад, «Огіркова серцевина», як показано на знімку екрана нижче:

На наступній сторінці клацніть версію 1.2.2,

На наступному екрані натисніть на завантаження, щоб отримати файл jar "Огіркова серцевина".

Примітка . Для вашої зручності ми зібрали файли jar, які потрібно завантажити з Maven тут. З часом ці баночки можуть оновитись і стати несумісними. Вам пропонується завантажити їх методом, проілюстрованим вище.

Тестування автоматизації з використанням огірка з селеном.

Давайте вивчимо кроки використання огірка з селеном поетапно. Тут ми розглянемо 3 сценарії:

  • Сценарій 1: Друк тексту на консолі.
  • Сценарій 2: Введіть облікові дані для входу та скиньте значення.
  • Сценарій 3: Введіть облікові дані для входу на Guru99 і скиньте значення. Зробіть це для 3 наборів даних.

Сценарій 1: Друк тексту на консолі.

У цьому випадку ми просто друкуємо текст у консолі, використовуючи Огірок.

Крок 1) Створіть проект у затемненні.

Створіть проект Java з назвою "CucumberWithSelenium", як показано на скріншоті нижче.

Крок 2) Додавання файлів Jar у проект.

Клацніть правою кнопкою миші на проекті> Виберіть властивості> Перейти до шляху побудови Java. Додайте всі бібліотеки, завантажені раніше.

Крок 3) Створення файлу функції

Для створення файлу функцій спочатку створіть папку функцій, як показано на знімку екрана.

Тепер введіть назву папки «Особливості» та натисніть кнопку «Готово».

Тепер створіть файл функції у папці «Особливості» з назвою «MyTest.feature» - Процес подібний до створення папки

Примітка. Можливо, вам знадобиться встановити плагін Cucumber Eclipse, щоб це працювало. Перейти - Допомога -> Встановити нове програмне забезпечення -> скопіювати, вставити посилання http://cucumber.github.io/cucumber-eclipse/update-site/ та встановити

Крок 4) Написати сценарії.

Внизу рядки записані у файлі "MyTest.feature" на мові огірків, як показано нижче:

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) Написання сценарію селенового теструнера для дизайну каркасу огірка селену

Тут ми створюємо пакет "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{}

У наведеному вище прикладі коду Java Cucumber ми запускаємо тест огірка, використовуючи такі анотації:

Анотація @RunWith () розповідає про клас запуску тестів для початку виконання наших тестів.

Анотація @CucmberOptions () використовується для встановлення деяких властивостей для нашого огіркового тесту, таких як файл функції, визначення кроків тощо.

Знімок екрана файлу TestRunner.

Крок 6) Створення сценарію визначення кроку.

Тепер тут ми створюємо пакет "StepDefinition", а потім файл сценарію "Steps.java" під ним. Тут ми фактично пишемо сценарій селену для проведення тесту за методами Огірка.

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: Введіть облікові дані для входу та скиньте значення.

Тут ми просто введемо облікові дані на демонстраційній сторінці входу в Guru99 і скинемо значення

Для сценарію 2 нам потрібно оновити лише сценарій 'Steps.java'. Тут ми фактично пишемо сценарій селену, як показано нижче. По-перше, нам потрібно додати в цей проект файл jar Selenium.

Крок 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 and 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. Його легко читати, і його можуть зрозуміти всі зацікавлені сторони, включаючи технічну та нетехнічну особу.

Огірок можна інтегрувати з селеном, виконавши 3 кроки

  1. Створіть файл функції, в якому поетапно визначайте функцію та сценарії, використовуючи мову огірків.
  2. Створіть файл Testrunner. У цьому файлі ми інтегрували огірок із фреймворком BDD у Selenium. Ми виконуємо цей сценарій.
  3. Визначення Creat Step, власне сценарій селену, визначений цим пакетом.