Miben jobb a TestMace, mint a Postman?

Miben jobb a TestMace, mint a Postman?

Üdvözöljük mindenkit TestMace! Lehet, hogy sokan ismernek minket a saját az előző cikkünkben. Azok számára, akik most csatlakoztak: API TestMace munkához fejlesztünk IDE-t. A leggyakrabban feltett kérdés a TestMace és versenytársai összehasonlításakor: «Miben különböztök meg a Postmantól?». Úgy döntöttünk, itt az ideje, hogy részletes választ adjunk erre a kérdésre. Az alábbiakban pontokba szedtük előnyeinket a Postman.

Csomópontokra bontás

Ha a Postmant használod, tudod, hogy a kérés interfésze tartalmaz minden szükséges funkciót. Itt vannak a szkriptek, a tesztek és maguk a kérések. Ez megkönnyíti a kezdők munkáját, azonban nagyobb forgatókönyveknél ez a megközelítés nem rugalmas. Mi van, ha több kérést szeretnél létrehozni, és aggregálni őket? Mi van, ha szkriptet szeretnél végrehajtani kérés nélkül vagy több logikailag elválasztott szkriptet egymás után? A végén nem lenne rossz, ha szétválasztanánk a teszteket a normál segédprogram szkriptektől. Ezen kívül a megközelítés, hogy «minden funkciót egy csomópontba teszünk», nem skálázható — az interfész gyorsan túlterhelté válik.

A TestMace eredetileg a funkciókat különböző típusú csomópontokra osztja. Kérést szeretnél készíteni? Itt van a kérés lépés csomópont. Szkriptet szeretnél írni? Itt van a script csomópont. Tesztekre van szükséged? Kérlek — Assertion csomópont. Ó, igen, mindezt becsomagolhatod egy folder csomópontba. És mindez könnyen kombinálható egymással. Ez a megközelítés nemcsak nagyon rugalmas, hanem a felelősség egységének elve szerint lehetővé teszi, hogy csak azt használd, amire éppen szükséged van. Miért lenne szükségem szkriptekre és tesztekre, ha csak egy kérést akarok csinálni?

Ember által olvasható projektformátum

A TestMace és a Postman között koncepcionális eltérés van a tárolás módjában. A Postmanben minden kérés valahol a helyi tárolóban van. Ha szükséges, hogy megosszuk a kéréseket több felhasználó között, akkor használnunk kell a beépített szinkronizálást. Valójában ez egy széles körben elterjedt megközelítés, nem mentes hibáktól. Mi a helyzet az adatok biztonságával? Végül is egyes cégek politikája nem engedheti meg az adatok harmadik fél általi tárolását. Ugyanakkor úgy gondoljuk, hogy a TestMace tud valami jobbat ajánlani! Ennek a javításnak a neve: «ember által olvasható projektformátum».

Kezdjük azzal, hogy a TestMace-ben létezik egy "projekt" entitás. Az alkalmazás alapvetően úgy lett megtervezve, hogy a projekteket verziókezelő rendszerekben tárolja: a projekt fájlstruktúrája szinte pontosan a fájlfa struktúrára vetül, a tárolási formátum yaml (felesleges zárójelek és vesszők nélkül), a minden egyes csomópont fájlformátuma részletesen le van írva a dokumentációban megjegyzésekkel. De a legtöbb esetben valószínűleg nem kell erre néznie — minden mező neve logikus elnevezéseket kapott.

Mit jelent ez a felhasználó számára? Ez lehetővé teszi a csapat munkafolyamatának rendkívül rugalmas megváltoztatását a szokásos megközelítések használatával. Például a fejlesztők tárolhatják a projektet ugyanabban a repository-ban, mint a backend. Az ágakban, a kódalap közvetlen módosítása mellett, a fejlesztő javíthatja a meglévő kérés- és tesztforgatókönyveket. A módosítások rögzítése után a repository-ban (git, svn, mercurial — ahogy önnek tetszik) a CI (az ön kedvenc, senki által nem rákényszerített) elindítja a konzolos segédprogramunkat. testmace-cli, és a végrehajtás után kapott jelentés (például junit formátumban, amelyet a testmace-cli is támogat) elküldésre kerül a megfelelő rendszerbe. Ráadásul a fent említett biztonsági kérdés már nem jelent problémát.

Ahogy látható, a TestMace nem kényszeríti saját ökoszisztémáját és paradigmáját. Ehelyett könnyen beilleszthető a már kialakult folyamatokba.

Dinamikus változók

A TestMace a no-code koncepciót követi: ha egy problémát lehetséges kód használata nélkül megoldani, akkor megpróbálunk olyan lehetőséget biztosítani. A változókkal való munka pontosan az a funkció, ahol a legtöbb esetben meg lehet úszni a programozást.

Példa: válasz érkezett a szervertől, és azt szeretnénk, ha a válasz egy részét elmentenénk egy változóba. A Postman-ben a tesztelési szkriptben (ami önmagában furcsa) írnánk valami ilyesmit:

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

De véleményünk szerint egy olyan egyszerű és gyakran használt forgatókönyv esetében, mint ez, egy szkript megírása feleslegesnek tűnik. Ezért a TestMace lehetővé teszi, hogy grafikus felhasználói felület segítségével egy változóhoz rendeljen egy részletet a válaszból. Nézze meg, mennyire egyszerű ez:

Miben jobb a TestMace, mint a Postman?

Most már minden kérésnél ez a dinamikus változó frissülni fog. De mondhatnád, hogy a Postman megközelítése rugalmasabb, és nemcsak hozzárendelést végez, hanem előfeldolgozást is elvégez. Így módosíthatod az előző példát:

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

Nos, erre a TestMace-ben van script egy csomópont, amely lefedi ezt a forgatókönyvet. Az előző eset reprodukálásához, de már a TestMace kivitelezésében, a kérés után egy script csomópontot kell létrehozni, és a következő kódot kell használni a scriptként:

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

Ahogy láthatod, a csomópontok összetétele itt is jól működött. És egy ilyen egyszerű esetben, mint amit fent említettem, akár egyszerűen hozzárendelhető is egy kifejezés ${crypto.MD5($response.data)} a grafikus felületen keresztül létrehozott változóhoz!

Tesztelés létrehozása GUI-n keresztül

A Postman lehetővé teszi a tesztek létrehozását szkriptek írásával (a Postman esetében ez JavaScript). Ennek a megközelítésnek számos előnye van — gyakorlatilag határtalan rugalmasság, kész megoldások stb.

Azonban a valóság gyakran úgy alakul (nem mi vagyunk ilyenek, hanem az élet ilyen), hogy a tesztelőnek nincs programozási képessége, de a csapatnak szeretne már most hasznot hozni. Az ilyen esetekre, a no-code koncepciót követve, a TestMace lehetővé teszi egyszerű tesztek létrehozását grafikus felületen, kódírás nélkül. Íme, hogyan néz ki a teszt létrehozásának folyamata, amely az értékeket egyenlőségre hasonlítja össze:

Miben jobb a TestMace, mint a Postman?

Ugyanakkor a grafikus szerkesztőben történő tesztelés nem zárja ki a kódalapú tesztelés lehetőségét. a tesztek kódolásának. Itt ugyanazok a könyvtárak érhetők el, mint a script csomópontban, és chai a tesztek írásához.

Gyakran előfordul, hogy bizonyos kéréseket vagy akár egy teljes forgatókönyvet többször kell végrehajtani a projekt különböző részein. Az ilyen kérések közé tartozhat egy egyedi, többlépcsős hitelesítés, a környezet kívánt állapotba állítása stb. Ha programozási nyelvek kifejezéseit használjuk, szeretnénk olyan funkciókat, amelyeket különböző alkalmazásrészekben újrahasználhatunk. A TestMace ezt a funkciót biztosít. link A csomópont. Nagyon egyszerű a használata:
1) hozzon létre egy lekérést vagy szkriptet
2) hozzon létre egy Link típusú csomópontot
3) a paramétereknél adja meg a hivatkozást az első lépésben létrehozott szkriptre

A fejlettebb változatban megadhatja, hogy a szkriptből mely dinamikus változókat továbbítson egy szinttel feljebb a hivatkozás mellett. Kicsit bonyolultan hangzik? Tegyük fel, hogy létrehoztunk egy mappát a következő névvel create-post, amelynek belsejében a csomóponthoz rendeljük a dinamikus változót postId. Most a Link csomópontban create-post-link kifejezetten megadhatja, hogy a változó postId a szülőhöz legyen rendelve create-post-link. Ez a mechanizmus (megint csak, programozói nyelven szólva) lehetővé teszi, hogy visszatérjünk az 'függvényből' származó eredménnyel. Összességében nagyszerű, teljesen DRY, és egyetlen kódsor sem sérült.

Miben jobb a TestMace, mint a Postman?

A Postmannel kapcsolatban a lekérések újrafelhasználására vonatkozó feature request 2015 óta fennáll, és úgy tűnik, hogy van néhány nyom, ami arra utal, hogy dolgoznak a problémán. A jelenlegi formájában a Postman természetesen rendelkezik a végrehajtási folyamat megváltoztatásának lehetőségével, ami elméletileg lehetővé teszi az ilyen viselkedés megvalósítását, de inkább egy piszkos hack, mint egy igazán működő megoldás.

Egyéb eltérések

  • Nagyobb ellenőrzés a változók láthatósága felett. A legalacsonyabb hatókör, amelyen belül változót lehet definiálni a Postman-ben, a gyűjtemény. A TestMace lehetővé teszi változók definiálását bármely lekéréshez vagy mappához. A Postman Share gyűjtemény lehetővé teszi csak a gyűjtemények exportálását, míg a TestMace megosztás bármely csomópontra érvényes.
  • A TestMace támogatja az öröklődő fejléceket, amelyek alapértelmezetten belerakódhatnak a gyermeklérekbe. A Postman ezzel kapcsolatban van a Linaro szakemberei fejlesztik, akik nyílt forráskódú szoftver optimalizálásával foglalkoznak ARM platformokra., és még lezárt is, de a megoldásként azt javasolják... használjon szkripteket. A TestMace-ban mindez a GUI-n keresztül konfigurálható, és lehetőség van az öröklődő fejlécek opciós kikapcsolására a konkrét leszármazottakon.
  • Undo/Redo. Nemcsak a csomópontok szerkesztésekor működik, hanem azok áthelyezése, törlése, átnevezése és egyéb olyan műveletek során is, amelyek megváltoztatják a projekt struktúráját.
  • A lekérésekhez csatolt fájlok a projekt részévé válnak, és vele együtt tárolódnak, így szépen szinkronizálódnak, ellentétben a Postmannel. (Igen, már nem kell minden alkalommal kézzel kiválasztani a fájlokat a minden indításkor és átadni a kollégáknak archívumokban.)

Olyan funkciók, amelyek már úton vannak

Nem tudtuk ellenállni a kísértésnek, hogy egy kis betekintést nyújtsunk a következő kiadások titkaiba, főleg, hogy a funkcionalitás nagyon ígéretes, és már a megjelenés előtti finomítás fázisában van. Tehát, üdvözöljük a híreket.

Funkciók

Mint ismert, a Postman-ben a dinamikus változók generálásához használják az úgynevezett dinamikus változókat. A lista lenyűgöző. A többségük funkciója álértékek generálására szolgál. Például, egy véletlenszerű e-mail generálásához ezt kell írni:

{{$randomEmail}}

Azonban mivel ezek változók (még ha dinamikusak is), nem használhatóak funkciókként: nem paraméterezhetők, így nem lehet hash-t venni a karakterláncból.

A TestMace-nél tervezzük, hogy "őszinte" funkciókat adjunk hozzá. A ${} belsejében nemcsak hivatkozhatunk a változóra, hanem funkciót is meghívhatunk. Tehát ha szükség van a hírhedt ál-e-mail generálására, egyszerűen ezt írjuk:

${faker.internet.email()}

Ami azt illeti, hogy ez egy funkció, észrevehetjük, hogy lehetőség van az objektum módszerének meghívására. És a nagy, lapos dinamikus változók listája helyett logikailag csoportosított objektumok készletét kapjuk.

De mi van, ha szeretnénk hash-t számítani egy karakterláncból? Könnyedén!

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

Észlelhetjük, hogy paraméterekként még változókat is át lehet adni! Ezen a ponton a kíváncsi olvasó gyanakodhat…

JavaScript használata a kifejezésekben

... és nem véletlenül! Amikor a funkciók követelményeit alakítottuk, rájöttünk, hogy a kifejezésekben érvényes Javascript kódot kell írni. Szóval most már szabadon írhat kifejezéseket, mint például:

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

És mindezek mellett a scriptelés nélkül, közvetlenül a bevitel mezőibe!

Ami a Postman-t illeti, ott csak a változók használhatóak, és amikor megpróbálunk egy kis kifejezést írni, a validátor panaszkodik, és megtagadja a számítását.

Miben jobb a TestMace, mint a Postman?

Fejlett automatikus kiegészítés

Jelenleg a TestMace rendelkezik a szokásos automatikus kiegészítéssel, amely így néz ki:

Miben jobb a TestMace, mint a Postman?

Itt az automatikusan kiegészített sor mellett meg van jelölve, hogy melyikhez tartozik ez a sor. Ez a mechanizmus csak a ${} zárójelek közé zárt kifejezésekben működik.

Ahogy észlelheti, vizuális jelölők kerültek hozzáadásra, amelyek jelzik a változó típusát (például szöveg, szám, tömb stb.). Emellett meg lehet változtatni az automatikus kiegészítés módját (például választhat automatikus kiegészítést változókkal vagy fejlécekkel). De ez még nem a legfontosabb!

Először is, az automatikus kiegészítés még a kifejezésekben is működik (ahol ez lehetséges). Így néz ki:

Miben jobb a TestMace, mint a Postman?

Másodszor, most az automatikus kiegészítés a szkriptekben is elérhető. Nézze meg, hogyan működik!

Miben jobb a TestMace, mint a Postman?

Ennek a funkciónak a Postman-hez való hasonlítása nem értelmes — ott az automatikus kiegészítés csak statikus változólistákra, fejlécre és azok értékeire korlátozódik (javítson ki, ha valamit elfelejtettem). A szkriptek nem kapnak automatikus kiegészítést 🙁

Zárás

Októberben egy éve indult a termékünk fejlesztése. Ezalatt rengeteget sikerült tennünk, és bizonyos szempontok alapján utolértük a versenytársainkat. De mindezek ellenére a célunk egy igazán kényelmes eszköz létrehozása az API-k kezelésére. Még sok munka vár ránk, itt van a projektünk jövőbeli fejlesztési terve: https://testmace.com/roadmap.

A visszajelzésük segít nekünk jobban tájékozódni a funkciók bőséges kínálatában, és a támogatásuk erőt és bizalmat ad abban, hogy jó úton járunk. Így alakult, hogy ma fontos nap van a projektünk számára — a TestMace kiadásának napja: ProductHunt. Kérjük, támogassa a projektünket, ez nagyon fontos számunkra. Főleg azért, mert a PH oldalunkon ma vonzó ajánlat található, és ez korlátozott ideig elérhető.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster