Prečo je TestMace lepší ako Postman

Prečo je TestMace lepší ako Postman

Ahojte všetci, tu máte TestMace! Možno o nás veľa ľudí vie našich predchádzajúce články. Pre tých, ktorí sa práve pripojili: vyvíjame IDE na prácu s TestMace API. Najčastejšou otázkou pri porovnávaní TestMace s konkurenčnými produktmi je „Ako sa líšite od Postmana?“ Rozhodli sme sa, že je čas dať na túto otázku podrobnú odpoveď. Nižšie sme načrtli naše výhody oproti poštár.

Rozdelenie na uzly

Ak pracujete s Postmanom, potom viete, že rozhranie žiadosti obsahuje všetky potrebné funkcie. Sú tam skripty, testy a vlastne aj samotné dotazy. To uľahčuje začiatočníkom, ale vo veľkých scenároch tento prístup nie je flexibilný. Čo ak chcete vytvoriť niekoľko dopytov a vykonať na nich agregáciu? Čo ak chcete spustiť skript bez požiadavky alebo niekoľko logicky oddelených skriptov za sebou? Koniec koncov, bolo by dobré oddeliť testy od bežných pomocných skriptov. Navyše, prístup „pridať všetky funkcie do jedného uzla“ nie je škálovateľný – rozhranie sa rýchlo preťaží.

TestMace spočiatku rozdeľuje všetky funkcie do rôznych typov uzlov. Chceli by ste podať žiadosť? To je pre teba krok žiadosti uzol Chcete napísať scenár? To je pre teba scenár uzol Potrebujete testy? prosím - Tvrdenie uzol Ach áno, stále to celé môžete zabaliť zložka uzol A to všetko sa dá ľahko navzájom kombinovať. Tento prístup je nielen veľmi flexibilný, ale v súlade s princípom jedinej zodpovednosti umožňuje využívať len to, čo v danej chvíli skutočne potrebujete. Prečo potrebujem skripty a testy, ak chcem len podať žiadosť?

Ľudsky čitateľný formát projektu

Medzi TestMace a Postman je koncepčný rozdiel v spôsobe ich uloženia. V Postman sú všetky požiadavky uložené niekde v lokálnom úložisku. Ak je potrebné zdieľať požiadavky medzi viacerými používateľmi, musíte použiť vstavanú synchronizáciu. V skutočnosti je to všeobecne akceptovaný prístup, ale nie bez nevýhod. Ako je to s bezpečnosťou údajov? Koniec koncov, politika niektorých spoločností nemusí povoliť ukladanie údajov s tretími stranami. Myslíme si však, že TestMace môže ponúknuť niečo lepšie! A názov tohto zlepšenia je „formát projektu čitateľný pre ľudí“.

Začnime tým, že v TestMace v zásade existuje „projektová“ entita. A aplikácia bola pôvodne vyvinutá s ohľadom na ukladanie projektov v systémoch správy verzií: strom projektu sa takmer jeden na jedného premieta do štruktúry súborov, ako formát úložiska sa používa yaml (bez ďalších zátvoriek a čiarok) a súborová reprezentácia každého uzla je podrobne popísaná v dokumentácii s komentármi. Vo väčšine prípadov sa tam však nepozeráte - všetky názvy polí majú logické názvy.

Čo to dáva používateľovi? To vám umožňuje veľmi flexibilne meniť pracovný tok tímu pomocou známych prístupov. Napríklad vývojári môžu uložiť projekt do rovnakého úložiska ako backend. V pobočkách, okrem zmeny samotnej kódovej základne, môže vývojár opraviť existujúce skripty dotazov a testy. Po vykonaní zmien v úložisku (git, svn, mercurial – čokoľvek, čo sa vám najviac páči), CI (vaša obľúbená, nikým nevnucovaná) spustí našu konzolovú utilitu testmace-clia správa prijatá po spustení (napríklad vo formáte junit, ktorý je podporovaný aj v testmace-cli) sa odošle do príslušného systému. A vyššie uvedená bezpečnostná otázka už nie je problém.

Ako môžete vidieť, TestMace nevnucuje svoj ekosystém a paradigmu. Namiesto toho ľahko zapadá do zavedených procesov.

Dynamické premenné

TestMace sa riadi konceptom bez kódu: ak je možné problém vyriešiť bez použitia kódu, snažíme sa poskytnúť túto príležitosť. Práca s premennými je presne ten druh funkcionality, kde sa vo väčšine prípadov zaobídete bez programovania.

Príklad: dostali sme odpoveď zo servera a časť odpovede chceme uložiť do premennej. V Postmanovi by sme v testovacom skripte (čo je samo o sebe zvláštne) napísali niečo ako:

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

Ale podľa nášho názoru písanie skriptu pre takýto jednoduchý a často používaný scenár vyzerá nadbytočne. Preto je v TestMace možné pomocou grafického rozhrania priradiť kúsok odpovede k premennej. Pozrite sa, aké je to jednoduché:

Prečo je TestMace lepší ako Postman

A teraz s každou požiadavkou bude táto dynamická premenná aktualizovaná. Môžete však namietať a argumentovať tým, že prístup Postman je flexibilnejší a umožňuje vám nielen zadať úlohu, ale aj vykonať určité predbežné spracovanie. Tu je postup, ako upraviť predchádzajúci príklad:

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

Na tento účel má TestMace scenár uzol, ktorý pokrýva tento scenár. Aby ste mohli reprodukovať predchádzajúci prípad, ale už spustený TestMace, musíte po požiadavke vytvoriť uzol skriptu a použiť nasledujúci kód ako skript:

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

Ako vidíte, aj tu dobre poslúžilo zloženie uzlov. A pre taký jednoduchý prípad, ako je popísaný vyššie, môžete výraz jednoducho priradiť ${crypto.MD5($response.data)} premenná vytvorená cez GUI!

Vytváranie testov cez GUI

Postman umožňuje vytvárať testy písaním skriptov (v prípade Postmana je to JavaScript). Tento prístup má mnoho výhod – takmer neobmedzenú flexibilitu, dostupnosť hotových riešení atď.

Realita je však často taká (my takí nie sme, život je taký), že tester nemá programátorské schopnosti, ale chcel by priniesť úžitok tímu práve teraz. V takýchto prípadoch vám TestMace podľa konceptu bez kódu umožňuje vytvárať jednoduché testy prostredníctvom GUI bez toho, aby ste museli písať skripty. Tu je napríklad to, ako vyzerá proces vytvárania testu, ktorý porovnáva hodnoty pre rovnosť:

Prečo je TestMace lepší ako Postman

Vytvorenie testov v grafickom editore však túto možnosť nevylučuje písanie testov v kóde. Všetky rovnaké knižnice sú tu ako v uzle skriptu a chai na písanie testov.

Často sa vyskytujú situácie, keď je potrebné vykonať určitý dotaz alebo dokonca celý skript niekoľkokrát v rôznych častiach projektu. Príkladom takýchto požiadaviek môže byť vlastná viacstupňová autorizácia, uvedenie prostredia do požadovaného stavu atď. Vo všeobecnosti, ak hovoríme o programovacích jazykoch, chceli by sme mať funkcie, ktoré je možné opätovne použiť v rôznych častiach aplikácie. V TestMace túto funkciu vykonáva odkaz uzol Použitie je veľmi jednoduché:
1) vytvorte dotaz alebo skript
2) vytvorte uzol typu Link
3) v parametroch uveďte odkaz na skript vytvorený v prvom kroku

V pokročilejšej verzii môžete určiť, ktoré dynamické premenné zo skriptu sa prenesú na vyššiu úroveň vzhľadom na prepojenie. Znie to mätúce? Povedzme, že sme vytvorili priečinok s názvom vytvoriť príspevok, v rámci ktorej je tomuto uzlu priradená dynamická premenná postId. Teraz v uzle Link create-post-link môžete explicitne určiť, že premenná postId pridelené predkovi create-post-link. Tento mechanizmus (opäť v programovacom jazyku) možno použiť na vrátenie výsledku z „funkcie“. Vo všeobecnosti je to v pohode, DRY je v plnom prúde a opäť nebol poškodený ani jeden riadok kódu.

Prečo je TestMace lepší ako Postman

Pokiaľ ide o Postman, existuje požiadavka na opätovné použitie žiadostí visí od roku 2015, a zdá sa, že existuje nejaké radyže na tomto probléme pracujú. Vo svojej súčasnej podobe má Postman samozrejme schopnosť zmeniť vlákno vykonávania, čo teoreticky pravdepodobne umožňuje implementovať podobné správanie, ale ide skôr o špinavý hack ako o skutočne fungujúci prístup.

Iné rozdiely

  • Väčšia kontrola nad rozsahom premenných. Najmenší rozsah, v ktorom môže byť premenná definovaná v Postman, je zbierka. TestMace vám umožňuje definovať premenné pre akýkoľvek dotaz alebo priečinok. Kolekcia Postman Share vám umožňuje exportovať iba kolekcie, zatiaľ čo v TestMace zdieľanie funguje pre akýkoľvek uzol
  • TestMace podporuje dedičné hlavičky, ktoré možno štandardne nahradiť podriadenými dopytmi. Poštár má niečo o tomto: úlohaa je dokonca zatvorený, ale ponúka sa ako riešenie... používať skripty. V TestMace je to všetko nakonfigurované cez GUI a existuje možnosť voliteľne zakázať zdedené hlavičky v konkrétnych potomkoch
  • Späť/Znova. Funguje nielen pri úprave uzlov, ale aj pri presúvaní, odstraňovaní, premenovávaní a iných operáciách, ktoré menia štruktúru projektu
  • Súbory pripojené k požiadavkám sa stávajú súčasťou projektu a sú s ním uložené, pričom sú na rozdiel od Postmana dokonale synchronizované. (Áno, už nemusíte manuálne vyberať súbory pri každom spustení a prenášať ich kolegom v archívoch)

Funkcie, ktoré sú už na ceste

Neodolali sme pokušeniu zdvihnúť závoj tajomstva pri ďalších vydaniach, najmä keď je funkčnosť veľmi chutná a už prechádza pred vydaním. Takže, poďme sa stretnúť.

Funkcia

Ako viete, Postman používa na generovanie hodnôt takzvané dynamické premenné. Ich zoznam je pôsobivý a veľká väčšina funkcií sa používa na generovanie falošných hodnôt. Ak chcete napríklad vygenerovať náhodný e-mail, musíte napísať:

{{$randomEmail}}

Keďže však ide o premenné (hoci dynamické), nemožno ich použiť ako funkcie: nie sú parametrizovateľné, preto nebude možné z reťazca prevziať hash.

Do TestMace plánujeme pridať „čestné“ funkcie. Priamo vo vnútri ${} bude možné nielen pristupovať k premennej, ale aj volať funkciu. Tie. ak potrebujete vygenerovať notoricky známy falošný e-mail, jednoducho napíšeme

${faker.internet.email()}

Okrem toho, že ide o funkciu, si všimnete, že je možné volať metódu na objekt. A namiesto veľkého plochého zoznamu dynamických premenných tu máme množinu logicky zoskupených objektov.

Čo ak chceme vypočítať hash reťazca? Jednoducho!

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

Všimnete si, že premenné môžete dokonca odovzdať ako parametre! V tejto chvíli môže zvedavý čitateľ tušiť, že niečo nie je v poriadku...

Používanie JavaScriptu vo výrazoch

... A z dobrého dôvodu! Keď sa tvorili požiadavky na funkcie, zrazu sme prišli na to, že platný javascript treba písať do výrazov. Takže teraz môžete písať výrazy ako:

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

A to všetko bez skriptov, priamo vo vstupných poliach!

Pokiaľ ide o Postmana, tu môžete použiť iba premenné a keď sa pokúsite napísať najmenší výraz, validátor nadáva a odmieta ho vypočítať.

Prečo je TestMace lepší ako Postman

Pokročilé automatické dokončovanie

V súčasnosti má TestMace štandardné automatické dopĺňanie, ktoré vyzerá takto:

Prečo je TestMace lepší ako Postman

Tu je okrem riadku automatického dokončovania uvedené, do čoho tento riadok patrí. Tento mechanizmus funguje iba vo výrazoch ohraničených zátvorkami ${}.

Ako vidíte, boli pridané vizuálne značky, ktoré označujú typ premennej (napríklad reťazec, číslo, pole atď.). Môžete tiež zmeniť režimy automatického dopĺňania (napríklad môžete vybrať automatické dopĺňanie s premennými alebo hlavičkami). Ale ani toto nie je to najdôležitejšie!

Po prvé, automatické dopĺňanie funguje aj vo výrazoch (ak je to možné). Takto to vyzerá:

Prečo je TestMace lepší ako Postman

A po druhé, automatické dopĺňanie je teraz dostupné v skriptoch. Pozrite sa, ako to funguje!

Prečo je TestMace lepší ako Postman

Nemá zmysel porovnávať túto funkcionalitu s Postmanom - automatické dopĺňanie je tam obmedzené iba na statické zoznamy premenných, hlavičiek a ich hodnôt (opravte ma, ak som na niečo zabudol). Skripty sa nedopĺňajú automaticky :)

Záver

Október bol rokom od začiatku vývoja našich produktov. Za tento čas sme stihli veľa vecí a v niektorých ohľadoch aj dobehli našich konkurentov. Ale nech je to akokoľvek, naším cieľom je vytvoriť skutočne pohodlný nástroj na prácu s API. Čaká nás ešte veľa práce, tu je hrubý plán rozvoja nášho projektu na budúci rok: https://testmace.com/roadmap.

Vaša spätná väzba nám umožní lepšie sa orientovať v množstve funkcií a vaša podpora nám dáva silu a istotu, že robíme správnu vec. Náhodou je dnes pre náš projekt dôležitý deň - deň, kedy bol testMace publikovaný Hunt produktu. Podporte prosím náš projekt, je pre nás veľmi dôležitý. Navyše je dnes na našej PH stránke lákavá ponuka, ktorá je limitovaná

Zdroj: hab.com

Pridať komentár