rest api testing with cucumber using bdd approach
како се декларише низ објеката у јави
Овај водич објашњава РЕСТ АПИ тестирање са краставцем коришћењем БДД приступа. Обухвата инсталацију софтвера, постављање пројеката, извршавање ТестСцрипта и извештаје.
У овом чланку ћемо видети како да започнемо са РЕСТ АПИ тестирањем у БДД стилу са оквиром Цуцумбер.
Пре дубљег зарањања у тему, схватимо важне концепте који су у њу укључени.
Почнимо!!
Шта ћете научити:
- Важни концепти у РЕСТ АПИ-ју
- Како функционише краставац?
- Постављање оквира за тестирање краставаца на Виндовс-у
- Закључак
- Препоручено читање
Важни концепти у РЕСТ АПИ-ју
ОДМОР
Ово је софтверски архитектонски стил. Пуни облик РЕСТ је репрезентативни државни трансфер . Дефинише скуп ограничења која ће се користити за стварање веб услуга. Веб услуге које одговарају архитектонском стилу РЕСТ називају се РЕСТфул веб услуге.
РЕСТ АПИ тестирање
РЕСТ АПИ тестирање је тестирање АПИ-ја помоћу 4 главне методе, тј. ПОСТ, ГЕТ, ПУТ и ДЕЛЕТЕ.
РЕСТ Шаблон
РестТемплате је пролећна класа отвореног кода која пружа погодан начин за тестирање мирних веб услуга заснованих на ХТТП-у пружајући преоптерећене методе за ХТТП методе.
Белешка : Да бисте сазнали више о концепту тестирања РЕСТ АПИ-ја, можете се обратити нашем ранијем водичу „ РЕСТ АПИ тестирање помоћу Спринг РестТемплате и ТестНГ ’Где смо описали како ручно да извршимо РЕСТ АПИ тестирање заједно са концептом ЈСОН-а.
БДД
БДД је приступ заснован на понашању. Ово је једна од техника за развој софтвера која је настала из Тест Дривен Девелопмент-а, тј. ТДД стила.
Принцип БДД тестирања је да су тест примери написани на природном језику који је лако читљив и онима који нису програмери.
Краставац
Краставац је алат који подржава развој вођен понашањем
Како функционише краставац?
Да видимо како функционише краставац.
Краставац се састоји од датотека са карактеристикама, датотека са дефиницијом корака и класе Руннер.
Феатуре Филес
Датотеке карактеристика пише ваш пословни аналитичар или можда ваш спонзор. Они су написани у формату природног језика са описаним спецификацијама и потврђују да функције апликације функционишу према спецификацијама.
Ове спецификације садрже више сценарија или примера поменутих у њима. Сваки сценарио је листа одређених корака да би краставац могао да прође.
Размотримо сценарио у којем корисник жели да се пријави у систем.
Да би се верификовало да ли ово ради према спецификацијама, треба описати овај сценарио. Ево корака које треба извршити заједно са жељеним исходом према спецификацијама.
Само да бисмо добили идеју, овако ће изгледати пример сценарија:
Scenario: Login to the system Given User launches Login screen When User enters username, password and submit Then Login Successful message appears
Можете видети, сваки сценарио је нека врста корака кроз које ће Краставац морати да се избори. Да би Краставац разумео сценарије, морају следити нека основна синтаксна правила, тзв Корнишон .
Датотеке дефиниције корака
Датотеке дефиниција корака пресликавају сваки Гхеркин корак наведен у датотеци са карактеристикама у имплементациони код. Ово омогућава Краставцу да изврши радњу коју треба извршити корак.
Оквир краставаца подржава многе програмске језике за писање дефиниција корака као што су Јава, .нет и Руби.
Белешка : У чланку „ РЕСТ АПИ тестирање помоћу Спринг РестТемплате и ТестНГ ’, Развили смо тест тест пројекат НГ са пролећним шаблоном.
Сада ћемо развити Тест Фрамеворк за исту услугу РЕСТ и РестТемплате, али користећи Цуцумбер за стил тестирања развоја заснованог на понашању.
Почнимо са подешавањем нашег оквира за аутоматизацију са краставцем!
Постављање оквира за тестирање краставаца на Виндовс-у
# 1) Инсталација
(и) Користићемо Јаву за развој дефиниције корака. Дакле, прво преузмите ЈДК инсталациони програм за Виндовс са Орацле и инсталирајте Јава на свој рачунар.
(ии) ИДЕ (Интегрисано развојно окружење) : Ецлипсе сам користио као ИДЕ за развој програма Аутоматион Тест Суите. Можете га преузети са Ецлипсе
(иии) Набавите додатак Ецлипсе за краставац:
Следите ове кораке у Ецлипсеу:
- Изаберите Помоћ -> Инсталирај нови софтвер из опције менија.
- Ентер ‘Помрачење краставаца’ у оквиру за текст за претрагу.
- Кликните на Инсталирај дугме.
Инсталација додатка за краставац у Ецлипсеу
- Наставите да кликћете на дугме Даље док не дођете до Прегледајте лиценцу екран.
На крају, кликните на поље за потврду да бисте прихватили Уговор о лиценци и кликните на Заврши дугме. Ово ће довршити инсталацију. Сада поново покрените Ецлипсе ИДЕ. Ово је потребно да би се инсталирање плуг-ин-а на снази.
(ив) Пролећне тегле: Како ћемо користити класу РестТемплате која припада пролећном оквиру, мораћете да имате пролећне тегле оквира. Пролећне тегле можете преузети са Спринг Фрамеворк и сачувајте га у локалној фасцикли. На пример, Ц: / пројецтЈар
(в) ЈСОН-једноставне тегле: Морамо извршити ЈСОН рашчлањивање. Стога ћемо користити лагани ЈСОН-једноставан АПИ. Дакле, преузмите ЈСОН-симпле-1.1.јар и сачувајте га у Ц: / пројецтЈар
(ви) Тегле са краставцима:
За покретање пројекта Краставац требаће вам следеће тегле краставаца:
- краставац-језгра
- краставац-јава
- краставац-ЈУнит
- краставац-ЈВМ-депс
- извештавање краставаца
- корнишон
- ЈУнит
- моцкито-алл
- покривеност
- краставац-ХТМЛ [За извештаје у хтмл-у]
Ове датотеке можете преузети помоћу датотеке пом.кмл. Али, најједноставнији начин је да преузмете ове јар датотеке са Централ Репоситори и сачувајте те јар датотеке у локалној фасцикли, На пример, Ц: / пројецтЈар
Сада смо овим завршили све потребне инсталације. Дакле, креирајмо наш пројекат аутоматизације БДД теста.
# 2) Постављање пројекта
- Направи датотеку -> Ново -> Јава пројекат -> Назовите је као ‘ ЦРУД_Краставац ’.
- Сада креирајте нови Јава пакет демо.
- Конфигуришите БуилдПатх пројекта:
- Као што сте видели у претходном одељку, инсталирали смо додатак за Краставац, преузели пролеће и ЈСОН-једноставне тегле. Дакле, време је да у наш пројекат додате путању градње која ће их потрошити. За то направите а либ директоријум у Директоријум ЦРУД_Цуцумбер ’ а сада копирајте све тегле из Ц: / пројецтЈар у либ / краставац, либ / пролеће директоријум.
- Десни клик на „ ЦРУД_Цуцумбер ’ -> Буилд Патх -> Конфигуришите Буилд Патх.
- Кликните на Библиотеке таб.
- Кликните на Додајте тегле дугме-> Изаберите све тегле из либ / краставац фасцикла и либ / Пролеће директоријум. Ово ће додати све тегле краставаца, пролећне тегле и ЈСОН-једноставну теглу у путању израде вашег пројекта.
Структура вашег пројекта биће приказана на следећи начин у програму Ецлипсе Пацкаге Екплорер.
Структура пакета тест пројекта
# 3) Датотека карактеристика
Сада, направимо нашу датотеку карактеристика ДемоФеатуре.феатуре имајући функцију Извођење ЦРУД операција на услузи запосленима.
У нашем примеру сам користио једну лутку хттп://думми.рестапиекампле.цом/апи узорак РЕСТ услуге.
Ова датотека са карактеристикама описује сценарије за извођење ЦРУД операција, тј. За покривање ЦРУД-а (Цреате-Реад-Упдате-Делете).
- Хајде да прво дефинишемо карактеристику, у нашем случају то је тестирање ЦРУД метода, које се могу описати на следећи начин.
Feature: Test CRUD methods in Sample Employee REST API testing
- Сада ово има различите сценарије попут Креирање, ажурирање, читање и брисање записа запослених. Дакле, погледајте ПОСТ сценарио:
Scenario: Add Employee record
- Опишите предуслов за тест који поставља УРЛ адресе службе за запослене.
Given I Set POST employee service api endpoint
- Наведите стварни тестни корак слања захтева за пошту.
When I Set request HEADER And Send a POST HTTP request
- Сад опишите верификацију тела за одговор.
Then I receive valid Response
Дакле, у нашој датотеци карактеристика, Сценариј ће изгледати на следећи начин:
Scenario: Add Employee record Given I Set POST employee service api endpoint When I Set request HEADER And Send a POST HTTP request Then I receive valid Response
Слично томе, можете написати и преостале сценарије како је приказано доле.
ДемоФеатуре.феатуре
# 4) Примена дефиниције корака
За кораке карактеристика који се користе у горе наведеним сценаријима треба да напишете програмске имплементације, у овом случају то је Јава.
Дефиниција корака је метода написана на Јави која има израз. Повезује своју методу са једним или више корака. Дакле, када Краставац изврши кораке описане у сценарију датотеке функције, прво тражи подударање дефиниција корака да извршава.
На пример, када се дефиниција корака за Додавање запосленог помоћу ПОСТ-а може написати на следећи начин.
За дати корак, примена је написана на следећи начин:
@Given('^I Set POST employee service api endpoint$') public void setPostEndpoint(){ addURI = 'http://dummy.restapiexample.com/api/v1/create'; System.out.println('Add URL :'+addURI); }
Слично томе, за корак Вхен следећи је метод дефиниције:
@When ('^Send a POST HTTP request$') public void sendPostRequest(){ doublename_id = Math.random(); emp_name = 'zozo_'+name_id;//Just to avoid Duplicate Name entry String jsonBody'{'name':''+emp_name+'','salary':'123','age':'23'}'; System.out.println('
' + jsonBody); HttpEntityentity = new HttpEntity(jsonBody, headers); //POST Method to Add New Employee restTemplate = newRestTemplate (); response = restTemplate.postForEntity(addURI, entity, String.class); }
Сада је део корака верификације, тј. Имплементација Затим корак:
@Then ('^I receive valid Response$') Public void verifyPostResponse(){ responseBodyPOST = response.getBody(); // Write response to file responseBody = response.getBody().toString(); System.out.println('responseBody --->' + responseBody); // Get ID from the Response object employeeId = getEmpIdFromResponse(responseBody); System.out.println('empId is :' + employeeId); // Check if the added Employee is present in the response body. Assert.hasText(responseBody,employeeId); // Check if the status code is 201 Assert.isTrue(response.getStatusCode()==HttpStatus.OK); System.out.println('Employee is Added successfully employeeId:'+employeeId); }
Белешка: Овде користимо методу РестТемплате за слање захтева. Ово је исто као метода коришћена у „ РЕСТ АПИ тестирање помоћу Спринг РестТемплате и ТестНГ ' . Да бисте сазнали више о методама предлошка за одмор, можете се обратити упутству.
Стога ће ваша дефиниција корака изгледати на следећи начин.
СтепДефинитион.јава
На исти начин можете применити дефиниције корака за преостале сценарије Ажурирање, читање и брисање запослених.
# 5) Покретање тестова
Сада смо завршили задатак за развој сценарија и корака, па покренимо тестове. За ово морамо да напишемо класу ЈУнит руннер.
publicclassRunner { }
Овде треба да додате следеће напомене изнад назива класе:
@РунВитх (Цуцумбер.цласс): Да трчите као тест класа тркача за Краставац.
@ЦуцумберОптионс: Овде наводите локацију датотеке Својства и локацију датотеке дефиниције корака за оквир Цуцумбер који треба испитати током извршавања.
features='' glue=''
Повезати: Ово се користи за одређивање различитих опција форматирања извештаја који се генерише као излаз.
Отуда ће ваша класа тркача изгледати овако.
ТестРуннер.јава
Само кликните десним тастером миша ТестРуннер.јава и изаберите опцију „ Покрени као ЈУнит тест ’ . Ово ће приказати резултат извршења теста на следећи начин.
Излаз картице Јунит
На Конзоли ћете видети следеће поруке.
Излаз конзоле
# 6) Извештаји
Резултат смо видели на конзоли. Међутим, Краставац пружа резултате тестова у представљивијем ХТМЛ формату који се може поделити са заинтересованим странама.
Отвори мета -> краставци-извештаји у прегледачу.
Белешка : Сјећате ли се класе тркача Јунит ЦуцуцмберОптионс?
@CucumberOptions (features='Features',glue={'demo'},plugin={'pretty', 'html:target/cucumber-reports'})
Овде је додатак опција коју одредимо за извештаје у ХТМЛ формату заједно са фасциклом.
target/cucumber-reports
Сада отворите страницу таргет цуцумбер-репортс индек.хтмл. Страница извештаја је ХТМЛ страница на којој можете видети име функције са сценаријима који су успешно извршени.
Дакле, ваш извештај ће изгледати на следећи начин.
Резултат ЦуцумберТест у ХТМЛ формату
Закључак
За крај овог водича, резимирајмо оно што смо до сада научили.
Видели смо све кораке од почетка за постављање БДД Цуцумбер РЕСТ АПИ Тест Аутоматион Фрамеворк.
У овом процесу сазнали смо следеће:
- За аутоматизацију тестова изабрали смо Јаву као програмски језик.
- Одабрали смо Краставац као оквир за тестирање за креирање пакета за тестирање на тест начин Бехавиор Дривен Девелопмент.
- За слање стварних ХТТП захтева на сервер користили смо класу Спринг фрамеворк РестТемплате.
- За употребу ових АПИ-ја урадили смо инсталацију додатка Цуцумбер, преузели датотеке јар датотека зависности од Цуцумбер-а, Спринг јар-ове и ЈСОН-једноставан јар за АПИ-је парсера.
- Направили смо датотеку Феатуре да бисмо на једноставном енглеском језику описали сценарије, датотеку Дефиниција корака за мапирање корака и класу ЈУнит Руннер за покретање датотеке Феатуре.
- Коначно, извршили смо класу Тест Руннер и видели резултат на конзоли у презентабилнијем и читљивијем ХТМЛ формату.
Укратко, овај чланак је објаснио како започети са аутоматизацијом РЕСТ АПИ Тест са краставцем. Покривали смо постављање нашег оквира за аутоматизацију теста, од инсталације сав неопходног софтвера, постављања пројеката, развоја ТестСцрипт-а до извршења теста и прегледа генерираних извештаја.
Ово је довољно за било какво осигурање квалитета за аутоматизацију да започне са тест оквиром аутоматизације. Али ако неко жели детаљно да схвати како краставац интерно функционише, како функционише језик корнишон, онда се то може истражити на Краставац.
Надам се да сте спремни да започнете са тестирањем РЕСТ АПИ-ја у БДД стилу са краставцем !!
Препоручено читање
- 10 најбољих алата за тестирање АПИ-ја у 2021. години (СОАП и РЕСТ АПИ алати за тестирање)
- Најбољи алати за тестирање софтвера 2021. [Алати за аутоматизацију КА теста]
- РЕСТ АПИ тестирање помоћу Спринг РестТемплате и ТестНГ
- Преузимање е-књиге за тестирање буквара
- 20 најважнијих питања и одговора за интервјуисање АПИ испитивања
- СааС тестирање: изазови, алати и приступ тестирању
- Поједностављивање АПИ тестирања помоћу Каталон Студија
- Испитивање аутоматизације помоћу алата за краставце и селена - Туториал бр. 30