Овој туторијал е вовед во тестирањето на API користејќи карате рамка. Дознајте за структурата на карате тест скрипта и чекорите за изградба на првата тест скрипта:

API е кратенка што се крате од Application Programming Interface. Во едноставни термини, можеме да го дефинираме како софтверски посредник кој овозможува комуникација помеѓу апликациите.

Ни треба API тестирање бидејќи:

  • Резултатите се објавуваат побрзо, оттука нема повеќе да се чека да се види дали API работи добро.
  • Со побрзата реакција, распоредувањето на овие API станува исто така побрзо, па оттука овозможува брзо време на пресврт.
  • Рано откривање неуспех, дури и пред да се создаде интерфејсот на апликацијата, дозволете ни да ги ублажиме ризиците и да ги исправиме грешките.
  • Можна е испорака во големи размери во пократок период.

За да можеме да работиме на тестирање на API, имаме различни алатки достапни на пазарот како Поштар, Мока и Чаи. Овие покажаа добри резултати и ефективна употреба за тестирање на API-и, меѓутоа, тие се под силно влијание на кодот. За да може да се користат овие, мора да се биде технички здрав и запознаен со програмските јазици.

Карате Рамката прекрасно го решава ова прашање од претходните софтверски алатки.

Што е карате рамка

Карате? Ајде да зборуваме за карате. Дали е тој од Јапонија? Што мислиш? Можеби тоа е големиот Брусоваа карате основна тест скрипта.

Сценарио:

Ќе тестираме API со оваа URL-адреса.

Патека: api/users/2

Метод: GET

И треба да потврдиме , дали барањето враќа Успешен код ( 200) или не.

Во едноставни термини, ние само ќе тестираме примерок API за да видиме дали успешно се извршува или не.

Забелешка: Земаме примерок API што е достапен за тестирање. Можете да изберете која било ПАТ или да се повикате на вашиот API.

Кликнете овде за изворот.

#5) Сега нашиот следен чекор би бил да создадеме Датотека .feature .

Како што беше дискутирано во воведниот дел, .feature датотеката е својството што е наследено од Cucumber. Во оваа датотека, ќе ги запишеме сценаријата за тестирање што треба да се извршат за да се изврши тестирањето на API.

  • Одете во Папката src/test/java во вашиот проект.

  • Десен клик на неа и креирајте нова датотека – userDetails.feature. Потоа кликнете на копчето Finish.

Сега ќе ја видите следната датотека под папката src/test/java

Иконата зелена боја наликува на .feature fi le во Краставица што штотуку ја создадовме.

  • Откако датотеката е креирана, сега ќе ги напишеме нашите тест сценарија за кои ќе се дискутира во следниот дел.

#6) Бидејќи го имаме сценариото ипразната датотека . функција е подготвена, сега да започнеме со нашата прва скрипта. Дозволете ни да започнеме со кодирање

Напишете ја следната линија на Code во датотеката userDetails.feature што ја создадовме во чекор #5:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

Да се ​​обидеме да разбереме компонентите што се напишани во горната датотека:

  • Функција: Клучниот збор го објаснува името на карактеристиката што ја тестираме.
  • Позадина: Ова е изборен дел кој се третира како предуслов дел. Ова може да се користи за да се дефинира што е потребно за тестирање на API. Содржи HEADER, URL & засилувач; Опции PARAM .
  • Сценарио: Секоја датотека со карактеристики што ќе ја видите ќе има најмалку една карактеристика (иако може да даде повеќе сценарија) . Тоа е опис на тест случајот.
  • Дадено: Тоа е чекорот што треба да се изврши пред да се изврши кој било друг тест чекор. Тоа е задолжително дејство што треба да се изврши.
  • Кога: Го одредува условот што треба да се исполни за да се изврши следниот тест чекор.
  • Потоа: Тоа ни кажува дека што треба да се случи во случај условот споменат во Кога е задоволен.

Забелешка: Сите горенаведени клучни зборови се од јазикот корнишони. Ова се стандардниот начин на пишување на тест скриптите со помош на Краставица.

И уште неколку зборови што се користат во датотеката со карактеристики се:

  • 200: Тоа е кодот за статус/одговор што сме ниеочекување (Кликнете овде за списокот со статусни кодови)
  • GET: Тоа е методот API како POST, PUT, итн.

Се надеваме дека ова објаснување ти беше лесно да разбереш. Сега ќе можете да се поврзете со тоа што точно е напишано во горната датотека.

Сега треба да создадеме датотека TestRunner.java

Како што е објаснето во погоре дел, Cucumber има потреба од датотека Runner која ќе биде потребна за да се изврши датотеката .feature која ги содржи сценаријата за тестирање.

  • Одете во Папка 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.функција. Единствената задача што ни преостанува е да ја извршиме Скриптата.

  • Одете во датотеката TestRunner.java и кликнете со десното копче на датотеката како што е прикажано на сликата подолу.

  • Изберете Стартувај како -> Junit Test
  • Сега, откако ќе се избере, ќе почнете да набљудувате дека тест-случајот сега започна.
  • Почекајте да се изврши тест скриптата. Откако ќе завршите, ќе забележите нешто како што е прикажано на сликата подолу во вашиот прозорец.

  • Конечно, можеме да кажемедека успешно ја создадовме нашата прва основна тест скрипта користејќи ја Карате рамката.

#8) Последно, карате рамка, исто така, дава презентација на HTML извештај за извршувањето што е извршено.

  • Одете во Target Folder -> сигурен-извештаи-> Овде ќе го видите вашиот HTML извештај што можете да го отворите.

** Исто така, би ви препорачале да го отворите истиот со помош на Chrome Прелистувач за подобар изглед и чувство.

  • Извештајот за следење на HTML ќе ви биде прикажан што прикажува сценарија и засилувач; Тест што е извршен за споменатото сценарио:

Заклучок

Во ова упатство, разговаравме за тестирање API, различни тестирања алатки достапни на пазарот и како Карате Рамката е подобра опција во споредба со нејзините колеги.

Следевме чекор-по-чекор пристап за да ја создадеме нашата прва основна скрипта за тестирање. Почнавме со креирање на основен Maven проект во Eclipse IDE за да создадеме датотека .feature, која ги содржи сите сценарија за тестирање и датотека Runner за да се изврши тест случајот споменат во датотеката .feature.

На крајот од повеќекратните чекори, можевме да го видиме извештајот за извршување на резултатите од тестот.

Се надеваме дека ова упатство беше корисно за почетниците да научат како да го изградат својот прв тест скрипта користејќи карате рамка и спроведете API тестирање. Овој детален чекор-по-чекорпристапот е прекрасен начин за извршување и извршување на различни тестови на API.

NEXT>>

Ли го разви ова во своето слободно време.

Иако би сакале да навлеземе во интересните корени на карате, засега, ајде да зборуваме за карате алатката што е развиена од Peter Thomas , една од одличните алатки што им помага на API-тестерите.

Карате рамката го следи стилот на краставица на пишување на програмата што го следи пристапот BDD. Синтаксата е лесна за разбирање од непрограмери. И оваа рамка е единствената алатка за тестирање на API што ги комбинира API автоматизацијата и тестирањето на перформансите во една самостојна алатка.

Таа им овозможува на корисниците можност да ги извршуваат тест-случаите паралелно и да вршат JSON & XML проверува.

Со оваа информација, може да се извлечат одредени клучни точки за понатамошно разбирање на алатката Карате во детали:

  • Каратето е рамка за тестирање BDD наместо тоа на TDD.
  • Дизајниран е да биде лесен за непрограмери. Оваа функција ја менува играта бидејќи им овозможува поголема употреба и пристап на многу луѓе, без оглед на нивната техничка позадина или капацитет.
  • Таа ја користи датотеката со карактеристики Cucumber и јазикот Gherkins за да го напише тестот што е многу лесен за разбирање.

Сите овие карактеристики го прават еден од најповолните алатки за автоматизација достапни денес.

Историја на карате рамка

Создадено од „ Peter Thomas' во 2017 година, овој софтвер има за цел да направи тестирањефункционалности лесно достапни за секого. Напишано е на Java и повеќето луѓе очекуваа неговите датотеки исто така да бидат на истиот јазик, но, за среќа, тоа не е така.

Напротив, тој користи датотеки со Gherkins, што е резултат на неговата врска со Рамка од краставица. Софтверот за автоматизација е екстензија на Краставица, па затоа ја наследува употребата на датотеката Gherkins во неговото работење. Големата разлика помеѓу двете е тоа што Карате не користи Java додека тестира, но краставицата го прави тоа.

Ова е самата причина зошто им одговара на непрограмерите бидејќи синтаксата Gherkins е супер читлива и сеопфатна. Ова е причината зошто каратето е најпогодно и се препорачува за влез во светот на автоматското тестирање API.

Следниве се некои карактеристики на рамката за тестирање карате:

  • Користи лесен за разбирање јазик Gherkins.
  • Не бара техничко програмско знаење како Java.
  • Се заснова на популарните стандарди за краставица.
  • Лесно се креира рамка.
  • Паралелното тестирање е основната функционалност што ја обезбедува самото карате, па затоа не треба да зависиме од Maven, Gradle итн.
  • УИ за дебагирање на тестот.
  • Повикување датотека со карактеристики од друга датотека.
  • Обезбедува поддршка за тестирањето на двигателот на податоци што е вградено внатре, па оттука нема потреба да зависиме од надворешни рамки.
  • Вграден мајчин одморИзвештаи. Плус, може да се интегрира со краставицата за подобри извештаи за корисничкиот интерфејс и поголема јасност.
  • Обезбедува внатрешна поддршка за префрлување конфигурација низ различни околини за тестирање (QA, Stage, Prod, Pre-Prod).
  • Непречена поддршка за интеграција на CI/CD која може да биде корисна.
  • Способна за справување со различни HTTP повици:
    • Поддршка за веб-сокет
    • Барање SOAP
    • HTTP
    • Управување со колачиња од прелистувач
    • HTTPS
    • податоци во HTML форма
    • Барање XML

Споредба на карате и мирен

Бидете сигурни : Тоа е библиотека базирана на Java за тестирање на услугите REST. Користи Java јазик за пишување на линии на код. Помага при тестирање на бројни категории на барања, што дополнително резултира со верификација на различни комбинации на деловна логика.

Karate Framework : Алатка базирана на краставица/корнишони, која се користи за тестирање за САПУН & засилувач; Услуги REST.

Следната табела наведува уште неколку истакнати разлики помеѓу Rest-Assured & Рамка за карате:

С.Не Основа Рамка за карате Сигурен за одмор
1 Јазик Користи комбинација од краставица и корнишони Тој користи Java Јазик
2 Големина на кодот Обично, линијата на кодот е помал, бидејќи ја следи структурата слична на краставица Линијата на кодот е повеќе бидејќи вклучуваупотреба на Јава јазик
3 Потребно е техничко знаење Непрограмерите можат лесно да пишуваат кодот на корнишони Потребно е техничко знаење за пишување Java код
4 Тестирање базирано на податоци Треба да се користи TestNG или еквивалент за поддршка на истите Внатрешните ознаки може да се користат за поддршка на тестирање на податоци
5 Дали обезбедува поддршка за повик SOAP Да, обезбедува Тоа е поврзано само со барање REST
6 Паралелно тестирање Да, паралелното тестирање лесно се поддржува со генерирањето на паралелни извештаи исто така Не во голема мера. Иако луѓето се обиделе да го направат ова, стапката на неуспех е поголема од стапката на успех
7 Известување Обезбедува внатрешно известување, затоа не треба да зависи од надворешни приклучоци. Можеме дури и да го интегрираме со приклучокот за известување Cucumber за подобар интерфејс. Треба да зависиме од надворешни приклучоци како Junit, TestNG
8 CSV поддршка за надворешни податоци Да, од Karate 0.9.0 Не, мора да користите Java код или библиотека
9 Веб UI автоматизација Да, од Karate 0.9.5 Web-UI автоматизација е можна Не, не е поддржано
10 Примерок GET Given param val1 = ‘name1’

And param val2 = ‘name2’

And path ‘somelocation’

When method get

Then match response contains ‘OKAY’

given().

param("val1", "name1").

param("val2", "name2").

when().

get("/some\location").

then().

body(containsString("OKAY"));

Оттука, како што е прикажано со горенаведените разлики, слободно може да се каже дека каратето е една од најлесните работи што секој може да ги прави.

Алатки кои се потребни за работа со карате рамка

Сега, бидејќи ги добивме нашите основни знаења за Карате Рамка на точка, ајде да ги погледнеме процесите и алатките потребни за поставување на околината за карате.

#1) Eclipse

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.

#3) Gradle

Gradle е алтернатива на Maven и може да се користи во еднаков капацитет. Тие имаат свои сличности и разлики, но можат подеднакво да се користат при поставување на средина за нашите карате кодови.

Полесно е за користење, флексибилно и се препорачува да се користи кога нашата апликација има одредени барања за модуларизација и управување со еден куп додатоци. Кодот за поставување Gradle би изгледал отприлика вака,

testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'

Забелешка: Можете да користите MAVEN или GRADLE.

#4) Поставување Java Environment во вашиот систем

Треба да ја поставите околината JDK и JRE за да започнете со скриптите Karate Framework.

Структура на карате тест скрипта

Скрипта за тест за карате е позната по поседувањето на екстензијата „.feature“. Овој имот е наследен од краставицата. Организацијата на датотеки во конвенцијата Јава е исто така подеднакво дозволена. Слободно можете да ги организирате вашите датотеки според конвенциите на пакетот Java.

Сепак, упатствата на Maven наложуваат складирањето на датотеките што не се Java да се врши посебно. Тие се направени во структура src/тест/ресурси . А Java-датотеките се чуваат под src/main/java .

Но, како што велат креаторите на Карате Рамката, тие силно веруваат дека ги чуваме и Java и не-Java датотеките покрај страна. Според нив, многу е полесно да се внимава на*.java и *.feature датотеки кога се чуваат заедно, наместо да ја следат стандардната Maven структура.

Ова може лесно да се направи со дотерување на вашиот pom.xml на следниов начин (За Maven):

    src/test/java  **/*.java     ...   

Следува преглед на општата структура на карате рамката:

Сега, бидејќи оваа карате рамка користи датотеката Runner, која исто така е потребна во Краставица за да се извршуваат датотеките со карактеристики, така што најголемиот дел од пишувањето ќе ги следи стандардите на Краставица.

Но, за разлика од Краставица, чекорите не бараат јасна дефиниција во карате и кои , за возврат, ја зголемуваат флексибилноста и леснотијата на работење. Не треба да го додаваме дополнителното лепило што обично треба да го додаваме кога ја следиме рамката на Краставица.

Класата „Runner“ најчесто се нарекува TestRunner.java.

Тогаш, датотеката TestRunner.java ќе има форма на:

 import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }

А кога зборуваме за датотеката .feature , таа го содржи целото тестирање сценарија што треба да се тестираат за да се увериме дека API работи според очекуваните барања.

Општата датотека *.feature изгледа нешто како што е прикажано подолу:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

Креирање на првата основна скрипта за тест за карате

Овој дел ќе ви помогне да започнете со создавањето на вашата прва тест скрипта, која ќе ви помогне да конвертирате API во форма на рамка за карате.

Пред да ги напишеме основните скрипти за тест за карате,Ве молиме инсталирајте ги следните услови на вашата машина:

  • Eclipse IDE
  • Maven. Поставете ја соодветната патека Maven.
  • JDK & JRE. Поставете ја соодветната патека.

Ајде да го погледнеме пристапот чекор по чекор:

#1) Направете нов MAVEN проект во Eclipse Editor

  • Отвори Eclipse
  • Кликнете на Датотека. Изберете нов проект.

  • Изберете Maven Project

  • Изберете локацијата на Работниот простор.
  • Изберете го архетипот (обично избираме „ Maven-archetype-quickstart 1.1 “ за едноставни проекти на Maven).
  • Обезбедете ID на групата & засилувач; ID на артефакт (ги користевме следните вредности во нашиот пример).
    • Групна ID : Карате
    • ИД на артефакт: KarateTestScriptsSample
  • Кликнете на Finish за да ја завршите поставување.

#2) Откако ќе се создаде, сега ќе можете да ја видите следната структура во прозорецот на 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) Ајде да размислиме за сценариото, во што ќе тестираме

Скролирај на врв