how automate api requests using rest assured
У цьому посібнику ми навчимося автоматизувати запити API за допомогою REST Assured під час виконання тестових скриптів над Jenkins:
У 2-му підручнику серії підручників REST API ми вивчили різні типи кодів відповідей, запити REST, найкращі практики REST та тестування API за допомогою POSTMAN.
Відпочинок веб-сервіси стають популярними з кожним днем через їхню легкість у розробці, впровадженні, доступі, а потім і виконанні. Крім того, вони легкі і не мають суворих стандартів, яких слід дотримуватися.
Однак, коли існує більша кількість служб, які існують, і їх потрібно виконувати в кожному новому збірці, це стає кошмаром для тестера та витрат на проект. Знову ж таки, деякі послуги є внутрішніми, які пов’язані з самим проектом, а деякі будуються для споживання третіми сторонами.
Тож ідея автоматизації виникла. Існує декілька інструментів для автоматизації послуг REST, таких як-
- vRest
- HttpMaster
- Parasoft
- Заспокоєний
RestAssured - популярний інструмент автоматизації серед тестувальників. Давайте подивимося, чому це кращий варіант.
Що ви дізнаєтесь:
Чому RESTAssured?
- Це відкритий код, отже будь-яка організація може використовувати його для своїх потреб проекту.
- REST Assured - це бібліотека Java, тому вона не є графічним інтерфейсом, як інші інструменти. Це фреймворк для тестування служб REST на Java.
- Він надає специфічну для домену мову (DSL) для створення сценарію автоматизації, використовує будь-яку рідну мову, таку як Java, і тестує веб-API RESTful.
- Він підтримує формат XML та JSON для запиту, відповіді.
- Він діє як безголовий клієнт.
- За допомогою цієї бібліотеки ми можемо налаштувати запит, який ми збираємось надіслати на сервер.
- Крім того, він може перевірити різноманітну комбінацію складної бізнес-логіки.
- Він може отримувати код стану, відповіді, тіло відповіді, заголовки із сервера для відправленого запиту.
- Це забезпечує стиль написання тестового сценарію BDD, тобто у форматі GIVEN-WHEN-THEN, щоб будь-який член бізнес-команди, особливо не з ІТ-середовища, також міг переглянути його та зрозуміти логіку та випробування.
У цьому підручнику ми будемо автоматизувати запити, які ми створили вручну раніше в першому посібнику REST API через POSTMAN, а також обговоримо комерційний інструмент під назвою GITHUB.
Автоматизація запитів веб-API за допомогою REST Assured
У цьому підручнику ми будемо робити наскрізну автоматизацію, тобто створювати клас Java і виконувати його з Дженкінса.
Передумови:
- Очікувані одержувачі повинні мати робочі знання Eclipse IDE, Maven, TestNG, ReportNG.
- Одержувачі також повинні знати про Дженкінса.
- Підключення до Інтернету потрібно, якщо ми отримуємо доступ до послуг, розгорнутих через Інтернет. Якщо ми отримуємо доступ до служб, розгорнутих локально, у цьому випадку переконайтеся, що тестер має право.
- Якщо ми автоматизуємо будь-які комерційні, захищені сайти, у такому випадку переконайтесь, що маркер авторизації, маркери API, ключі API тощо працюють належним чином та надаються тестувальнику, який в даний час автоматизує сценарій.
Тестування URL-адреси
- http://jsonplaceholder.typicode.com працює і працює
- Користувач має дійсні облікові дані GitHub
Налаштування навколишнього середовища
# 1) Встановіть Eclipse IDE
Перш за все, нам потрібно завантажити IDE Eclipse з офіційного веб-сайту Затьмарення.
Потім встановіть IDE. Правильно встановити шлях, змінну середовища JAVA_HOME. Зберігайте шлях JDK, JRE під зручність для подальшого використання. Після встановлення Eclipse створіть / встановіть робочу область і відкрийте робочу область.
У моєму випадку це:
# два) Створіть проект Maven
Переконайтеся, що ви налаштували будинок Maven на змінні середовища.
# 3) Додайте всі необхідні, необхідні залежності, плагіни, що стосуються REST-ASSURED, TESTNG, REPORTNG, до pom.xml.
Ось зразок pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Додайте необхідні банки до шляху збірки проектів Maven.
Зазвичай це файли бібліотеки, які потрапляють під гарантовану банку TESTNG, REPORTNG. Незважаючи на те, що ми додали залежність, плагін над файлом pom.xml, але все одно іноді виникає помилка, отже, нам потрібно додати ці банки / бібліотеки, щоб побудувати шлях проекту maven, щоб запобігти помилкам (якщо такі є).
Однак, коли ми створюємо проекти Java, а не проекти Maven, у такому випадку нам потрібно тримати ці банки, бібліотеки під рукою та використовувати їх за необхідності.
# 5) Встановіть JENKINS (у Windows)
Завантажте Jenkins з jenkins.io/download/.
Далі відкрийте установку, виконуйте кроки, доки вона не буде встановлена належним чином.
Після встановлення нам потрібно запустити JENKINS, ми можемо зробити те ж саме з командного рядка.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
яке найкраще програмне забезпечення для очищення комп'ютера -
Як тільки вищезгадане повідомлення відображається, нам потрібно почекати ще деякий час, щоб побачити таке повідомлення.
Як ми можемо побачити останнє повідомлення на екрані вище, де Дженкінс повністю працює і працює, отже, тепер ми можемо запустити Дженкінса, використовуючи наступну URL-адресу.
http: // localhost: 9090 /
Перший раз це може зайняти час, але потім це буде швидше. Після цього нам потрібно створити користувача.
Після створення користувача нам потрібно перезапустити Jenkins і отримати доступ до інтерфейсу користувача за допомогою пароля.
Після встановлення Jenkin ми можемо встановити плагіни через Manage Jenkins> Global Tool Configuration (навіть під час встановлення Jenkin).
Створення сценарію автоматизації
# 6) Ми можемо створити новий КЛАС JAVA та перетворити його на TESNG або безпосередньо створіть КЛАС TESTNG з подальшим створенням нового XML-файлу (testng.xml).
Для простоти створено два класи Java
# 1) Підручник1.java - Цей файл містить використання всіх методів, таких як GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT, використовуючи фіктивну URL-адресу для тестування https: jsonplaceholder.typicode.com.
Незважаючи на те, що URL-адреса поводиться як оригінальна URL-адреса, надаючи такі відповіді, але насправді на сервері жодних змін не вноситься. Це лише для демонстрації властивостей веб-служб та реакції, коли вони отримують будь-який запит від клієнта.
# 2) Підручник2.java - Цей файл містить приклад GitHub у реальному часі, де ми будемо читати коментар, доданий до суті.
Примітка : GitHub вимагає автентифікації, отже, нам потрібно згенерувати маркер API або базову авторизацію, як тільки ми ввійдемо в GitHub - налаштування, або ж ми можемо створити маркер авторизації від самого POSTMAN
TESNG.XML
Ось файл XML, який буде виконувати обидва Підручник1.java і Підручник2.java
З метою демонстрації я виключив усі методи для запуску та дозволив виконувати лише один метод GET з Tutorial1.java. Однак, якщо ми хочемо побачити всі методи, що виконуються, нам доведеться замінити XML-файл над TestNG. У нашому випадку ім'я файлу TestNG - testng1.xml.
Тепер, якщо ми виконаємо вищезазначене файл testng1.xml над Eclipse тоді ми отримаємо наступне вихід консолі.
(TestNGContentHandler) (ПОПЕРЕДЖЕННЯ) Настійно рекомендується додати “” у верхній частині файлу, інакше TestNG може вийти з ладу або не працювати належним чином.
(TestNG) Запуск:
D: RestAssured restapi testng1.xml
*** ОТРИМАЙТЕ МЕТОД ***
Userid - від (1) до - (3) Заголовок - (якщо турбує те, що вправа болюча або) тіло - (і правильно, але закон
І всі вибори або для задоволення сліпих
або засудження будь-якого результату смутку та задоволення
і готовий до та з труднощами одіозного чи дискомфорту; і)
*** ОТРИМАТИ МЕТОД КІНЦЕ ***
————————————————–
Підручники з REST API
Всього проведених тестів: 1, відмов: 0, пропусків: 0
————————————————-
найкращий конвертер youtube в mp4 онлайн
Ось результат тесту набору.
Ось звіт за замовчуванням, згенерований TestNG.
Ось звіт, згенерований ReportNG.
Оскільки ми вже налаштували ReportNG, отже, ми можемо очікувати чіткого перегляду загальної кількості переданих, невдалих підрахунків, як зазначено вище.
Виконання тестових сценаріїв за допомогою командного рядка
- Нам потрібно запустити командний рядок
- Встановіть робочий каталог як розташування робочої області
- Знайдіть місце для сміття / цілі
- Знайти / створити розташування бібліотеки
- По-перше, нам потрібен набір, каталог, в якому існує проект. У моєму випадку це D: RestAssured restapi
- Java - ключове слово
- cp - Це шлях до класу, означає шлях, у якому клас Java існує в проекті
- Цільова - Це те саме, що і папка bin, коли ми працюємо над проектом Java. Оскільки ми працюємо над проектом Maven, отже, у нас буде ця папка. У цій папці ми можемо мати ще дві папки: класи, тестові класи. Фактичний клас Java повинен існувати серед цих двох папок
- Lib - Ця папка буде містити всі банки, які ми використовували під час виконання тестового сценарію з Eclipse. У деяких випадках папки може не бути. Отже, нам може знадобитися створити папку і зберігати все банки, виконувані файли тощо всередині неї.
- org.testng.TestNG testng1.xml - Це як синтаксис. Остання частина - testng1.xml - файл ресурсів TestNG, який буде викликаний для виконання бажаних тестових скриптів
Повна команда буде
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Після цього натисніть Enter
Примітка: Ми можемо бачити папку bin під час роботи над проектом Java. Однак, якщо ми працюємо в проекті Maven, тоді у нас буде цільова папка і звичайні класи, в ній буде присутня папка test-classes.
Створення файлу BAT та виконання тестових сценаріїв
Замість того, щоб відкрити командний рядок і запустити вищезазначену команду для виконання тестового сценарію, ми можемо зберігати команду в текстовому файлі, і при збереженні вона дає їй ім’я типу
“Run.bat” (обов’язково тримайте “” навколо run.bat)
Ось як це виглядає після створення.
Тепер двічі клацніть на 'запустити'
Командний рядок відкриється, і він виконає тестовий скрипт, і після завершення виконання командний рядок закривається.
Інтеграція JENKINS із Maven, Java
Нам потрібно зробити 4-5 конфігурацій в Jenkins, щоб інтегрувати їх з Maven, Java і виконати те саме.
Як тільки ми увійдемо до Дженкінса,
Перейти до менеджера Дженкінса >> Глобальна конфігурація інструменту
встановити шлях встановлення JDK
Примітка : Переконайтесь, що версія Дженкіна підтримує версію JDK / Java. Дженкінс версії 2.73 вимагає принаймні JDK / JAVA версії 1.8, інакше це створюватиме проблеми під час виконання тестових скриптів.
Встановіть шлях встановлення Maven
Після цього перейдіть до менеджера Дженкінса >> Налаштування систем
найкраща гарнітура vr для xbox one -
Встановити змінний шлях навколишнього середовища
Далі, Створити новий елемент
Нам потрібно натиснути на створити нове посилання, вказати ім'я для роботи виберіть тип проекту як Фрістайл . На сьогодні не потрібно турбуватися про інші речі.
Після створення робочого місця це буде виглядати так.
Тепер натисніть на роботу
Виконайте наступні кроки:
- Клацніть на посилання налаштування на лівій бічній панелі.
- Прокрутіть вниз вкладку Загальне та натисніть кнопку Додатково.
- Встановіть прапорець спеціальної робочої області та вкажіть розташування папки проекту.
Після того
- Прокрутіть униз, щоб побудувати тригери
- Поставте прапорець 'Створювати періодично'
- Встановіть деякий час, як зазначено нижче
Прокрутіть вниз, встановіть назву Build. У нашому випадку це виконувана пакетна команда Windows.
Це те саме місце, де раніше ми зберігали файл run.bat, тобто папка D: RestAssured restapi
Збережіть усі зазначені вище зміни.
Тепер зачекайте, доки почнеться робота cron. Ми бачимо, що побудова розпочата.
Як тільки збірка буде виконана успішно, далі нам потрібно натиснути на збірку №20, як зазначено на зображенні вище.
Клацніть на Вихід консолі посилання на лівій панелі.
Тепер ми повинні бачити наступний результат.
Висновок
REST ASSURED - дуже корисна бібліотека JAVA для автоматизації REST API незалежно від мови. Він має безліч вбудованих опцій. Крім того, він має безліч версій з цікавими функціями, включеними в нього опціями. Він підтримує багато форматів, таких як запити, такі як XML, JSON тощо.
У цьому посібнику ми пояснили, як автоматизувати запити API за допомогою RESTAssured під час виконання тестових скриптів за допомогою Jenkins. Ми також пояснили, чому Rest Assured - кращий вибір для автоматизації запитів API.
Ми сподіваємось, вам сподобалось читати цю серію підручників з API відпочинку!
Рекомендована література
- Тестування REST API на огірках із використанням підходу BDD
- 10 найкращих засобів тестування API у 2021 році (SOAP та REST API)
- Тестування REST API за допомогою Spring RestTemplate та TestNG
- Робота з HTTP-запитами в JMeter
- Підручник з POSTMAN: Тестування API за допомогою POSTMAN
- 20 найважливіших запитань та відповідей на тестування API
- Топ-10 найкращих інструментів управління API із порівнянням функцій
- Найпопулярніші 36 запитань інтерв’ю Дженкінса (на 2021 рік)