karate framework tutorial
Цей підручник - це вступ до тестування API за допомогою Karate Framework. Дізнайтеся про структуру тестового сценарію карате та кроки для створення першого тестового сценарію:
API - це скорочення, що розшифровується як Application Programming Interface. Простіше кажучи, ми можемо визначити його як програмного посередника, що дозволяє спілкуватися між додатками.
Нам потрібне тестування API, оскільки:
- Результати публікуються швидше, отже, більше не потрібно чекати, чи API працює нормально.
- Завдяки швидшій реакції розгортання цих API також стає швидшим, отже, дозволяє швидко виконувати час.
- Раннє виявлення несправностей, навіть до створення інтерфейсу програми, дозволяє зменшити ризики та виправити несправності.
- Масштабна доставка можлива за коротший термін.
Щоб мати можливість працювати над тестуванням API, ми маємо на ринку різні інструменти, такі як Postman, Mocha та Chai. Вони продемонстрували хороші результати та ефективне використання для тестування API, однак на них сильно впливає код. Щоб мати можливість ними користуватися, потрібно бути технічно обґрунтованим та знати мови програмування.
Karate Framework чудово вирішує цю проблему попередніх програмних засобів.
Що ви дізнаєтесь:
Що таке рамки карате
Карате? Давайте поговоримо з карате. Це той з Японії? Як ти гадаєш? Можливо, великий Брюс Лі розвивав це у вільний час.
Хоча ми хотіли б заглибитися у цікаві корені карате, поки що поговоримо про Інструмент карате який був розроблений Пітер Томас , один з чудових інструментів, який приходить на допомогу тестувальникам API.
Структура карате відповідає огірковому стилю написання програми, яка відповідає підходу BDD. Синтаксис легко зрозуміти непрограмістам. І цей фреймворк - єдиний інструмент тестування API, який поєднав автоматизацію API та тестування продуктивності в єдиний автономний інструмент.
Він надає користувачам можливість виконувати тестові кейси в паралелі та виконувати перевірки JSON та XML.
З цією інформацією можна визначити деякі ключові моменти для подальшого детального розуміння інструменту карате:
- Карате - це тестова система BDD замість TDD.
- Він розроблений таким чином, щоб бути простим для програмістів. Ця функція є інструментом, що змінює ігри, оскільки дозволяє ширше використовувати та отримувати доступ багатьом людям, незалежно від їхнього технічного досвіду чи можливостей.
- Для написання тесту, який дуже легко зрозуміти, використовується файл функції Огірок та мова Гернінків.
Усі ці функції роблять його одним із найсприятливіших засобів автоматизації, доступних сьогодні.
Історія рамок карате
Створено ' Пітер Томас у 2017 році це програмне забезпечення має на меті зробити функціональність тестування доступною для всіх. Він був написаний на Java, і більшість людей очікували, що його файли також будуть однією мовою, проте, на щастя, це не так.
Швидше, він використовує файли огірків, що є результатом його взаємозв'язку з структурою огірка. Програмне забезпечення для автоматизації є розширенням Cucumber, тому успадковує використання файлу Gherkins у його роботі. Велика різниця між ними полягає в тому, що карате не використовує Java під час тестування, але Огірок це робить.
Саме з цієї причини він обслуговує непрограмістів, оскільки синтаксис Геркінса надзвичайно читається та всебічний. Ось чому карате є найбільш підходящим і рекомендованим для вступу у світ автоматизованого тестування API.
Нижче наведено деякі особливості програми тестування карате:
- Використовує просту для розуміння мову корнішонів.
- Це не вимагає технічних знань програмування, таких як Java.
- Він базується на популярних огіркових стандартах.
- Легко створити фреймворк.
- Паралельне тестування - це основна функціональність, яку забезпечує саме карате, отже, нам не потрібно залежати від цього Мейвен, Градле тощо
- Інтерфейс для налагодження тесту.
- Виклик файлу функції з іншого файлу.
- Забезпечує підтримку тестування драйверів даних, яке створюється власноруч, отже, немає необхідності залежати від зовнішніх фреймворків.
- Вбудовані звіти про власний відпочинок. Крім того, його можна інтегрувати з огірком для кращих звітів про інтерфейс та більшої ясності.
- Надає внутрішню підтримку для переключення конфігурації між різними середовищами тестування (QA, Stage, Prod, Pre-Prod).
- Бездоганна підтримка інтеграції CI / CD, яка може бути корисною.
- Можливість обробки різних HTTP-дзвінків:
- Підтримка Web Socket
- Запит SOAP
- HTTP
- Обробка файлів cookie браузера
- HTTPS
- Дані у формі HTML
- Запит XML
Порівняння карате проти впевненості
Будьте впевнені : Це бібліотека на основі Java для тестування служб REST. Він використовує мову Java для написання рядків коду. Це допомагає у тестуванні численних категорій запитів, що надалі призводить до перевірки різних комбінацій бізнес-логіки.
Рамка карате : Інструмент на основі огірка / огірків, що використовується для тестування послуг SOAP & REST.
У наведеній нижче таблиці перелічено ще кілька яскраво виражених відмінностей між 'Заспокійливим' та 'Карате':
С.Ні | Основа | Рамка карате | ВІДПОЧИНЕНО |
---|---|---|---|
7 | Звітність | Він забезпечує внутрішню звітність, отже, не потрібно залежати від зовнішніх плагінів. Ми навіть можемо інтегрувати його з плагіном звітування огірка для кращого інтерфейсу. | Потрібно залежати від зовнішніх плагінів, таких як Junit, TestNG |
1 | Мову | Тут використовується комбінація огірка та корнішонів | Тут використовується мова Java |
два | Розмір коду | Зазвичай рядок коду менше, оскільки він має структуру, подібну до огірка | Рядок коду більше, оскільки він передбачає використання мови Java |
3 | Потрібні технічні знання | Непрограмісти можуть легко написати код Геркінса | Для написання коду Java потрібні технічні знання |
4 | Тестування на основі даних | Потрібно використовувати TestNG або еквівалент, щоб підтримати той самий | Внутрішні теги можна використовувати для підтримки тестування даних |
5 | Чи надає підтримку дзвінка SOAP | Так, це дає | Це пов’язано лише із запитом REST |
6 | Паралельне тестування | Так, паралельне тестування також легко підтримується паралельним генерацією звітів | Не у значній мірі. Хоча люди намагалися це зробити, рівень невдач більше, ніж рівень успіху |
8 | Підтримка CSV для зовнішніх даних | Так, від карате 0.9.0 | Ні, потрібно використовувати Java-код або бібліотеку |
9 | Автоматизація веб-інтерфейсу | Так, з Karate 0.9.5 можлива автоматизація веб-інтерфейсу | Ні, це не підтримується |
10 | Зразок GET | Given param val1 = ‘name1’ | given(). |
Отже, як показано наведеними вище різницями, можна з упевненістю сказати, що карате - це одна з найпростіших речей, яку може зробити кожен.
Інструменти, необхідні для роботи з рамками карате
Тепер, оскільки ми вже точно отримали свої базові знання про Karate Framework, давайте розглянемо процеси та інструменти, необхідні для налаштування середовища карате.
# 1) Затемнення
Eclipse - це інтегроване середовище розробки, що використовується в галузі комп'ютерного програмування. Він в основному використовується для програмування на Java. Як вже згадувалося раніше, карате написано на Java, тому має більший сенс, чому Eclipse є перехідною IDE для тестового програмного забезпечення API. Інша причина полягає в тому, що це інструмент з відкритим кодом, і це досить вагома причина вибрати цей інструмент.
Примітка: Ми могли б навіть використовувати IntelliJ, Visual Studio та інші різні редактори, доступні на ринку.
# 2) Мейвен
Це інструмент автоматизації збірки, який використовується в основному для побудови проектів Java. Це один із способів налаштування середовища карате і написання коду. Щоб налаштувати Eclipse відповідно до вимог Maven, натисніть тут для установки Maven.
Працюючи в Maven, використовуйте залежності Maven, які допоможуть вам підтримати Karate Framework.
Наступні залежності будуть використовуватися з Maven у pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Примітка: Найновіші версії можуть бути доступні у сховищі Maven.
найкращий веб-сайт для перегляду безкоштовних аніме
# 3) Градле
Gradle є альтернативою Maven і може використовуватися в однаковій мірі. Вони мають свої подібності та відмінності, але їх можна однаково використовувати у створенні середовища для наших карате-кодів.
Він простіший у використанні, гнучкий та рекомендується використовувати, коли наш додаток має деякі вимоги до модуляризації та управління з безліччю плагінів. Код налаштування Gradle виглядатиме приблизно так,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Примітка: Ви можете або використовувати МЕВЕН або ОГРЕДКА.
# 4) Налаштування середовища Java у вашій системі
Потрібно налаштувати середовище JDK та JRE, щоб розпочати роботу зі сценаріями Karate Framework.
Структура сценарію тестування карате
Сценарій тестування карате відомий тим, що має розширення “.feature”. Ця властивість успадковується від Огірка. Організація файлів у Java-конвенції також однаково дозволена. Ви можете впорядковувати свої файли згідно з умовами пакету Java.
Однак керівні принципи Maven вказують, що зберігання файлів, що не належать до Java, здійснюється окремо. Вони виконуються в src / test / resources структура. А файли Java зберігаються під src / main / java .
Але, як стверджують творці Karate Framework, вони твердо впевнені, що ми зберігаємо як Java, так і не-Java файли поруч. Відповідно до них, набагато легше шукати файли * .java та * .feature, коли вони зберігаються разом, а не слідувати стандартній структурі Maven.
Це можна легко зробити, налаштувавши ваш pom.xml наступним чином (для Maven):
src/test/java **/*.java ...
Далі викладено загальну структуру Карате Каркад:
Зараз, оскільки ця Karate Framework використовує файл Runner, який також потрібен у Cucumber для запуску файлів функцій, тому більша частина матеріалів буде відповідати стандартам Cucumber.
Але, на відміну від Огірка, кроки не вимагають чіткого визначення в карате, а це, в свою чергу, підвищує гнучкість та легкість операцій. Нам не потрібно додавати зайвий клей, який ми зазвичай додаємо, коли дотримуємося огіркової основи.
Клас 'Бігун' більшу частину часу називається TestRunner.java.
Тоді файл TestRunner.java прийме вигляд:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
І говорити про .особливість файл, він містить усі сценарії тестування, які потрібно протестувати, щоб переконатись, що API працює відповідно до очікуваних вимог.
Загальний файл * .feature виглядає приблизно так, як показано нижче:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Створення першого базового сценарію тестування карате
Цей розділ допоможе вам розпочати створення першого тестового сценарію, який допоможе вам перетворити API у формі Карате.
Перш ніж ми напишемо базові тестові сценарії карате, встановіть на вашому комп'ютері такі реквізити:
- Eclipse IDE
- Мейвен. Встановіть відповідний шлях Maven.
- JDK & JRE. Встановіть відповідний шлях.
Давайте розглянемо покроковий підхід:
# 1) Створити нову МЕВЕН Проект в Eclipse Editor
- Відкрийте Eclipse
- Клацніть на Файл. Виберіть Новий проект.
- Виберіть проект Maven
- Виберіть місце роботи.
- Виберіть Архетип (зазвичай ми вибираємо “ Maven-archetype-quickstart 1.1 ”Для простих проектів Maven).
- Введіть ідентифікатор групи та ідентифікатор артефакту (у нашому прикладі ми використовували такі значення).
- Ідентифікатор групи : Карате
- Ідентифікатор артефакту: KarateTestScriptsSample
- Натисніть Готово, щоб завершити налаштування.
# два) Після створення, тепер ви зможете побачити таку структуру у вікні Провідника проекту.
# 3) Включіть усі свої залежності.
Наш найперший крок, після налаштування ми будемо до включати всі залежності що буде потрібно для виконання. Ми збережемо весь тег під POM.xml (якщо припустимо, ви вже знаєте про використання POM.xml).
- Відкрийте POM.xml і скопіюйте наведений нижче код під тегом залежностей та збережіть файл.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Клацніть тут для джерела.
# 4) Давайте роздумаємо сценарій, що ми будемо тестувати в цьому базовому тестовому сценарії карате.
Сценарій:
Ми будемо тестувати API з цим URL.
Шлях: api / users / 2
Метод: ОТРИМАТИ
І нам потрібно перевірити , чи повертає запит a Код успіху (200) чи ні.
Простіше кажучи, ми просто збираємося протестувати зразок API, щоб перевірити, чи успішно він виконується чи ні.
Примітка: Ми беремо зразок API, який доступний для тестування. Ви можете вибрати будь-який PATH або посилатися на свій API.
Клацніть тут для джерела.
що таке перевірка та перевірка при тестуванні програмного забезпечення
# 5) Тепер нашим наступним кроком буде створення .особливість файл.
Як обговорювалось у вступному розділі, файл .feature - це власність, яка успадкована від Огірка. У цьому файлі ми випишемо сценарії тестування, які потрібно виконати для виконання тестування API.
- Перейдіть до папки src / test / java у вашому проекті.
- Клацніть правою кнопкою миші та створіть новий файл - userDetails.feature. Потім натисніть кнопку Готово.
Тепер ви побачите наступний файл під папкою src / test / java
Зелений кольоровий значок нагадує .особливість fi le в огірку, який ми щойно створили.
- Після створення файлу ми напишемо наші тестові сценарії, які будуть розглянуті в наступному розділі.
# 6) Оскільки у нас є сценарій і пробіл. особливість файл готовий, тепер давайте почнемо з нашого першого сценарію. Почнемо кодування
Напишіть наступний рядок коду у файлі userDetails.feature, який ми створили на кроці 5:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Спробуємо зрозуміти компоненти, записані у наведеному вище файлі:
- Характеристика: Ключове слово пояснює назву функції, яку ми тестуємо.
- Передумови: Це необов’язковий розділ, який розглядається як розділ, необхідний для підготовки. Це може бути використано для визначення того, що все потрібно для тестування API. Це містить HEADER, URL & PARAM варіанти.
- Сценарій: Кожен файл функцій, який ви побачите, матиме принаймні одну функцію (хоча може дати множинні сценарії). Це опис тесту.
- Дано: Це крок, який потрібно виконати перед виконанням будь-якого іншого етапу тестування. Це обов’язкова дія, яку слід виконати.
- Коли: Він визначає умову, яка повинна бути виконана для виконання наступного кроку тесту.
- Потім: Це говорить нам про те, що має статися у випадку, якщо стан, згаданий у Коли задоволений.
Примітка: Усі вищезазначені ключові слова - з мови theеркінсів. Це стандартний спосіб написання тестових сценаріїв із використанням огірка.
І ще кілька слів, що використовуються у файлі функцій:
- 200: Ми очікуємо код стану / відповіді (натисніть тут для переліку кодів стану)
- ОТРИМАТИ: Це метод API, такий як POST, PUT тощо.
Ми сподіваємось, це пояснення було вам легко зрозуміти. Тепер ви зможете зв’язатись із тим, що саме написано у наведеному вище файлі.
Тепер нам потрібно створити файл TestRunner.java
Як пояснювалося у наведеному вище розділі, Cucumber потребує файл Runner, який потрібен для запуску .особливість файл, що містить сценарії тестування.
- Перейдіть до папки src / test / java у вашому проекті
- Клацніть правою кнопкою миші та створіть новий файл Java: TestRunner.java
- Після створення файлу, розмістіть під ним такі рядки коду:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner - це файл, який тепер буде виконано для виконання бажаного сценарію, написаного в кроці No5.
# 7) Тепер ми готові з обома файлами TestRunner.Java і userDeatils.feature. Єдине завдання, яке нам залишається - це Біжи сценарій.
- Перейдіть до файлу TestRunner.java та клацніть правою кнопкою миші на файлі, як показано на малюнку нижче.
- Виберіть Запустити як -> Перевірка тесту
- Тепер, після вибору, ви почнете спостерігати, що тестовий кейс вже розпочато.
- Дочекайтеся запуску тестового сценарію. Закінчивши, ви побачите щось на зразок зображеного на малюнку нижче у вашому вікні.
- Нарешті, можна сказати, що ми успішно створили свою першу базову базу Тестовий сценарій за допомогою Рамка карате.
# 8) Нарешті, фреймворк Karate також надає презентацію звіту HTML для виконаного виконання.
- Перейдіть до цільової папки -> surefire-reports-> Тут ви побачите свій HTML-звіт, який ви можете відкрити.
** Ми також пропонуємо вам відкрити той самий за допомогою браузера Chrome для кращого вигляду та відчуття.
- Наступний HTML-звіт буде показаний вам із зображенням Сценарії та випробування що було виконано для згаданого сценарію:
Висновок
У цьому підручнику ми обговорили тестування API, різні інструменти тестування, доступні на ринку, і те, як Karate Framework є кращим варіантом порівняно з аналогами.
Ми дотримувались поетапного підходу для створення нашого першого базового тестового сценарію. Ми почали зі створення базового Проект Maven в Eclipse IDE створити файл .feature, який містить усі сценарії тестування та файл Runner для запуску тесту, згаданого у файлі .feature.
В кінці декількох кроків ми могли побачити звіт про виконання результатів тесту.
Ми сподіваємось, що цей підручник був корисним для початківців у навчанні, як створити свій перший тестовий сценарій за допомогою Karate Framework та провести тестування API. Цей детальний покроковий підхід - чудовий спосіб запустити та виконати різні тести API.
Рекомендована література
- Як налаштувати платформу тестування Node.js: Підручник з Node.js
- Підручник з Parasoft SOAtest: інструмент тестування API без скриптів
- Підручник Mockito: Mockito Framework для знущань під час модульного тестування
- Підручник з тестування API: повний посібник для початківців
- Підручник з TestNG: Вступ до Framework TestNG
- Підручник з Jest - модульне тестування JavaScript за допомогою Jest Framework
- Підручник з деструктивного контролю та неруйнівного контролю
- Як використовувати листоношу для тестування різних форматів API?