cucumber gherkin tutorial
Цей інформаційний посібник пояснює переваги основи огірка огірка і як писати сценарії автоматизації з використанням мови огірків на наочних прикладах:
Огірок - це інструмент, заснований на структурі, що керується поведінкою (BDD). BDD - це методологія розуміння функціональних можливостей програми у простому текстовому поданні.
Головною метою структури, що керується поведінкою, є зробити так, щоб різні ролі проекту, такі як бізнес-аналітики, забезпечення якості, розробники тощо, розуміли програму, не заглиблюючись в технічні аспекти.
Інструмент 'Огірок' зазвичай використовується в режимі реального часу для написання приймальних тестів заявки. Інструмент 'Огірок' забезпечує підтримку багатьох мов програмування, таких як Java, Ruby, .Net тощо. Він може бути інтегрований з багатьма інструментами, такими як Selenium, Capybara тощо.
Що ви дізнаєтесь:
Що таке Корнішон?
Огірок - це мова, що використовується інструментом 'Огірок'. Це просте представлення поведінки програми на англійській мові. Огірок використовує концепцію файлів функцій для цілей документації. Вміст у файлах функцій написаний мовою огірків.
У наступних темах ми побачимо більше про переваги фреймворку Cucumber Gherkin, Інтеграція огірка з селеном, Створення файлу об’єкта та відповідного йому файла визначення кроку та зразка файлу функцій.
Загальні терміни для огірка огірка огірка
Огірковий огірок-корнішон використовує певні ключові слова, необхідні для написання файлу об’єкта.
Наступні терміни найчастіше використовуються у файлах функцій:
# 1) Особливість:
Файл функцій повинен містити високорівневий опис програми, що тестується (AUT). Перший рядок файлу функцій повинен починатися з ключового слова 'Feature', що слідує за описомдодатокпід тестом. Відповідно до стандартів, передбачених Огірком, файл функцій повинен включати такі три елементи як перший рядок.
- Ключове слово функції
- Назва функції
- Опис функції (необов’язково)
За ключовим словом об’єкт має йти назва об’єкта. Він може включати необов’язковий розділ опису, який може охоплювати кілька рядків файлу об’єкта. Файл функції має розширення .feature.
# 2) Сценарій:
Сценарій - це тестова специфікація функціональності, що перевіряється. В ідеалі файл функції може містити один або кілька сценаріїв як частину функції. Сценарій включає кілька етапів тестування. Відповідно до стандартів огірка, сценарій повинен включати 3-5 тестових кроків, оскільки тривалі сценарії, як правило, втрачають свою виражальну силу, як тільки збільшується кількість етапів.
Сценарій може включати такі кроки:
- Дія, яку повинен виконати користувач.
- Очікувані результати дії.
Мовою корнішонів сценарій повинен містити такі ключові слова:
- Дано
- Коли
- Потім
- І
Дано:
Дане ключове слово використовується для вказівки передумов для виконання конкретного сценарію. Сценарій може включати більше одного даного висловлювання, або не може бути поданих висловлювань для сценарію.
Коли:
Це ключове слово використовується для вказівки дії або події, яку виконує користувач, наприклад, натискання кнопки, введення даних у текстове поле тощо. Операторів, коли в одному сценарії може бути декілька.
Потім:
Потім ключове слово використовується для вказівки очікуваного результату дії, виконаної користувачем. В ідеалі, коли за ключовим словом має слідувати ключове слово Then, щоб зрозуміти очікуваний результат дій користувача.
І:
А ключове слово використовується як сполучне ключове слово для поєднання декількох тверджень. Наприклад, кілька операторів 'Дано' та 'Коли' у сценарії можна об'єднати, використовуючи ключове слово 'І'.
# 3) Сценарій:
Контур сценарію - це спосіб параметризації сценаріїв.
Це ідеально застосовується, коли один і той же сценарій потрібно виконати для декількох наборів даних, але кроки тестування залишаються однаковими. Структура сценарію повинна супроводжуватися ключовим словом „Приклади”, яке визначає набір значень для кожного параметра.
Нижче наведено приклад розуміння концепції Сценарію:
Приклад:
Контур сценарію: Завантажте файл
Дано що користувач перебуває на екрані завантаження файлу.
Коли користувач натискає кнопку Огляд.
І користувач входить у текстове поле для завантаження.
І користувач натискає кнопку введення.
Потім перевіряє успішність завантаження файлу.
Приклади:
| ім'я файлу |
| файл1 |
| файл2 |
Параметри в контурі сценарію повинні бути вказані з символами «». Список значень даних для параметра повинен бути вказаний за допомогою символу Pipe (|).
# 4) Передумови:
Фонове ключове слово використовується для групування кількох заданих тверджень в одну групу.
Зазвичай це використовується, коли однаковий набір заданих операторів повторюється у кожному сценарії файлу об’єктів. Замість того, щоб повторно вказувати дані оператори для кожного сценарію, їх можна вказати за допомогою ключового слова «Фон» перед першим сценарієм.
Приклад:
Передумови:
Даний користувач знаходиться на сторінці входу в програму
Переваги огіркового карнішону
Нижче наведено переваги основи огірка огірка, що робить огірок ідеальним вибором для швидко розвивається Agile методології в сучасному корпоративному світі:
- Огірок - це інструмент з відкритим кодом.
- Звичайний текст полегшує нетехнічним користувачам розуміння сценаріїв.
- Це заповнює розрив у спілкуванні між різними зацікавленими сторонами проекту, такими як бізнес-аналітики, розробники та персонал із забезпечення якості.
- Тести для автоматизації, розроблені за допомогою інструменту “Огірок”, простіше в обслуговуванні та розумінні.
- Легко інтегрувати з іншими інструментами, такими як селен та Capybara.
Інтеграція огірка з селеном
Огірок та селен - два найпотужніші інструменти функціонального тестування. Інтеграція огірка з селеном Webdriver допомагає різним нетехнічним членам команди проекту зрозуміти процес застосування.
Нижче наведено кроки, яких слід дотримуватися для інтеграції огірка з Selenium Webdriver:
Крок 1:
Огірок можна інтегрувати з Selenium Webdriver, завантаживши необхідні файли JAR.
Нижче наведено список файлів JAR, які потрібно завантажити для використання Огірка з Selenium Webdriver:
- охоплення-2.1.1.jar
- огірок-серцевина-1.2.2.банка
- огірок-java-1.2.2.jar
- огірок-джуніт-1.2.2.банка
- огірок-jvm-deps-1.0.3.jar
- огірок-звітний-0.1.0.jar
- корнішони-2.12.2.арк
- hamcrest-core-1.3.jar
- junit-4.11.jar
Наведені вище файли JAR можна завантажити з Maven веб-сайт .
Кожен із вищезазначених файлів JAR потрібно завантажувати окремо із зазначеного веб-сайту.
Крок No2:
Створіть новий проект в Eclipse і додайте до проекту вищезазначені файли JAR. Щоб додати файли JAR до проекту, клацніть правою кнопкою миші на проект -> Шлях побудови -> Налаштування Шляху побудови.
Натисніть на Додайте зовнішні JAR-файли і додайте до проекту список вищезазначених файлів JAR.
Крок No3:
Перш ніж створювати файли функцій та файли визначення кроків, нам потрібно встановити плагін Natural у Eclipse. Це можна зробити, скопіювавши та вставивши файл URL на Довідка -> Встановити нове програмне забезпечення -> URL
Клацніть на Кнопка 'Далі' встановити плагін в Eclipse.
Створення файлу функцій
Створіть окремі папки для файлів функцій та файлів визначення кроків у структурі проекту. Файли визначення кроків містять рядки кодування Java, тоді як файл функції містить англійські висловлювання у формі мови корнішона.
- Створіть окрему папку для зберігання файлу функції, клацнувши правою кнопкою миші на проекті -> Нове -> Пакет .
- Файл функції можна створити, перейшовши правою кнопкою миші на проект / пакет -> Нове -> Файл .
- Вкажіть ім’я для файла функції. Файл функції повинен супроводжуватися розширенням .feature
- Структура проекту повинна виглядати як структура нижче.
Створення файлу визначення кроку
Кожен крок файлу функцій повинен бути зіставлений з відповідним визначенням кроку. Теги, що використовуються у файлі огірка огірка, повинні бути зіставлені з визначенням кроку за допомогою тегів @Given, @When і @Then.
Нижче наведено синтаксис файлу визначення кроку:
Синтаксис:
@TagName (“^ Ім'я кроку $”)
Public void methodName ()
{
Визначення методу
}
як виглядає інтернет-модем
Імена кроків повинні мати префікс символу карат (^) і суфікс символу ($). Назва методу може бути будь-якою дійсною назвою, прийнятною відповідно до стандартів кодування Java. Визначення методу включає оператори кодування на Java або будь-яку іншу мову програмування на вибір тестера.
Приклади файлу функції та кроку з визначенням кроків
Для створення файлу функції та файлу визначення кроку можна використовувати наступний сценарій:
Сценарій:
- Відкрийте сторінку входу в програму, що перевіряється.
- Введіть ім'я користувача
- Введіть пароль
- Клацніть на кнопку Вхід.
- Перевірте, чи вдало ввійшов користувач.
Файл функції:
Вищевказаний сценарій можна записати у вигляді файлу функцій, як показано нижче:
Характеристика: Увійдіть до тестованої програми.
Сценарій: Увійдіть до програми.
Дано Відкрийте браузер Chrome і запустіть програму.
Коли Користувач вводить ім'я користувача в поле UserName.
І Користувач вводить пароль у поле Пароль.
Коли Користувач натискає кнопку Вхід.
Файл визначення кроку:
У вищезазначеній функції файл може бути зіставлений з відповідним файлом визначення кроку, як показано нижче. Зверніть увагу, що для забезпечення зв’язку між файлом функції та файлом визначення кроку необхідно створити файл пробного бігуна.
Нижче подано файл визначення кроку відповідно до його файлу особливостей.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
Клас TestRunner використовується для забезпечення зв'язку між файлом функції та файлом визначення кроку. Нижче наведено зразок представлення того, як виглядає клас TestRunner. Клас TestRunner - це, як правило, порожній клас без визначення класу.
Package com.sample.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 { }
Нам потрібно запустити файл класу TestRunner для виконання файлів функцій та файлів визначення кроків.
Приклади
Нижче наведено представлення файлу функцій різних сценаріїв.
Приклад №1:
Щоб перевірити, чи є ім’я користувача та пароль доступними на сторінці входу:
Характеристика: Перевірте відображення полів імені користувача та пароля на сторінці входу.
Сценарій: Для перевірки відображення полів імені користувача та пароля.
Дано Користувач відкриває браузер Firefox і переходить до тестованої програми.
Коли Користувач переходить на сторінку входу.
Потім Перевірте відображення поля імені користувача на сторінці входу.
І Перевірте відображення поля пароля на сторінці входу.
Приклад №2:
Нижче наведено приклад ключового слова для сценарію сценарію в огірку огірка:
Характеристика: Переконайтеся, що вхід успішний для кількох наборів тестових даних.
Контур сценарію: Щоб перевірити, чи вдалося ввійти в систему для кількох наборів тестових даних.
Дано Відкрийте браузер Chrome і запустіть програму.
Коли Користувач входить у поле UserName.
І Користувач входить у поле Пароль.
Коли Користувач натискає кнопку Вхід.
Приклади:
| ім'я користувача | пароль |
| користувач1 | пароль1 |
| користувач2 | пароль2 |
Висновок
- BDD - це методологія для розуміння функціональних можливостей програми в простому поданні у вигляді простого тексту.
- Огірок - це інструмент, який використовує поведінкову розробку для написання приймальних тестів заявки. Він використовується для подолання розриву у спілкуванні між різними зацікавленими сторонами проекту.
- Основне використання огірка полягає в простоті розуміння використання файлів функцій нетехнічними користувачами.
Ще не пізно спробувати цей інструмент «Огірок» на мові огірків.
Рекомендована література
- Підручник Geb - Тестування автоматизації браузера за допомогою інструмента Geb
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Автоматизація тестування за допомогою інструменту 'Огірок' та селен - Підручник № 30
- Що таке тестування автоматизації (Кінцевий посібник із запуску автоматизації тестування)
- Підручник із Spock: Тестування за допомогою Spock and Groovy
- Найкращі засоби тестування програмного забезпечення 2021 р. (Засоби автоматизації тестування якості)
- Підручник з деструктивного контролю та неруйнівного контролю
- Функціональне тестування проти нефункціонального тестування