Miért jobb a TestMace, mint a Postman?

Miért jobb a TestMace, mint a Postman?

Hello mindenkinek, tessék TestMace! Talán sokan tudnak rólunk a miénk előző cikkek. Azoknak, akik most csatlakoztak: IDE-t fejlesztünk a TestMace API-val való együttműködéshez. A TestMace és a konkurens termékek összehasonlításakor a leggyakrabban feltett kérdés: „Miben különbözik 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 felvázoltuk az előnyeinket Postás.

Felosztás csomópontokra

Ha a Postmannal dolgozik, akkor tudja, hogy a kérési felület minden szükséges funkciót tartalmaz. Vannak szkriptek, tesztek, és valójában maguk a kérések. Ez megkönnyíti a kezdők dolgát, de nagy forgatókönyvek esetén ez a megközelítés nem rugalmas. Mi a teendő, ha több lekérdezést szeretne létrehozni és összesítést végezni rajtuk? Mi a teendő, ha egy parancsfájlt kíván végrehajtani kérés nélkül, vagy több logikailag elválasztott parancsfájlt egymás után? Végül is érdemes elkülöníteni a teszteket a szokásos segédprogram-szkriptektől. Ezenkívül a „minden funkcionalitás hozzáadása egy csomópontba” megközelítés nem skálázható – az interfész gyorsan túlterhelődik.

A TestMace kezdetben az összes funkciót különböző típusú csomópontokra osztja. Szeretnél kérni? Ez a tiéd kérés lépése csomópont Szeretnél forgatókönyvet írni? Ez a tiéd forgatókönyv csomópont Szüksége van tesztekre? Kérem - kijelentés csomópont Ó, igen, ezt az egészet még be lehet csomagolni mappa csomópont És mindez könnyen kombinálható egymással. Ez a megközelítés nemcsak nagyon rugalmas, hanem az egységes felelősség elvének megfelelően lehetővé teszi, hogy csak azt használja, amire pillanatnyilag valóban szüksége van. Miért van szükségem szkriptekre és tesztekre, ha csak kérést szeretnék benyújtani?

Ember által olvasható projektformátum

A TestMace és a Postman között fogalmi különbség van a tárolás módjában. A Postmanban minden kérés valahol a helyi tárhelyen tárolódik. Ha több felhasználó között kell megosztani a kéréseket, akkor a beépített szinkronizálást kell használnia. Valójában ez egy általánosan elfogadott megközelítés, de nem mentes a hátrányaitól. Mi a helyzet az adatbiztonsággal? Végül is előfordulhat, hogy egyes vállalatok irányelvei nem teszik lehetővé az adatok harmadik felekkel történő tárolását. Azonban úgy gondoljuk, hogy a TestMace kínál valami jobbat! Ennek a fejlesztésnek a neve „ember által olvasható projektformátum”.

Kezdjük azzal, hogy a TestMace-ben elvileg van egy „projekt” entitás. Az alkalmazást pedig eredetileg a projektek verziókezelő rendszerekben való tárolásának szem előtt tartásával fejlesztették ki: a projektfát szinte egyenként vetítik a fájlstruktúrára, tárolási formátumként a yaml-t használják (kiegészítő zárójelek és vesszők nélkül), és a Az egyes csomópontok fájlábrázolása részletesen le van írva a megjegyzésekkel ellátott dokumentációban. De a legtöbb esetben nem fog ott keresni – minden mezőnévnek van logikai neve.

Mit ad ez a felhasználónak? Ez lehetővé teszi a csapat munkafolyamatának nagyon rugalmas megváltoztatását, az ismert megközelítések használatával. Például a fejlesztők tárolhatnak egy projektet ugyanabban a lerakatban, mint a háttérrendszer. Az ágakban a kódbázis megváltoztatása mellett a fejlesztő javíthatja a meglévő lekérdezési szkripteket és teszteket. Miután végrehajtotta a módosításokat az adattáron (git, svn, mercurial - ami a legjobban tetszik), a CI (az Ön kedvence, nem kényszerítette ki senki) elindítja a konzol segédprogramunkat testmace-cli, és a végrehajtás után kapott jelentést (például a testmace-cli-ben is támogatott junit formátumban) elküldjük a megfelelő rendszernek. A fent említett biztonsági probléma pedig már nem probléma.

Mint látható, a TestMace nem kényszeríti ki az ökoszisztémáját és paradigmáját. Ehelyett könnyen illeszkedik a kialakult folyamatokba.

Dinamikus változók

A TestMace a kód nélküli koncepciót követi: ha egy probléma kód használata nélkül megoldható, igyekszünk biztosítani ezt a lehetőséget. A változókkal való munka pontosan az a fajta funkció, ahol a legtöbb esetben programozás nélkül is megteheti.

Példa: választ kaptunk a szervertől, és a válasz egy részét szeretnénk elmenteni egy változóba. A Postmanban egy tesztszkriptben (ami önmagában furcsa) ilyesmit írnánk:

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

Véleményünk szerint azonban egy ilyen egyszerű és gyakran használt forgatókönyv forgatókönyvének megírása feleslegesnek tűnik. Ezért a TestMace-ben lehetőség van arra, hogy a válasz egy részét a grafikus felület segítségével hozzárendeljük egy változóhoz. Nézd, milyen egyszerű:

Miért jobb a TestMace, mint a Postman?

És most minden kéréssel ez a dinamikus változó frissül. De tiltakozhat, azzal érvelve, hogy a Postás megközelítés rugalmasabb, és nem csak megbízást tesz lehetővé, hanem bizonyos előfeldolgozást is. A következőképpen módosíthatja az előző példát:

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

Nos, erre a célra a TestMace rendelkezik forgatókönyv csomópont, amely lefedi ezt a forgatókönyvet. Az előző, de a TestMace által már végrehajtott eset reprodukálásához létre kell hoznia egy script csomópontot a kérést követően, és a következő kódot kell használnia szkriptként:

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

Mint látható, a csomópontok összetétele itt is jól szolgált. És egy ilyen egyszerű esethez, mint fentebb leírtuk, egyszerűen hozzárendelheti a kifejezést ${crypto.MD5($response.data)} GUI-n keresztül létrehozott változó!

Tesztek készítése GUI-n keresztül

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

A valóság azonban sokszor olyan (mi nem ilyenek vagyunk, az élet ilyen), hogy egy tesztelőnek nincs programozói tudása, de szeretne most hasznot hozni a csapatnak. Ilyen esetekben a No-code koncepciót követve a TestMace lehetővé teszi egyszerű tesztek létrehozását grafikus felhasználói felületen keresztül anélkül, hogy szkripteket kellene írni. Így néz ki például egy olyan teszt létrehozásának folyamata, amely összehasonlítja az egyenlőség értékeit:

Miért jobb a TestMace, mint a Postman?

A tesztek grafikus szerkesztőben történő létrehozása azonban nem zárja ki a lehetőséget tesztek írása kódban. Ugyanazok a könyvtárak vannak itt, mint a szkriptcsomópontban, és chai tesztek írására.

Gyakran előfordulnak olyan helyzetek, amikor egy bizonyos lekérdezést vagy akár egy teljes szkriptet többször is le kell hajtani a projekt különböző részein. Ilyen kérések például az egyéni többlépcsős engedélyezés, a környezet kívánt állapotba állítása stb. Általánosságban elmondható, hogy a programozási nyelvekről beszélve szeretnénk olyan funkciókat, amelyeket újra fel lehet használni az alkalmazás különböző részein. A TestMace-ben ezt a funkciót a link csomópont Használata nagyon egyszerű:
1) hozzon létre egy lekérdezést vagy szkriptet
2) hozzon létre egy Link típusú csomópontot
3) a paraméterekben adjon meg egy hivatkozást az első lépésben létrehozott szkriptre

Egy fejlettebb verzióban megadhatja, hogy a szkript mely dinamikus változói kerüljenek átadásra a hivatkozáshoz képest magasabb szintre. Zavarba ejtő? Tegyük fel, hogy létrehoztunk egy mappát a névvel létrehozás-post, amelyen belül egy dinamikus változó van hozzárendelve ehhez a csomóponthoz postId. Most a Link csomópontban létrehozás-post-link kifejezetten megadhatja, hogy a változó postId egy őshöz rendelve létrehozás-post-link. Ez a mechanizmus (ismét a programozási nyelvben) használható egy „függvény” eredményének visszaadására. Általában jó, a DRY javában zajlik, és ismét egyetlen kódsor sem sérült meg.

Miért jobb a TestMace, mint a Postman?

Ami a Postmant illeti, van egy szolgáltatáskérelem a kérések újrafelhasználására 2015 óta lóg, és úgy tűnik, még van is néhány tipphogy dolgoznak ezen a problémán. Jelenlegi formájában a Postman természetesen képes megváltoztatni a végrehajtás szálát, ami elméletileg valószínűleg lehetővé teszi hasonló viselkedés megvalósítását, de ez inkább egy piszkos hack, mint egy valóban működő megközelítés.

Egyéb különbségek

  • Nagyobb ellenőrzés a változók hatóköre felett. A legkisebb hatókör, amelyen belül változó definiálható a Postmanban, a gyűjtés. A TestMace lehetővé teszi változók meghatározását bármely lekérdezéshez vagy mappához. A Postman Share gyűjteményben csak a gyűjtemények exportálását teszi lehetővé, míg a TestMace-ben a megosztás bármely csomópontnál működik
  • TestMace támogatja örökölhető fejlécek, amely alapértelmezés szerint behelyettesíthető gyermeklekérdezésekbe. A postásnak van valami ezzel kapcsolatban: a feladat, és még zárva is van, de megoldásként kínálják... szkripteket használjon. A TestMace-ben mindezt a grafikus felhasználói felületen keresztül konfigurálják, és lehetőség van az örökölt fejlécek letiltására adott leszármazottakban
  • Visszavonás/Újra. Nem csak csomópontok szerkesztésekor működik, hanem mozgatásakor, törlésekor, átnevezésekor és egyéb, a projekt szerkezetét megváltoztató műveleteknél is
  • A kérésekhez csatolt fájlok a projekt részévé válnak, és azzal együtt tárolódnak, miközben tökéletesen szinkronizálva vannak, ellentétben a Postmannal. (Igen, többé nem kell manuálisan kiválasztania a fájlokat minden indításkor, és át kell vinnie azokat az archívumban lévő kollégáknak)

Olyan funkciók, amelyek már folyamatban vannak

Nem tudtunk ellenállni a kísértésnek, hogy a következő kiadások kapcsán fellebbentsük a titok fátylát, különösen akkor, ha a funkcionalitás nagyon ízletes, és már kiadás előtti polírozáson megy keresztül. Szóval, találkozzunk.

függvények

Mint ismeretes, a Postman úgynevezett dinamikus változókat használ az értékek generálására. Ezek listája lenyűgöző és a függvények túlnyomó többsége hamis értékek generálására szolgál. Például egy véletlenszerű e-mail generálásához a következőket kell írnia:

{{$randomEmail}}

Mivel azonban ezek változók (bár dinamikusak), nem használhatók függvényként: nem paraméterezhetők, ezért nem lehet majd kivonatot venni egy karakterláncból.

Azt tervezzük, hogy „becsületes” funkciókat adunk a TestMace-hez. Közvetlenül a ${} belsejében nem csak egy változóhoz lehet hozzáférni, hanem egy függvényt is meghívhat. Azok. ha létre kell hoznia a hírhedt hamis e-mailt, egyszerűen írunk

${faker.internet.email()}

Amellett, hogy ez egy függvény, észre fogja venni, hogy lehetséges metódus meghívása egy objektumon. És a dinamikus változók nagy, lapos listája helyett logikailag csoportosított objektumok halmaza van.

Mi van, ha ki akarjuk számítani egy karakterlánc hash-jét? Könnyen!

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

Észre fogja venni, hogy akár változókat is átadhat paraméterként! Ezen a ponton egy érdeklődő olvasó gyaníthatja, hogy valami nincs rendben...

JavaScript használata a kifejezésekben

... És jó okkal! Amikor a függvényekre vonatkozó követelményeket kialakították, hirtelen arra a következtetésre jutottunk, hogy az érvényes javascriptet kifejezésekbe kell írni. Tehát most szabadon írhat olyan kifejezéseket, mint:

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

És mindezt szkriptek nélkül, közvetlenül a beviteli mezőkben!

Ami a Postman-t illeti, itt csak változókat használhat, és amikor a legkisebb kifejezést is megpróbálja leírni, a validátor átkozódik, és nem hajlandó kiszámítani.

Miért jobb a TestMace, mint a Postman?

Speciális automatikus kiegészítés

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

Miért jobb a TestMace, mint a Postman?

Itt az automatikus kiegészítõ soron kívül fel van tüntetve, hogy ez a sor mihez tartozik. Ez a mechanizmus csak a ${} zárójelekkel körülvett kifejezésekben működik.

Mint látható, vizuális markerek kerültek hozzáadásra, amelyek jelzik a változó típusát (például karakterlánc, szám, tömb stb.). Az automatikus kiegészítési módokat is módosíthatja (például kiválaszthatja az automatikus kiegészítést változókkal vagy fejlécekkel). De még csak nem is ez a legfontosabb!

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

Miért jobb a TestMace, mint a Postman?

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

Miért jobb a TestMace, mint a Postman?

Nincs értelme összehasonlítani ezt a funkciót a Postmannal - az automatikus kiegészítés csak a változók, fejlécek és értékeik statikus listáira korlátozódik (javítsatok, ha valamit elfelejtettem). A szkriptek nem fejeződnek be automatikusan :)

Következtetés

Októberben volt egy éve termékünk fejlesztésének kezdete óta. Ez idő alatt sok mindent sikerült megcsinálnunk, és bizonyos tekintetben utolértük a versenytársainkat. De bármi is legyen, célunk egy igazán kényelmes eszköz létrehozása az API-kkal való munkához. Rengeteg dolgunk van még, itt van egy hozzávetőleges terv projektünk jövő évi fejlesztéséhez: https://testmace.com/roadmap.

Visszajelzése lehetővé teszi számunkra, hogy jobban eligazodjunk a rengeteg funkció között, támogatása pedig erőt és magabiztosságot ad nekünk abban, hogy helyesen cselekszünk. Történt, hogy ma fontos nap a projektünk számára – a TestMace közzétételének napja ProductHunt. Kérjük, támogassa projektünket, ez nagyon fontos számunkra. Sőt, ma csábító ajánlat is található PH oldalunkon, és ez korlátozott

Forrás: will.com

Hozzászólás