automation testing using cucumber tool
В останньому посібнику з селену ми познайомили вас з Селенова сітка який є до розподілене виконання тесту середовище для прискорення виконання тестового проходу .
В кінці цієї всеосяжної серії навчальних селенів ми вчимось вдосконалено Тестування на селен та суміжні поняття.
У цьому та наступному підручнику ми познайомимо вас із Огірок - а Структура, що керується поведінкою (BDD), яка використовується із селеном для проведення приймально-здавальних випробувань.
Що ви дізнаєтесь:
Огірок Вступ
Огірок - це інструмент, заснований на структурі керування поведінкою (BDD), яка використовується для написання приймальних тестів для веб-програми. Це дозволяє автоматизувати перевірку функціональності у легко читаному та зрозумілому форматі (наприклад, простою англійською мовою) для бізнес-аналітиків, розробників, тестувальників тощо.
Файли огірків можуть послужити хорошим документом для всіх. Є багато інших інструментів, таких як JBehave, які також підтримують фреймворк BDD. Спочатку огірок був реалізований в Ruby, а потім поширився на фреймворк Java. Обидва інструменти підтримують власний JUnit.
Розроблена поведінкою розробка - це розширення Тестової розробки, і вона використовується для тестування системи, а не для тестування певної частини коду. Ми обговоримо докладніше BDD та стиль написання тестів BDD.
Огірок можна використовувати разом із Селеном, Ватиром, Капібарою тощо. Огірок підтримує багато інших мов, таких як Perl, PHP, Python, Net тощо. У цьому посібнику ми зосередимось на Огірку з мовою Java.
Основи огірка
Щоб зрозуміти огірок, ми повинні знати всі особливості огірка та його використання.
найкращий сайт для скачування mp3 для android
# 1) Файли функцій:
Файли характеристик є важливою частиною огірка, яка використовується для написання етапів автоматизації тестів або приймальних тестів. Це можна використовувати як діючий документ. Етапи - це специфікація програми. Усі файли функцій закінчуються розширенням .feature.
Зразок файлу функції:
Особливість : Функція функціональності входу
Для того, щоб забезпечити функціональність входу,
Я хочу запустити тест на огірок, щоб переконатися, що він працює
Сценарій : Функціональність входу
Дано користувач переходить до SOFTWARETETINGHELP.COM
Коли користувач входить, використовуючи Ім'я користувача як «КОРИСТУВАЧ» та Пароль «ПАРОЛЬ»
Потім вхід повинен бути успішним
Сценарій : Функціональність входу
Дано користувач переходить до SOFTWARETETINGHELP.COM
Коли користувач входить, використовуючи Ім'я користувача як «КОРИСТУВАЧ1» та Пароль «ПАРОЛЬ1»
Потім слід викинути повідомлення про помилку
# 2) Особливість:
Т він надає інформацію про функціональність бізнесу високого рівня (див. попередній приклад) та мету тестованої програми. Кожен повинен мати можливість зрозуміти намір файлу об’єктів, прочитавши перший крок функції. Ця частина в основному стисла.
# 3) Сценарій:
В основному, сценарій представляє певну функціональність, яка перевіряється. Побачивши сценарій, користувач повинен мати можливість зрозуміти намір сценарію та те, що таке тест. Кожен сценарій повинен слідувати заданому, коли і потім форматованому. Цю мову називають “корнішоном”.
- Дано: Як зазначалося вище, наведене визначає передумови. В основному це відомий стан.
- Коли : Це використовується, коли потрібно виконати якусь дію. Як і у наведеному вище прикладі, ми бачили, коли користувач намагається увійти, використовуючи ім’я користувача та пароль, це стає дією .
- Потім: Тут слід розмістити очікуваний результат чи результат. Для екземпляра: перевірте, чи вдалося ввійти, успішна навігація сторінкою.
- Передумови: Щоразу, коли потрібно виконати будь-який крок у кожному сценарії, ці кроки потрібно розмістити у фоновому режимі. Для прикладу: Якщо користувачеві потрібно очистити базу даних перед кожним сценарієм, ці кроки можна перевести у фоновий режим.
- І : І використовується для поєднання двох або більше однотипних дій.
Приклад:
Особливість : Функція функціональності входу
Сценарій : Функціональність входу
Дано користувач переходить до SOFTWARETETINGHELP.COM
Коли користувач входить, використовуючи Ім'я користувача як “КОРИСТУВАЧ”
І пароль як 'пароль'
Потім вхід повинен бути успішним
І Повинна відображатися домашня сторінка
система продажів для ipad - -
Приклад передумови:
Передумови:
Дано користувач увійшов як адміністратор баз даних
І всі непотрібні значення очищаються
# 4) Контур сценарію:
Контури сценаріїв використовуються, коли один і той же тест повинен проводитися з різним набором даних. Візьмемо той самий приклад. Ми повинні перевірити функціональність входу за допомогою різних наборів імені користувача та пароля.
Особливість : Функція функціональності входу
Для того, щоб забезпечити функціональність входу,
Я хочу запустити тест на огірок, щоб переконатися, що він працює
Контур сценарію : Функціональність входу
Дано користувач переходить на SOFTWARETESTINGHELP.COM
Коли користувач входить, використовуючи ім'я користувача як< ім'я користувача > та пароль< пароль >
Потім вхід повинен бути успішним
Приклади:
| ім'я користувача | пароль |
| Том | пароль1 |
| Гаррі | пароль2 |
| Джеррі | пароль3 |
Примітка:
- Як показано в наведеному вище прикладі назви стовпців передаються як параметр Коли заява.
- Замість сценарію вам слід використовувати схему сценарію.
- Приклади використовуються для передачі різних аргументів у табличному форматі. Вертикальні труби використовуються для розділення двох різних колон. Приклад може містити багато різних стовпців.
# 5) Теги:
Огірок за замовчуванням запускає всі сценарії у всіх файлах функцій. У проектах реального часу може бути сотня файлів функцій, які не потрібно запускати постійно.
Наприклад : Не потрібно постійно запускати файли функцій, пов’язані з тестом на дим. Отже, якщо ви згадаєте тег як бездимний у кожному файлі функцій, який пов’язаний із тестом на дим і запускає тест на огірки з тегом @SmokeTest. Огірок буде запускати лише ті файли функцій, що стосуються певних тегів. Будь ласка, дотримуйтесь наведеного нижче прикладу. Ви можете вказати кілька тегів в одному файлі функцій.
Приклад використання окремих тегів:
@SmokeTest
Особливість : Функція функціональності входу
Для того, щоб забезпечити функціональність входу,
Я хочу запустити тест на огірок, щоб переконатися, що він працює
Контур сценарію : Функціональність входу
Дано користувач переходить на SOFTWARETESTINGHELP.COM
Коли користувач входить, використовуючи ім'я користувача як< ім'я користувача > та пароль< пароль >
Потім вхід повинен бути успішним
Приклади:
| ім'я користувача | пароль |
| Том | пароль1 |
| Гаррі | пароль2 |
| Джеррі | пароль3 |
Приклад використання декількох тегів:
Як показано в прикладі нижче, той самий файл функції можна використовувати як для сценаріїв тесту на дим, так і для сценарію тесту на вхід. Коли ви збираєтеся запустити скрипт для тесту на дим, використовуйте @SmokeTest. Подібним чином, коли ви хочете, щоб ваш сценарій запускався для тесту входу, використовуйте тег @LoginTest.
Будь-яку кількість тегів можна вказати як для файлу об’єкта, так і для сценарію.
@SmokeTest @LoginTest
Особливість : Функція функціональності входу
Для того, щоб забезпечити функціональність входу,
Я хочу запустити тест на огірок, щоб переконатися, що він працює
Контур сценарію : Функціональність входу
Дано користувач переходить до SOFTWARETETINGHELP.COM
Коли користувач входить, використовуючи Ім'я користувача як та Пароль
Потім вхід повинен бути успішним
Приклади:
| ім'я користувача | пароль |
| Том | пароль1 |
| Гаррі | пароль2 |
| Джеррі | пароль3 |
Так само ви можете вказати теги для запуску конкретного сценарію у файлі функції. Будь ласка, перевірте приклад нижче, щоб запустити конкретний сценарій.
Особливість : Функція функціональності входу
Для того, щоб забезпечити функціональність входу,
Я хочу запустити тест на огірок, щоб переконатися, що він працює
@positiveScenario
Сценарій : Функціональність входу
Дано користувач переходить до SOFTWARETETINGHELP.COM
Коли користувач входить, використовуючи Ім'я користувача як «КОРИСТУВАЧ» та Пароль «ПАРОЛЬ»
Потім вхід повинен бути успішним
@negaviveScenario
Сценарій : Функціональність входу
Дано користувач переходить до SOFTWARETETINGHELP.COM
Коли користувач входить, використовуючи Ім'я користувача як «КОРИСТУВАЧ1» та Пароль «ПАРОЛЬ1»
Потім повідомлення про помилку повинно викинути
# 6) JUnit Runner:
Для запуску певного файла функцій огірок використовує стандартний JUnit Runner і вказує теги в @Cucumber. Варіанти. Кілька тегів можна задати, використовуючи розділені комами. Тут ви можете вказати шлях до звіту та тип звіту, який потрібно створити.
Приклад Junit Runner:
import cucumber.api.junit.Cucumber;
імпорт org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Відкритий клас JUnitRunner {} Подібним чином ви можете дати вказівку огірку запускати кілька тегів. Нижче наведено приклад того, як використовувати кілька тегів в огірку для запуску різних сценаріїв.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Огірковий звіт:
Огірок генерує власний формат HTML. Однак кращу звітність можна зробити за допомогою інструменту Дженкінса або бамбука. Деталі звітності висвітлені в наступній темі огірка.
Налаштування проекту огірка:
Детальне пояснення проекту огірка доступне окремо в наступному підручнику. Будь ласка, зверніться до Підручника з огірків Part2, щоб отримати більше інформації про налаштування проекту. Пам’ятайте, що для огірка не потрібні додаткові програми.
Впровадження файлу функцій:
Ми повинні реалізувати ці кроки на Java, щоб протестувати файли функцій. Потрібно створити клас, який містить ті, що даються, коли і потім твердження. Огірок використовує свої анотації, і всі кроки в них вбудовані (дано, коли, тоді). Кожна фраза починається з “^”, щоб огірок розумів початок кроку. Подібним чином кожен крок закінчується знаком '$'. Користувач може використовувати регулярні вирази для передачі різних даних тесту. Регулярні вирази беруть дані з кроків функції та переходять до визначень кроків. Порядок параметрів залежить від того, як вони передаються з файлу об'єкта. Будь ласка, зверніться до наступного підручника щодо налаштування проекту та відображення між файлами функцій та класами Java.
як писати сценарії тестів автоматизації -
Приклад:
Нижче наведено приклад для ілюстрації того, як можна реалізувати файли функцій.
У цьому прикладі ми не використовували жодного API селену. Це лише для того, щоб показати, як огірок працює як самостійний фреймворк. Будь ласка, дотримуйтесь наступного посібника з інтеграції селену з огірком.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Коли ви виконуєте клас огірка, огірок почне читати кроки файлу функцій. Наприклад, коли ви виконуєте @smokeTest, огірок прочитає Особливість крок і Дано заяву сценарій . Як тільки огірок знаходить Враховуючи заяву, те саме Дано буде шукати ваші файли Java. Якщо той самий крок знайдено у файлі Java, тоді огірок виконує функцію, визначену для того самого кроку, інакше огірок пропустить цей крок.
Висновок
У цьому посібнику ми розглянули особливості інструменту для огірків та його використання в режимі реального часу.
Огірок - найулюбленіший інструмент для багатьох проектів, оскільки його легко зрозуміти, прочитати та містить ділові функції.
У наступному розділі , ми розглянемо, як налаштувати проект огірка - Java та як інтегрувати Selenium WebDriver з Огірком.
Рекомендована література
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- 30+ найкращих підручників із селену: вивчіть селен на реальних прикладах
- Підручник із селенової сітки: Налаштування та приклад крос-браузерного тестування
- Spock для інтеграції та функціональних випробувань із селеном
- Використання інструменту автоматизації збірки Maven та налаштування проекту Maven для селену - Підручник No24
- Вступ до Selenium WebDriver - Підручник з селену №8
- Поглиблені підручники Eclipse для початківців
- Підручник із інструменту тестування доступності WAVE