how automate api requests using rest assured
В този урок ще се научим да автоматизираме заявките за API, като използваме REST Assured, докато изпълняваме тестови скриптове върху Jenkins:
Във втория урок на REST API Tutorial Series научихме различни видове кодове за отговор, REST заявки, REST най-добри практики и API тестване с помощта на POSTMAN.
ПОЧИВКА уеб услугите стават популярни всеки ден поради тяхната лекота на разработване, внедряване, достъп и след това изпълнение. На всичкото отгоре те са леки и нямат строги стандарти, които да се спазват.
Когато обаче има по-голям брой услуги, които трябва да бъдат изпълнени при всяка нова компилация, това се превръща в кошмар за тестера и за разходите по проекта. Отново, някои услуги са вътрешни, които са свързани със самия проект, а други са изградени, за да бъдат използвани от трети страни.
Така че идеята за автоматизация се появи. Налични са няколко инструмента за автоматизиране на REST услугите, като например
- vRest
- HttpMaster
- Парасофт
- Бъдете спокойни
RestAssured е популярен инструмент за автоматизация сред тестерите. Нека видим защо е предпочитан вариант.
Какво ще научите:
Защо RESTAssured?
- Той е с отворен код, поради което всяка организация може да го използва за нуждите на проекта си.
- REST Assured е библиотека на Java, така че не идва като GUI като другите инструменти. Това е рамка за тестване на REST услуги в Java.
- Той предоставя специфичен за домейн език (DSL) за създаване на скрипт за автоматизация, използва всеки роден език като Java и тества RESTful Web API.
- Той поддържа XML и JSON формат за искане, отговори.
- Действа като обезглавен клиент.
- Можем да персонализираме заявката, която ще изпратим до сървъра, използвайки тази библиотека.
- Също така, той може да тества разнообразна комбинация от сложна бизнес логика.
- Той може да извлича код на състоянието, отговори, тяло на отговора, заглавки от сървъра за изпратената заявка.
- Той дава възможност за BDD стил на писане на тестов скрипт, т.е. във формата GIVEN-WHEN-THEN, така че всеки член на бизнес екипа, особено от не-ИТ фона, също може да го види и да разбере логиката и покритието на теста.
В този урок ще автоматизираме заявките, които създадохме ръчно по-рано в първия урок за REST API чрез POSTMAN и ще обсъдим и търговски инструмент, наречен GITHUB.
Автоматизиране на заявките за уеб API с помощта на REST Assured
В този урок ще правим автоматизация от край до край, т.е.създаваме Java клас и го изпълняваме от Jenkins.
Предварителни условия:
- Потребителите, които желаят, трябва да имат работни познания по Eclipse IDE, Maven, TestNG, ReportNG.
- Получателите също трябва да са наясно с Дженкинс.
- Интернет връзка е необходима, ако имаме достъп до услуги, разположени в мрежата. В случай че имаме достъп до услуги, разположени локално, в този случай се уверете, че тестерът има правото.
- Ако автоматизираме търговски, защитени сайтове, в този случай се уверете, че авторизационният маркер, API маркери, API ключове и т.н. работят правилно и са предоставени на тестера, който в момента автоматизира скрипта.
URL за тестване
- http://jsonplaceholder.typicode.com работи и работи
- Потребителят има валидни идентификационни данни над GitHub
Настройки на околната среда
# 1) Инсталирайте Eclipse IDE
пример за сливане на сортиране c ++
На първо място, трябва да изтеглим Eclipse IDE от официалния уебсайт на Затъмнение.
След това инсталирайте 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.
Обикновено това са библиотечни файлове, които се намират под REST-уверен буркан, 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 /
Първият път може да отнеме време, но след това ще стане по-бързо. След това трябва да създадем потребител.
След като потребителят бъде създаден, трябва да рестартираме Дженкинс и да получим достъп до потребителския интерфейс с паролата.
След като Jenkin бъде инсталиран, можем да инсталираме приставките през Manage Jenkins> Global Tool Configuration (дори по време на инсталирането на Jenkin).
Създаване на скрипт за автоматизация
# 6) Можем да създадем нов JAVA CLASS и да го преобразуваме в TESNG или директно създайте TESTNG CLASS, последвано от създаване на нов XML файл (testng.xml).
За простота има два създадени Java класа
# 1) Урок 1.java - Този файл съдържа използване на всички методи като GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT с помощта на фиктивен URL адрес за тестване https: jsonplaceholder.typicode.com.
Въпреки че URL адресът се държи като оригинален URL адрес, като връща такива отговори, но всъщност над сървъра не се правят промени. Това е само за демонстриране на свойствата и реакцията на уеб услугите, когато получат искане от клиент.
# 2) Tutorial2.java - Този файл съдържа примера в реално време на GitHub, където ще четем коментара, добавен към същността.
Забележка : GitHub изисква удостоверяване, следователно трябва да генерираме API маркер или основно упълномощаване, след като влезем в GitHub - настройки или в противен случай можем да генерираме токен за упълномощаване от самия POSTMAN
TESNG.XML
Ето XML файла, който ще изпълни и двете Урок 1.java и Урок 2.java
За демонстрационни цели изключих всички методи за изпълнение и разреших да се изпълни само един метод GET на Tutorial1.java. Ако обаче искаме да видим всички изпълнени методи, трябва да заменим с над TestNG XML файл. В нашия случай името на файла TestNG е testng1.xml.
Сега, ако изпълним горното testng1.xml файл над Eclipse тогава ще получим следното конзолен изход.
(TestNGContentHandler) (ПРЕДУПРЕЖДЕНИЕ) Силно се препоръчва да добавите „“ в горната част на файла си, в противен случай TestNG може да се провали или да не работи според очакванията.
(TestNG) Изпълнение:
D: RestAssured restapi testng1.xml
*** ВЗЕМЕТЕ МЕТОД ***
Userid - (1) до - (3) Заглавие - (ако е обезпокоително, че упражнението е болезнено или) тяло - (и точно, но законът
И всички избори или за удоволствие на слепите са
или изобличаване на всяка произтичаща скръб и удоволствие
и е готов да и от труда на отвратителен или дискомфорт; и)
*** ВЗЕМЕТЕ МЕТОД КРАЙ ***
————————————————–
REST API уроци
Общо изпълнени тестове: 1, неуспехи: 0, пропуски: 0
————————————————-
Ето резултата от теста на пакета.
Ето отчета по подразбиране, генериран от 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, тогава ще имаме целева папка и нормални класове, папката с тестови класове ще присъства под нея.
Създаване на BAT файл и изпълнение на тестови скриптове
Вместо да отваряме командния ред и да изпълняваме горната команда, за да изпълним тестовия скрипт, можем да запазим командата в текстов файл и докато я запазваме, тя получава име като,
“Run.bat” (не забравяйте да запазите „“ около run.bat)
Ето как изглежда след създаването му.
Сега щракнете двукратно върху „стартиране“
Командният ред ще се отвори и ще изпълни тестовия скрипт и след като изпълнението приключи, командният ред се затваря.
linux интервю въпроси и отговори за опитни
Интегриране на JENKINS с Maven, Java
Трябва да направим 4-5 конфигурации в Jenkins, за да го интегрираме с Maven, Java и да изпълним същото.
След като влезем в Дженкинс,
Отидете на Manager Jenkins >> Глобална конфигурация на инструмента
задайте път за инсталиране на JDK
Забележка : Уверете се, че версията на Jenkin поддържа версия JDK / Java. Jenkins версия 2.73 изисква поне JDK / JAVA версия 1.8, иначе ще създаде проблеми при изпълнение на тестовите скриптове.
Задайте пътя за инсталиране на Maven
След това отидете на Manager Jenkins >> Конфигуриране на системи
Задайте променлива пътека на околната среда
Следващия, Създайте нов елемент
Трябва да кликнете върху Създаване на нова връзка, посочете име за работа изберете типа на проекта като Свободен стил . Няма нужда да се притеснявате за други неща от сега.
След като работата бъде създадена, тя ще изглежда така.
Сега кликнете върху работата
Следвайте стъпките по-долу:
- Кликнете върху връзката за конфигуриране в левия страничен панел.
- Превъртете надолу раздела Общи и кликнете върху бутона Разширени.
- Поставете отметка в квадратчето за персонализирано работно пространство и посочете местоположението на папката на проекта.
След това
- Превъртете надолу повече, за да изградите тригери
- Поставете отметка в квадратчето Периодично изграждане
- Задайте малко време, както е споменато по-долу
Превъртете надолу, задайте името на 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 г.)