Зошто TestMace е подобар од Поштар

Зошто TestMace е подобар од Поштар

Здраво на сите, повелете TestMace! Можеби многу луѓе знаат за нас од на нашите претходно статии. За оние кои штотуку се приклучија: развиваме IDE за работа со TestMace API. Најчесто поставуваното прашање кога се споредува TestMace со конкурентни производи е „По што се разликувате од Postman? Решивме дека е време да дадеме детален одговор на ова прашање. Подолу ги наведовме нашите предности Поштарот.

Разделување на јазли

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

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

Формат на проект читлив за луѓе

Постои концептуална разлика помеѓу TestMace и Postman во начинот на кој тие се складирани. Во Поштар, сите барања се зачувани некаде во локално складирање. Ако има потреба од споделување барања помеѓу неколку корисници, тогаш треба да ја користите вградената синхронизација. Всушност, ова е општо прифатен пристап, но не без свои недостатоци. Што е со безбедноста на податоците? На крајот на краиштата, политиката на некои компании може да не дозволува складирање податоци со трети страни. Сепак, мислиме дека TestMace има нешто подобро да понуди! И името на ова подобрување е „проектен формат читлив за луѓе“.

Да почнеме со фактот дека во TestMace, во принцип, постои ентитет „проект“. А апликацијата првично беше развиена со цел зачувување проекти во системи за контрола на верзии: проектното стебло е речиси еден-на-еден проектирано на структурата на датотеката, yaml се користи како формат за складирање (без дополнителни загради и запирки) и претставувањето на датотеката на секој јазол е детално опишано во документацијата со коментари. Но, во повеќето случаи нема да погледнете таму - сите имиња на полиња имаат логични имиња.

Што му дава ова на корисникот? Ова ви овозможува многу флексибилно да го промените работниот тек на тимот, користејќи познати пристапи. На пример, програмерите можат да складираат проект во истото складиште како задниот дел. Во гранките, покрај промената на самата база на кодови, развивачот може да ги коригира постоечките скрипти за пребарување и тестови. Откако ќе извршите промени во складиштето (git, svn, mercurial - што ви се допаѓа најдобро), CI (вашиот омилен, не наметнат од никој) ја стартува нашата алатка за конзола testmace-cli, а извештајот добиен по извршувањето (на пример, во формат junit, кој е поддржан и во testmace-cli) се испраќа до соодветниот систем. И горенаведеното безбедносно прашање веќе не е проблем.

Како што можете да видите, TestMace не го наметнува својот екосистем и парадигма. Наместо тоа, лесно се вклопува во воспоставените процеси.

Динамички променливи

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

Пример: добивме одговор од серверот и сакаме да зачуваме дел од одговорот во променлива. Во Поштар, во тест скрипта (што е само по себе чудно) би напишале нешто како:

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

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

Зошто TestMace е подобар од Поштар

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

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

Па, за оваа цел има TestMace скрипта јазол, кој го опфаќа ова сценарио. За да го репродуцирате претходниот случај, но веќе извршен од TestMace, треба да креирате јазол за скрипта по барањето и да го користите следниов код како скрипта:

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

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

Креирање тестови преку GUI

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

Меѓутоа, реалноста е често таква (ние не сме такви, животот е таков) што тестерот нема програмски вештини, но би сакал да му донесе корист на тимот токму сега. За такви случаи, следејќи го концептот без код, TestMace ви овозможува да креирате едноставни тестови преку GUI без прибегнување кон пишување скрипти. Еве, на пример, како изгледа процесот на создавање тест што ги споредува вредностите за еднаквост:

Зошто TestMace е подобар од Поштар

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

Често се појавуваат ситуации кога одредено барање или дури и цела скрипта треба да се изврши неколку пати во различни делови од проектот. Пример за такви барања може да биде прилагодено повеќестепено овластување, доведување на околината во посакуваната состојба итн. Генерално, зборувајќи во однос на програмските јазици, би сакале да имаме функции кои можат повторно да се користат во различни делови од апликацијата. Во TestMace оваа функција се изведува од линк јазол Многу е лесен за употреба:
1) креирајте барање или скрипта
2) креирајте јазол од типот Link
3) во параметрите, наведете врска до скриптата создадена во првиот чекор

Во понапредна верзија, можете да одредите кои динамички променливи од скриптата се пренесуваат на повисоко ниво во однос на врската. Звучи збунувачки? Да речеме дека создадовме Папка со името креирај-пост, во рамките на која на овој јазол му е доделена динамичка променлива postId. Сега во врска јазол креирај-пост-врска може експлицитно да наведете дека променливата postId доделен на предок креирај-пост-врска. Овој механизам (повторно, во програмскиот јазик) може да се користи за враќање на резултат од „функција“. Во принцип, кул е, DRY е во полн замав и повторно ниту една линија код не е оштетена.

Зошто TestMace е подобар од Поштар

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

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

  • Поголема контрола врз опсегот на променливите. Најмалиот опсег во кој може да се дефинира променлива во Postman е колекцијата. TestMace ви овозможува да дефинирате променливи за кое било барање или папка. Во колекцијата Postman Share ви овозможува да извезувате само збирки, додека во TestMace споделувањето работи за кој било јазол
  • ТестМејс поддржува наследни заглавија, што стандардно може да се замени во детски барања. Поштарот има нешто за ова: предизвик, па дури е затворен, но се нуди како решение... користете скрипти. Во TestMace, сето ова е конфигурирано преку GUI и постои опција за опционално оневозможување на наследените заглавија во одредени потомци
  • Врати/Повтори. Работи не само при уредување јазли, туку и при преместување, бришење, преименување и други операции кои ја менуваат структурата на проектот
  • Датотеките прикачени на барањата стануваат дел од проектот и се складираат со него, додека се совршено синхронизирани, за разлика од Postman. (Да, повеќе не треба рачно да избирате датотеки секој пат кога ќе започнете и да ги пренесувате на колегите во архивите)

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

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

Функции

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

{{$randomEmail}}

Меѓутоа, бидејќи тоа се променливи (иако динамични), тие не можат да се користат како функции: тие не се параметризирани, затоа нема да биде можно да се земе хаш од низа.

Планираме да додадеме „чесни“ функции на TestMace. Веднаш во ${} ќе биде можно не само да пристапите до променлива, туку и да повикате функција. Оние. ако треба да ја генерирате озлогласената лажна е-пошта, ние едноставно ќе ви напишеме

${faker.internet.email()}

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

Што ако сакаме да го пресметаме хашот на низата? Лесно!

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

Ќе забележите дека можете дури и да пренесувате променливи како параметри! Во овој момент, испитувачки читател може да се посомнева дека нешто не е во ред...

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

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

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

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

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

Зошто TestMace е подобар од Поштар

Напредно автоматско комплетирање

Во моментов TestMace има стандардно автоматско комплетирање што изгледа вака:

Зошто TestMace е подобар од Поштар

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

Како што можете да видите, додадени се визуелни маркери кои го означуваат типот на променливата (на пример, стринг, број, низа итн.). Можете исто така да ги промените режимите на автоматско пополнување (на пример, можете да изберете автоматско пополнување со променливи или заглавија). Но, дури и ова не е најважното нешто!

Прво, автоматското комплетирање работи дури и во изрази (каде што е можно). Вака изгледа:

Зошто TestMace е подобар од Поштар

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

Зошто TestMace е подобар од Поштар

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

Заклучок

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

Вашите повратни информации ќе ни овозможат подобро да се движиме низ изобилството на функции, а вашата поддршка ни дава сила и доверба дека ја правиме вистинската работа. Се случува денес да биде важен ден за нашиот проект - денот кога беше објавен TestMace ProductHunt. Ве молиме поддржете го нашиот проект, тој ни е многу важен. Згора на тоа, денес има примамлива понуда на нашата PH страница и таа е ограничена

Извор: www.habr.com

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