Автоматизираното тестване е критичен компонент на процеса на тестване. контрол на качеството на софтуера . Но тестването на API на представителния държавен трансфер (REST) може да бъде сложно. Много от тези, които прибягват до ръчно тестване на REST API, пренебрегват подробностите и пропускат начини да спестят време.
Всяка REST API услуга, която е успешно тествана, ще има следните области:
За целта ви трябват подходящите инструменти. Apache JMeter и REST Assured са два популярни инструмента за тестване на REST за тестване на услугите на REST API. Можете да научите повече за това как можете да ги използвате на практика тук Y. тук .
В тази статия ще научите плюсовете и минусите на тези два инструмента и къде най-добре се вписват във вашите съществуващи проекти за REST API.
Има предпоставка: JMeter и REST Assured изискват Java, така че трябва да имате инсталирана Java на вашия компютър, за да стартирате JMeter или REST Assured.
Инсталирането на Apache JMeter е много просто: отидете на страница за изтегляне , изберете ZIP или TAR, изтеглете файла, разархивирайте го и сте готови за работа.
Отидете в папката, в която сте разархивирали файла, в подпапката bin
и изпълнете jmeter.bat
(или подобно за вашата операционна система, ако не е Windows). За по-подробна информация как да конфигурирате Apache JMeter, вижте това страница .
Инсталирането на REST Assured е малко по-различно изживяване. REST Assured не е самостоятелен инструмент. Това е библиотека на Java. За да го използвате, трябва да настроите нов Java проект и да го включите като библиотека за вашия проект. Разбира се, има поддръжка за много инструменти за компилиране, така че можете просто да насочите решавателя на зависимостите си към някакво публично хранилище (Maven). Можете да намерите по-подробна информация за това как да конфигурирате REST Assured [тук] (https://semaphoreci.com/community/tutorials/testing-rest-endpoints-using-rest-assured.
Apache JMeter документация може да бъде намерен на официалния уебсайт на JMeter. Предоставя доста изчерпателна документация от самото начало до сложни функции като слушатели. Също така, на официалния уебсайт на JMeter можете да намерите връзки към някои много богати ресурси, като учебни видеоклипове. Ако обичате да четете по-малко и да гледате повече, това определено е бонус за вас.
The документация от REST Assured, подобно на самия инструмент / библиотека, можете да намерите в хранилището на Github. Той има голям списък от функции, изброени в онлайн документацията с много подробни обяснения как да постигнете нещо. Цялата документация обаче е страхотна уеб страница, а не най-лесният начин за изследване на инструмент.
Apache JMeter, като самостоятелно приложение с графичен потребителски интерфейс (GUI), ви позволява да създавате тестовете си от GUI. Това може да бъде полезно, особено поради йерархията на обектите, въведени от JMeter - всичко, което създадете в теста си, ще се покаже в дървоподобно представяне в графичния интерфейс на JMeter.
За да създадете тест, не е необходимо да притежавате умения за кодиране. GUI обаче не ограничава нито една от възможностите по отношение на планирането на теста. Ако все пак искате да добавите някакъв персонализиран график / поток, компонентите на BeanShell ще ви позволят да направите това.
Когато запазите проекта си JMeter, всичко, което сте създали, ще бъде запазено в голям XML файл (с разширението .jmx
). Като цяло, дори и за малка промяна в един от тестовете, ще трябва (най-вероятно) да отворите отново проекта в GUI, за да извършите промяната.
Ако трябва да си сътрудничите с други хора в същия файл на проекта JMeter, този голям XML файл няма да бъде лесен за поддръжка, използвайки някоя от системите за управление на източника (SCM) (като Git, SVN, Perforce и др.).
REST Осигурен от друга страна, изисква умения за кодиране на Java за създаване на тестовете. Няма лесен за използване GUI за създаване на тестове. REST Assured обаче ви позволява да пишете тестовете, като използвате езика корнишън (синтаксис Give-When-Then), така че дори ако имате нужда от някои умения за кодиране на Java, тестовете са доста четими.
given(http://via.placeholder.com/2000x200?text=image+placeholder). config(RestAssured.config(http://via.placeholder.com/2000x200?text=image+placeholder).jsonConfig(jsonConfig(http://via.placeholder.com/2000x200?text=image+placeholder).numberReturnType(BIG_DECIMAL))). when(http://via.placeholder.com/2000x200?text=image+placeholder). get(“/price”). then(http://via.placeholder.com/2000x200?text=image+placeholder). body(“price”, is(new BigDecimal(12.12)));
Тъй като REST Assured е библиотека и тестовете всъщност са написани на Java, можете да организирате тестовете си в отделни Java файлове, така че когато трябва да промените тест, трябва да отворите само един файл. Не ви е необходим GUI, така че можете лесно да редактирате теста дори чрез SSH терминал. Сътрудничеството с други е съвсем просто, защото Java файловете са лесни за поддръжка, използвайки всеки SCM.
JMeter е добре известен като инструмент за тестване на производителността за тестване на уеб услуги и приложения. Той има добри опции, като доклади с различни видове диаграми, които можете да използвате, за да покажете показатели за тестване на ефективността.
От друга страна, това също не е основният сценарий за използване на JMeter. Можете да създадете функционални тестове за REST API с JMeter, включително твърдение за отговор.
Основният сценарий на употреба за REST Assured е за функционално тестване на REST API услуги. Дори се предлага със собствен механизъм за твърдение за отговор (синтаксис на Коркин). Тъй като REST Assured е библиотека на Java, тя може лесно да се интегрира с модулни тестове.
Що се отнася до бенчмарковете, REST Assured не поддържа стандартни бенчмаркове. Ако обаче искате да го използвате за тестване на производителността, ще трябва да разработите своя собствена персонализирана рамка за тестване на производителността на REST Assured.
Тестовете на JMeter могат да бъдат извикани по два начина.
От потребителския интерфейс, като щракнете върху бутона Run:
От командния ред:
jmeter -n -t your_script.jmx
Официалната препоръка на JMeter не е да провеждате тестове за производителност с графичния интерфейс, тъй като тестовете ще работят по-бавно (по отношение на броя заявки в секунда) в сравнение с изпълнението им от командния ред.
REST Assured, от друга страна, изисква отделен тестов бегач, например jUnit или TestNG (или по някакъв друг начин за стартиране на Java код).
От Eclipse с помощта на TestNG:
От командния ред, използвайки например инструмента за изграждане на Ant:
ant run-tests
Поради основната си цел Apache JMeter има голям брой видове отчети, които можете да създадете от резултатите от неговите тестове. Тъй като можете да стартирате тестове за производителност от JMeter, показателите за производителност обикновено се показват с помощта на графики като тази:
Можете да научите повече за отчетите на JMeter и видовете отчети, от които можете да създавате тук .
REST Assured не създава отчети, така че зависи от вас и избраната от вас рамка за тестване. Когато обаче сте интегрирани с някаква модулна рамка за тестване, можете да получавате полезни отчети в HTML, текстов или XML формат.
Що се отнася до непрекъснатата интеграция на тестваните продукти, е много важно да интегрирате вашата рамка за автоматизация на теста с CI инструменти както за провеждане на тестове, така и за отчитане на резултатите.
Автоматизираните тестове на JMeter могат лесно да бъдат интегрирани с Дженкинс с помощта на изпълнение на приставката които ви позволяват да конфигурирате действия след изграждане и да получите хубава страница на таблото от работна страница на Jenkins.
REST Assured също може лесно да се интегрира с Jenkins, защото Jenkins има приставки за почти всички тестови рамки; Например той плъгин TestNG което отново може да създаде стабилна диаграма на тенденциите за резултатите от теста.
Това е категория, която не може лесно да бъде измерена. Дейността на общността зависи от няколко фактора, като например изтичането на срока на действие на инструмента или броя на участниците.
Apache JMeter има по-голяма общност днес. Това се дължи главно на факта, че JMeter беше представен на пазара отдавна и се счита за индустриален стандарт, когато става въпрос за тестване на производителността на уеб услуги и приложения. JMeter публикува официални версии на всеки 5-6 месеца . неговото Хранилище на GitHub е много активен, с нови потвърждения всеки ден. JMeter използва Bugzilla като инструмент за проследяване на проблеми и има списък с отворени издания които се сменят често. В търсенето има повече от 23000 резултата за JMeter StackOverflow . От сайтовете за социални мрежи JMeter има официален акаунт на Twitter . Във Facebook и LinkedIn няма официален акаунт за JMeter, но има две групи, най-голямата от които е тази фейсбук група и този LinkedIn група .
REST Assured достига първостепенната фаза и се превръща в първия избор, препоръка от няколко източника, когато става въпрос за автоматизиране на функционалното тестване на услугата REST API. REST Assured публикува официални издания веднъж на 6 месеца през последните две години. The Хранилище на GitHub Има много сътрудници и е малко по-малко активен от JMeter, но е и много активен. REST Assured проследява проблеми в хранилището на GitHub, така че всичко е на едно място. В StackOverflow , има над 2000 резултата от търсенето за REST Assured, така че можем да кажем, че той е значително по-нисък в сравнение с резултатите от търсенето на JMeter. Що се отнася до групите в социалните медии, само LinkedIn група се натъкна на значително по-малко членове в сравнение с JMeter. Общността REST Assured може да не е толкова голяма, колкото общността JMeter, но е много активна.
Както JMeter, така и REST Assured имат своите предимства един пред друг. Но в зависимост от проекта, по който работите, единият ще бъде по-добър от другия за вашата автоматизация за тестване на REST API. И двете са много здрави, имат полезни опции за тестване, имат добри възможности за отчитане и могат лесно да бъдат интегрирани с персонализирани рамки за тестване.
Ето резюме на всички критерии за сравнение, изследвани в тази статия за тези два популярни инструмента за тестване REST:
Apache JMeter | Бъдете спокойни | |
---|---|---|
Изисква умения за кодиране | Не | Да (Java) |
Пълен док | Да | Да |
Функционално тестване | Да (но прекалено) | Да |
Тест за ефективност | Да | Не (извън кутията) |
Подходящ за SCM (Git, P4 ...) | Не | Да |
Доклади от тестове | Да | Не |
Интеграция с CI инструменти | Да | Да |
Интеграция с модулни тестове | Не | Да |
Тестово паралелизиране | Да | Да |
Дейност на общността | Да | Да |