karate framework tutorial
Този урок е въведение в API тестване с помощта на Karate Framework. Научете за структурата на тестовия скрипт за карате и стъпките за изграждане на първия тестов скрипт:
API е съкращение, което означава „Интерфейс за програмиране на приложения“. С прости думи можем да го определим като софтуерен посредник, който позволява комуникация между приложения.
Нуждаем се от API тестване, защото:
- Резултатите се публикуват по-бързо, следователно вече няма да се чака дали API работи добре.
- С по-бързата реакция, внедряването на тези API също става по-бързо, поради което позволява бързо време за изпълнение.
- Ранното откриване на неизправности, дори преди създаването на потребителския интерфейс на приложението, ни позволява да смекчим рисковете и да коригираме грешки.
- Мащабна доставка е възможна за по-кратък период.
За да можем да работим по API Testing, имаме различни инструменти, налични на пазара като Postman, Mocha и Chai. Те показаха добри резултати и ефективно използване за тестване на API, но те са силно повлияни от кода. За да можете да ги използвате, човек трябва да е технически издържан и да познава езиците за програмиране.
Karate Framework прекрасно решава този проблем на предходните софтуерни инструменти.
Какво ще научите:
Какво представлява рамката на карате
Карате? Нека поговорим за карате. Това от Япония ли е? Какво мислиш? Може би великият Брус Лий беше развил това през свободното си време.
Въпреки че бихме искали да се задълбочим в интересните корени на карате, засега нека поговорим за Инструмент за карате който е разработен от Питър Томас , един от страхотните инструменти, които идват на помощ на API тестерите.
Карате рамката следва краставичния стил на писане на програмата, който следва подхода BDD. Синтаксисът е лесен за разбиране от непрограмистите. И тази рамка е единственият инструмент за тестване на API, който съчетава API автоматизация и тестване на производителността в един самостоятелен инструмент.
Той предоставя на потребителите възможността да изпълняват тестовите случаи в Parallel и да извършват JSON & XML проверки.
С тази информация могат да се изведат някои ключови точки, за да се разбере по-нататък детайлно инструмента за карате:
- Карате е рамка за тестване на BDD вместо TDD.
- Той е проектиран да бъде лесен за непрограмисти. Тази функция е игра-чейнджър, тъй като позволява по-голямо използване и достъп на много хора, независимо от техния технически опит или капацитет.
- Той използва файла с характеристиките на Краставицата и езика на корнишоните, за да напише теста, който е много лесен за разбиране.
Всички тези функции го правят един от най-благоприятните инструменти за автоматизация, налични днес.
История на рамката на карате
Създадено от ' Питър Томас през 2017 г. този софтуер има за цел да направи функционалностите за тестване лесно достъпни за всички. Беше написана на Java и повечето хора очакваха файловете му също да са на същия език, но за щастие не е така.
По-скоро той използва файлове на корнишони, което е резултат от връзката му с рамката на Краставицата. Софтуерът за автоматизация е разширение на Cucumber, следователно наследява използването на файла Gherkins при неговата работа. Голямата разлика между двете е, че карате не използва Java по време на тестване, но Краставицата го прави.
Това е самата причина, поради която се грижи за непрограмисти, тъй като синтаксисът на Gherkins е супер четим и изчерпателен. Това е причината карате да е най-подходящ и препоръчителен за влизане в света на автоматизираното API тестване.
Следват някои характеристики на рамката за тестване на карате:
- Използва лесен за разбиране език корнишони.
- Не изисква технически познания по програмиране като Java.
- Тя се основава на популярните стандарти за краставици.
- Лесно е да се създаде рамка.
- Паралелното тестване е основната функционалност, която се осигурява от самия карате, поради което не е необходимо да разчитаме Maven, Gradle и т.н.
- Потребителски интерфейс за отстраняване на грешки в теста.
- Извикване на файл с функции от друг файл.
- Осигурява поддръжка за тестване на драйвери за данни, което е изградено вътрешно, следователно няма нужда да зависи от външни рамки.
- Вградени собствени отчети за почивка. Освен това може да се интегрира с Краставицата за по-добри отчети за потребителския интерфейс и повече яснота.
- Осигурява вътрешна поддръжка за превключване на конфигурация в различни среди за тестване (QA, Stage, Prod, Pre-Prod).
- Безпроблемна поддръжка за CI / CD интеграция, която може да бъде полезна.
- Възможност за обработка на различни HTTP повиквания:
- Поддръжка на Web Socket
- Искане за SOAP
- HTTP
- Работа с бисквитки на браузъра
- HTTPS
- Данни в HTML форма
- XML заявка
Сравняване на карате срещу спокойствие
Бъдете спокойни : Това е Java-базирана библиотека за тестване на REST услугите. Той използва Java език за писане на редовете на кода. Той помага при тестване на множество категории заявки, което допълнително води до проверка на различни комбинации от бизнес логика.
Карате рамка : Инструмент, базиран на краставица / корнишони, използван за тестване на SOAP & REST услуги.
Следващата таблица съдържа няколко по-забележителни разлики между Rest-Assured & Karate Framework:
S.No | Основа | Карате рамка | Бъдете спокойни |
---|---|---|---|
7 | Отчитане | Той осигурява вътрешно отчитане, следователно не е необходимо да зависи от външни приставки. Можем дори да го интегрираме с добавка за отчитане на Cucumber за по-добър потребителски интерфейс. | Трябва да сте зависими от външни приставки като Junit, TestNG |
1 | Език | Използва комбинация от краставица и корнишони | Използва езика Java |
две | Размер на кода | Обикновено редът на кода е по-малък, тъй като следва структурата, подобна на Краставица | Редът на кода е повече, тъй като включва използването на езика Java |
3 | Изискват се технически познания | Непрограмистите могат лесно да напишат кода на Gherkins | За писане на Java код са необходими технически познания |
4 | Тестване на данни | Трябва да използвате TestNG или еквивалент, за да го поддържате | Вътрешните тагове могат да се използват в подкрепа на тестването на данни |
5 | Осигурява ли поддръжка за SOAP повикване | Да, предоставя | Свързано е само с REST заявка |
6 | Паралелно тестване | Да, паралелното тестване също се поддържа лесно с паралелното генериране на отчети | Не до голяма степен. Въпреки че хората са се опитали да направят това, процентът на неуспехите е повече от процента на успех |
8 | CSV поддръжка за външни данни | Да, от Карате 0.9.0 | Не, трябва да използвате Java код или библиотека |
9 | Автоматизация на уеб потребителския интерфейс | Да, от Karate 0.9.5 Web-UI Automation е възможна автоматизация | Не, не се поддържа |
10 | Пример GET | Given param val1 = ‘name1’ | given(). |
Следователно, както се вижда от разликите по-горе, е безопасно да се каже, че карате е едно от най-лесните неща, които всеки може да направи.
Инструменти, необходими за работа с Karate Framework
Сега, тъй като имаме основните ни познания за Карате Рамък на място, нека разгледаме процесите и инструментите, необходими за създаването на Карате среда.
# 1) Затъмнение
Eclipse е интегрирана среда за разработка, използвана в областта на компютърното програмиране. Използва се най-вече за програмиране на Java. Както споменахме по-рано, карате е написано на Java, така че има по-голям смисъл защо Eclipse е идеалният IDE за тестовия софтуер на API. Друга причина е, че това е инструмент с отворен код и това е доста силна причина да изберете този инструмент.
Забележка: Можем дори да използваме IntelliJ, Visual Studio и други различни редактори, предлагани на пазара.
# 2) Maven
Това е инструмент за автоматизация на компилациите, използван предимно за изграждане на 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.
c ++ основни въпроси за интервю
# 3) Gradle
Gradle е алтернатива на Maven и може да се използва с еднакъв капацитет. Те имат своите прилики и разлики, но могат да бъдат еднакво използвани при създаването на среда за нашите карате кодове.
Той е по-лесен за използване, гъвкав и се препоръчва да се използва, когато нашето приложение има някои изисквания за модулиране и управление с куп приставки. Кодът за настройка на Gradle ще изглежда по следния начин,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Забележка: Можете или да използвате MAVEN или ГРЕДЛ.
# 4) Настройка на Java среда във вашата система
Трябва да настроите средата JDK и JRE, за да започнете със сценариите на Karate Framework.
Структура на сценария за тест за карате
Тестът за карате тест е известен с притежанието на разширението „.feature“. Това свойство е наследено от Краставица. Организацията на файлове в конвенцията на Java също е еднакво разрешена. Можете да организирате вашите файлове в съответствие с конвенциите на Java пакета.
Насоките на Maven обаче предписват съхраняването на файлове, които не са Java, да се извършва отделно. Те се правят в a 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.
Но, за разлика от Краставицата, стъпките не изискват ясна дефиниция в карате и които от своя страна подобряват гъвкавостта и лекотата на операциите. Не е нужно да добавяме допълнително лепило, което обикновено трябва да добавяме, когато следваме рамката на Краставицата.
Класът 'Runner' е през повечето време именуван 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) Създайте нов MAVEN Проект в Eclipse Editor
- Отворете Eclipse
- Щракнете върху Файл. Изберете Нов проект.
- Изберете Maven Project
- Изберете местоположението на работното пространство.
- Изберете архетипа (обикновено ние избираме „ Maven-archetype-quickstart 1.1 ”За прости проекти на Maven).
- Посочете идентификатора на групата и идентификатора на артефакта (използвали сме следните стойности в нашия пример).
- Идентификатор на група : Карате
- Идентификационен номер на артефакт: KarateTestScriptsSample
- Щракнете върху Finish, за да завършите настройката.
# две) Веднъж създаден, сега ще можете да видите следната структура в прозореца на Project Explorer.
# 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. След това кликнете върху бутона Finish.
Сега ще видите следния файл под папката src / test / java
The Икона в зелен цвят прилича на .фигура 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 настроики.
- Сценарий: Всеки файл с функции, който ще видите, ще има поне една характеристика (въпреки че може да даде многократни сценарии). Това е описанието на тестовия случай.
- Като се има предвид: Това е стъпката, която трябва да бъде изпълнена, преди да се извърши друга стъпка от теста. Това е задължително действие, което трябва да се извърши.
- Кога: Той определя условието, което трябва да бъде изпълнено, за да се изпълни следващата стъпка от теста.
- Тогава: Това ни казва, че какво трябва да се случи в случай, че състоянието, споменато в Кога е доволен.
Забележка: Всички гореспоменати ключови думи са от езика на корнишоните. Това са стандартният начин за писане на тестовите скриптове с помощта на Cucumber.
И още няколко думи, използвани във файла с характеристиките, са:
- 200: Това е кодът за състояние / отговор, който очакваме (Щракнете върху тук за списъка със кодове на състоянието)
- ВЗЕМЕТЕ: Това е методът на API като POST, PUT и т.н.
Надяваме се това обяснение да е било лесно за вас за разбиране. Сега ще можете да се свържете с това, което точно е записано в горния файл.
как да намеря xpath в хром за селен
Сега трябва да създадем файл 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 е файлът, който сега ще бъде изпълнен, за да изпълни желания сценарий, написан в стъпка # 5.
# 7) Сега сме готови и с двата файла TestRunner.Java и userDeatils.feature. Единствената задача, която ни остава, е да Бягай скриптът.
- Отидете на файла TestRunner.java и щракнете с десния бутон върху файла, както е показано на изображението по-долу.
- Изберете Run As -> Junit Test
- След като веднъж бъдете избрани, ще започнете да наблюдавате, че тестовият случай вече е започнал.
- Изчакайте тестовия скрипт да се изпълни. След като приключите, ще видите нещо като показано на изображението по-долу във вашия прозорец.
- И накрая, можем да кажем, че успешно създадохме първата си основна Тестов скрипт използвайки Карате рамка.
# 8) И накрая, рамката Karate също така представя презентация на HTML отчет за изпълнението, което е извършено.
- Отидете на Target Folder -> 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 Tutorial: Mockito Framework for Mocking in Unit Testing
- Урок за API тестване: Пълно ръководство за начинаещи
- Урок за TestNG: Въведение в TestNG Framework
- Урок за Jest - Тестване на модули на JavaScript с помощта на Jest Framework
- Урок за деструктивно изпитване и безразрушително тестване
- Как да използвам пощальон за тестване на различни формати на API?