Зашто је ТестМаце бољи од Постмана

Зашто је ТестМаце бољи од Постмана

Здраво свима, изволите ТестМаце! Можда многи људи знају за нас из нашег Претходна чланци. За оне који су се управо придружили: развијамо ИДЕ за рад са ТестМаце АПИ-јем. Најчешће постављано питање када се ТестМаце пореди са конкурентским производима је „По чему се разликујете од Постмана?“ Одлучили смо да је време да дамо детаљан одговор на ово питање. У наставку смо навели наше предности у односу на Поштар.

Подела на чворове

Ако радите са Постманом, онда знате да интерфејс захтева садржи све потребне функционалности. Постоје скрипте, тестови и, у ствари, сами захтеви. Ово олакшава почетницима, али у великим сценаријима овај приступ није флексибилан. Шта ако желите да креирате неколико упита и извршите агрегацију на њима? Шта ако желите да извршите скрипту без захтева или неколико логички одвојених скрипти у низу? На крају крајева, било би добро одвојити тестове од редовних услужних скрипти. Поред тога, приступ „додавање свих функционалности у један чвор“ није скалабилан – интерфејс брзо постаје преоптерећен.

ТестМаце у почетку дели сву функционалност на различите типове чворова. Да ли желите да пошаљете захтев? То је за тебе корак захтева чвор Да ли желите да напишете сценарио? То је за тебе скрипта чвор Требате тестове? Молимо вас - Тврдња чвор Ох да, још увек можете да умотате целу ову ствар фасцикла чвор И све ово се лако може комбиновати једно са другим. Овај приступ не само да је веома флексибилан, већ вам такође, у складу са принципом јединствене одговорности, омогућава да користите само оно што вам је заиста потребно у овом тренутку. Зашто су ми потребне скрипте и тестови ако само желим да поднесем захтев?

Човјеку читљив формат пројекта

Постоји концептуална разлика између ТестМаце-а и Постмана у начину на који се чувају. У Постман-у, сви захтеви се чувају негде у локалном складишту. Ако постоји потреба за дељењем захтева између неколико корисника, онда морате да користите уграђену синхронизацију. У ствари, ово је опште прихваћен приступ, али не без недостатака. Шта је са безбедношћу података? На крају крајева, политика неких компанија можда не дозвољава чување података трећим лицима. Међутим, мислимо да ТестМаце има нешто боље да понуди! А име овог побољшања је „формат пројекта читљив људима“.

Почнимо са чињеницом да у ТестМаце-у, у принципу, постоји „пројектни“ ентитет. А апликација је првобитно развијена са циљем да се пројекти складиште у системима за контролу верзија: стабло пројекта је скоро један на један пројектовано на структуру датотеке, иамл се користи као формат складиштења (без додатних заграда и зареза), а датотечни приказ сваког чвора је детаљно описан у документацији са коментарима. Али у већини случајева нећете тражити тамо - сва имена поља имају логичка имена.

Шта ово даје кориснику? Ово вам омогућава да веома флексибилно промените ток рада тима, користећи познате приступе. На пример, програмери могу да чувају пројекат у истом спремишту као и позадински део. У гранама, поред промене саме базе кода, програмер може да исправи постојеће скрипте упита и тестове. Након урезивања промена у спремишту (гит, свн, мерцуриал - шта год желите), ЦИ (ваш омиљени, није наметнут од никог) покреће наш услужни програм за конзолу тестмаце-цли, а извештај примљен након извршења (на пример, у јунит формату, који је такође подржан у тестмаце-цли) се шаље одговарајућем систему. А горе поменуто безбедносно питање више није проблем.

Као што видите, ТестМаце не намеће свој екосистем и парадигму. Уместо тога, лако се уклапа у успостављене процесе.

Динамиц Вариаблес

ТестМаце прати концепт без кода: ако се проблем може решити без употребе кода, ми покушавамо да пружимо ову прилику. Рад са променљивим је управо она врста функционалности где у већини случајева можете без програмирања.

Пример: добили смо одговор од сервера и желимо да сачувамо део одговора у променљивој. У Постман-у, у тест скрипти (што је само по себи чудно) написали бисмо нешто попут:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Али по нашем мишљењу, писање скрипте за тако једноставан и често коришћен сценарио изгледа сувишно. Стога је у ТестМаце-у могуће доделити део одговора променљивој помоћу графичког интерфејса. Погледајте како је једноставно:

Зашто је ТестМаце бољи од Постмана

И сада са сваким захтевом ова динамичка променљива ће бити ажурирана. Али можете приговорити, тврдећи да је приступ Поштара флексибилнији и да вам омогућава не само да извршите задатак, већ и да извршите неку претходну обраду. Ево како да измените претходни пример:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Па, за ову сврху има ТестМаце скрипта чвор, који покрива овај сценарио. Да бисте репродуковали претходни случај, али га је ТестМаце већ извршио, потребно је да креирате чвор скрипте након захтева и користите следећи код као скрипту:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Као што видите, састав чворова је добро послужио и овде. А за тако једноставан случај као што је горе описано, можете једноставно доделити израз ${crypto.MD5($response.data)} променљива креирана преко ГУИ!

Креирање тестова преко ГУИ

Постман вам омогућава да креирате тестове писањем скрипти (у случају Постмана, ово је ЈаваСцрипт). Овај приступ има много предности - скоро неограничену флексибилност, доступност готових решења итд.

Међутим, реалност је често таква (ми нисмо такви, живот је такав) да тестер нема вештине програмирања, али би желео да сада донесе корист тиму. У таквим случајевима, пратећи концепт без кода, ТестМаце вам омогућава да креирате једноставне тестове кроз ГУИ без прибегавања писању скрипти. Ево, на пример, како изгледа процес креирања теста који упоређује вредности за једнакост:

Зашто је ТестМаце бољи од Постмана

Међутим, креирање тестова у графичком уређивачу не елиминише ту могућност писање тестова у коду. Све исте библиотеке су овде као у чвору скрипте и цхаи за писање тестова.

Често се јављају ситуације када одређени упит или чак цео скрипт треба да се изврши неколико пута у различитим деловима пројекта. Пример таквих захтева може бити прилагођена вишестепена ауторизација, довођење окружења у жељено стање итд. Генерално, говорећи у смислу програмских језика, желели бисмо да имамо функције које се могу поново користити у различитим деловима апликације. У ТестМаце ову функцију обавља веза чвор Веома је једноставан за употребу:
1) креирајте упит или скрипту
2) креирати чвор типа Линк
3) у параметрима наведите везу до скрипте креиране у првом кораку

У напреднијој верзији, можете одредити које динамичке променљиве из скрипте се прослеђују на виши ниво у односу на везу. Звучи збуњујуће? Рецимо да смо направили фасциклу са именом креирај-пост, у оквиру које је динамичка променљива додељена овом чвору postId. Сада у чвору Линк креирај-пост-линк можете експлицитно навести да променљива postId додељена претку креирај-пост-линк. Овај механизам (опет, у програмском језику) се може користити за враћање резултата из „функције“. Генерално, супер је, ДРИ је у пуном замаху и опет ниједна линија кода није оштећена.

Зашто је ТестМаце бољи од Постмана

Што се тиче Постмана, постоји захтев за функцију за поновно коришћење захтева виси од 2015, а чини се да има чак неки наговештајида раде на овом проблему. У свом тренутном облику, Постман, наравно, има могућност да промени нит извршења, што у теорији вероватно омогућава имплементацију сличног понашања, али ово је више прљави хак него истински функционалан приступ.

Друге разлике

  • Већа контрола над опсегом варијабли. Најмањи опсег унутар којег се променљива може дефинисати у Постман-у је збирка. ТестМаце вам омогућава да дефинишете променљиве за било који упит или фасциклу. У Постман Схаре колекција вам омогућава да извозите само колекције, док у ТестМаце дељење ради за било који чвор
  • ТестМаце подржава наследна заглавља, који се подразумевано може заменити подређеним упитима. Поштар има нешто о овоме: задатак, чак је и затворено, али се нуди као решење... користите скрипте. У ТестМаце-у, ово је све конфигурисано преко ГУИ-а и постоји опција да се опционо онемогући наслеђена заглавља у одређеним потомцима
  • Поништи/Понови. Ради не само при уређивању чворова, већ и приликом премештања, брисања, преименовања и других операција које мењају структуру пројекта
  • Фајлови приложени захтевима постају део пројекта и чувају се са њим, док су савршено синхронизовани, за разлику од Постмана. (Да, више не морате ручно да бирате датотеке сваки пут када покренете и преносите их колегама у архиви)

Карактеристике које су већ на путу

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

Функције

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

{{$randomEmail}}

Међутим, пошто су ово променљиве (иако динамичке), оне се не могу користити као функције: оне се не могу параметризовати, стога неће бити могуће узети хеш из стринга.

Планирамо да додамо „поштене“ функције у ТестМаце. Управо унутар ${} биће могуће не само приступити променљивој, већ и позвати функцију. Оне. ако треба да генеришете озлоглашену лажну е-пошту, ми ћемо једноставно написати

${faker.internet.email()}

Поред чињенице да је у питању функција, приметићете да је могуће позвати метод на објекту. И уместо велике равне листе динамичких променљивих, имамо скуп логички груписаних објеката.

Шта ако желимо да израчунамо хеш стринга? Лако!

${crypto.MD5($dynamicVar.data)}

Приметићете да чак можете да проследите променљиве као параметре! У овом тренутку, радознали читалац може посумњати да нешто није у реду...

Коришћење ЈаваСцрипт-а у изразима

... И то са добрим разлогом! Када су се формирали захтеви за функције, одједном смо дошли до закључка да ваљан јавасцрипт треба писати у изразима. Дакле, сада сте слободни да пишете изразе као што су:

${1 + '' + crypto.MD5('asdf')}

И све ово без скрипти, директно у пољима за унос!

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

Зашто је ТестМаце бољи од Постмана

Напредно аутоматско довршавање

Тренутно ТестМаце има стандардно аутоматско довршавање које изгледа овако:

Зашто је ТестМаце бољи од Постмана

Овде је, поред линије за аутоматско довршавање, назначено чему ова линија припада. Овај механизам функционише само у изразима окруженим заградама ${}.

Као што видите, додати су визуелни маркери који означавају тип променљиве (на пример, стринг, број, низ, итд.). Такође можете да промените режиме аутоматског довршавања (на пример, можете да изаберете аутоматско довршавање помоћу променљивих или заглавља). Али ни ово није најважније!

Прво, аутоматско довршавање ради чак иу изразима (где је то могуће). Овако то изгледа:

Зашто је ТестМаце бољи од Постмана

И друго, аутоматско довршавање је сада доступно у скриптама. Погледајте како то функционише!

Зашто је ТестМаце бољи од Постмана

Нема смисла поредити ову функционалност са Постманом - аутодовршавање је ограничено само на статичке листе променљивих, заглавља и њихових вредности (исправите ме ако сам нешто заборавио). Скрипте се не довршавају аутоматски :)

Закључак

У октобру је обележена година од почетка развоја нашег производа. За то време успели смо да урадимо много тога и, у неким аспектима, сустигли наше конкуренте. Али како год било, наш циљ је да направимо заиста згодан алат за рад са АПИ-јима. Имамо још доста посла, ево оквирног плана за развој нашег пројекта за наредну годину: https://testmace.com/roadmap.

Ваше повратне информације ће нам омогућити да се боље сналазимо у обиљу функција, а ваша подршка нам даје снагу и самопоуздање да радимо праву ствар. Десило се да је данас важан дан за наш пројекат - дан када је ТестМаце објављен ПродуцтХунт. Молимо вас да подржите наш пројекат, веома нам је важан. Штавише, данас на нашој ПХ страници постоји примамљива понуда, која је ограничена

Извор: ввв.хабр.цом

Додај коментар