
Üdv mindenkinek. Fokozatosan kilépünk az árnyékból, és folytatjuk a termékünkről szóló cikkek sorozatát. A bevezető cikkünk után rengeteg visszajelzést (szinte mind pozitív) és ajánlást, valamint hibajelentést kaptunk. Ma bemutatjuk a gyakorlatban, és méltányolni fogjátok az alkalmazásunk néhány funkcióját. A teljesebb tapasztalat érdekében javaslom, hogy olvasd el a dokumentációnkat a következő címen . Nos, kezdjük el!
Telepítés
Kezdjük a legnyilvánvalóbbal. Az alkalmazás elérhető és ténylegesen tesztelhető három platformon: Linux, Windows és MacOS. Az érdekes operációs rendszerhez a telepítőt letöltheted a . A Linux felhasználók számára lehetőség van . Nagy reményeink vannak, hogy hamarosan elérjük a Microsoft Store-t és az App Store-t is (szerintetek szükség van rá?).
A tesztelési forgatókönyv
Tesztalanyként a következő standard forgatókönyvet választottuk:
- bejelentkezünk: felhasználó — admin, jelszó — password
- új bejegyzést adunk hozzá
- ellenőrizzük az új bejegyzés helyes hozzáadását
Tesztelni fogunk a . Ez egy szokványos , amely tökéletesen alkalmas az ilyen alkalmazások tesztelésére. Csak annyit tettünk, hogy hozzáadtunk token alapú hitelesítést a json-server összes útvonalához, és létrehoztunk egy bejelentkezési metódust a token megszerzéséhez. Fokozatosan haladunk, lépésről lépésre fejlesztve a projektünket.
Projekt létrehozása és egy entitás létrehozásának megkísérlése hitelesítés nélkül
Először hozzunk létre egy új projektet (Fájl->Új projekt). Ha először indítod el az alkalmazást, az új projekt automatikusan megnyílik. Először próbáljunk meg egy új bejegyzés létrehozására vonatkozó kérés küldeni (hátha a bejegyzések létrehozása elérhető hitelesítés nélkül). A Project csomópont kontextusmenüjében válaszd ki az Add node -> RequestSteplehetőségeket. A csomópont nevének adjuk meg create-post. Ennek eredményeként egy új csomópont keletkezik a fában és megnyílik a csomópont fülje. Az alábbi kérésparamétereket állítjuk be:
- Kérés típusa: POST
- url:
- Kérés törzse: json az értékkel
{"title": "Új tesztmace gyors kezdő bejegyzés"}
Ha mindent jól csináltál, akkor a felület a következőképpen fog kinézni:

Ha azonban megpróbáljuk végrehajtani a kérést, a szerver 401 kódot fog visszaadni, és hitelesítés nélkül ezen a szerveren semmi esélyünk sincs. Nos, ez várható volt).
Kérelmet adunk hozzá a hitelesítéshez
Ahogyan már említettük, van egy POST végpontunk /login, amely json típusú adatokat vár a kérés törzsében: {"username": "<username>", "password": "<password>"}, ahol username és password (ugyanaz, mint az előző bekezdésben) értékekkel rendelkezik admin és password a megfelelően. Ennek az endpointnak a válaszában json formátumot kapunk {"token": ""}. Ezt fogjuk használni az azonosításhoz. Készítsünk RequestStep egy csomópontot a következő névvel login, mint szülő csomópontot Projekt csomópontot. A drag-and-drop segítségével helyezzük át ezt a csomópontot a fában feljebb, mint a create-postcsomópont. Az újonnan létrehozott kéréshez az alábbi paramétereket fogjuk megadni:
- Kérés típusa: POST
- url:
- Kérés törzse: json az értékkel
{"username": "admin", "password": "password"}
Végezze el a kérést, és kapjon egy kétszázas kódot tokennel a válaszban. Valahogy így:

Refaktorálás: távolítsuk el a domain duplikációját
Jelenleg a kérések nincsenek összekapcsolva egyetlen szcenárióba. De ez nem az egyetlen hátrány. Ha jobban megnézzük, észrevehetjük, hogy legalább a domain megduplázódik mindkét kérésben. Ez nem jó. Itt az ideje refaktorálni ezt a részt a jövőbeli szcenárióból, és ebben segíteni fognak nekünk a változók.
Elsődleges közelítésben a változók ugyanolyan szerepet játszanak, mint más hasonló eszközökben és programozási nyelvekben — a duplikáció megszüntetése, az olvashatóság növelése stb. A változókról többet olvashat itt . Ebben az esetben felhasználói változókra lesz szükségünk.
Határozzunk meg a Project szinten egy változót a csomópont szintjén domain az értékkel https://testmace-quick-start.herokuapp.com. Ehhez szükséges
- Megnyitni a lapot a megadott csomóponttal, és rákattintani a jobb felső sarokban található számológép ikonra
- Kattintson a + ADD VARIABLE
- Adja meg a változó nevét és értékét
Az esetünkben a hozzáadott változóval a párbeszéd a következőképpen fog kinézni:

OK. Most a öröklődés révén ezt a változót bármilyen mélységi szinten használhatjuk. A mi esetünkben ezek a csomópontok login és create-post. Ahhoz, hogy a szövegmezőben használhassuk a változót, meg kell írni ${}. Például, az url a bejelentkezéshez a következőképpen alakul ${domain}/login, ennek megfelelően a create-post csomópont url-ja így fog kinézni ${domain}/posts.
Így a DRY elv mentén egy kicsit javítottuk a szcenáriót.
Mentse el a tokent egy változóba
Mivel a változókról beszélünk, nézzük meg ezt a témát egy kicsit részletesebben. Jelenleg, ha sikeresen bejelentkezünk, az adott szerver egy azonosító tokent küld, amelyre szükségünk lesz a következő kérdésekben. Tartsuk meg ezt a tokent egy változóban. Mivel a változó értékét a szcenárió futása során fogjuk meghatározni, használjunk ehhez egy speciális mechanizmust — .
Először is indítsuk el a bejelentkezési kérelmet. A fülön Parsed a válaszra vigyük a kurzort a token fölé, és a kontextusmenüben (amit jobb gombbal vagy a … gomb megnyomásával hívhatunk elő) válasszuk a következőt Hozzárendelés változóhoz. Megjelenik egy párbeszédablak a következő mezőkkel:
- Útvonal — mely részét veszi a válasznak (esetünkben ez a
body.token) - Jelenlegi érték — mi az érték az Útvonalon (esetünkben ez a token értéke)
- Változó neve — a változó neve, ahová Jelenlegi érték tárolva lesz. Esetünkben ez
token - Node — melyik ősben fog létrejönni a változó Változó neve. Válasszuk a Projectet
A kitöltött párbeszédablak a következőképpen néz ki:

Mostantól kezdve minden egyes csomópont végrehajtásakor login a dinamikus változó token új értéket kap a válaszból. Ez a változó a Projekt csomópontban tárolódik, és a leszármazottak számára öröklődik.
A dinamikus változók eléréséhez a következőt kell használni: $dynamicVar. Például az elmentett token eléréséhez használjuk a következőt: ${$dynamicVar.token}.
Az engedélyezési tokent a kérelmekbe
Az előző lépések során megkaptuk az engedélyezési tokent, és már csak annyit kell tennünk, hogy hozzáadjuk a Authorization fejlécet Bearer <tokenValue> minden olyan kérelmhez, ami engedélyezést igényel, beleértve a create-post. Erre több lehetőség van:
- Manuálisan másolja ki a tokent, és adja hozzá az érdeklődő kérelmek engedélyezési fejlécét. Ez a módszer működik, de csak az egyszeri „csinálom és kidobom” típusú kérelmekre korlátozódik. Többszöri végrehajtásra nem alkalmas.
- Használja az .
- Használja a
A második módszer használata nyilvánvalónak tűnik, de ezen cikk kontextusában ez a megközelítés… nem érdekes. Valóban: az engedélyezési mechanizmus kicsit már ismerős lehet más eszközökből (bár nálunk is vannak olyan dolgok, mint a ) és valószínűleg nem okoz kérdéseket.
Más dolog az alapértelmezett fejléc! Röviden, az alapértelmezett fejléc öröklődnek az HTTP-szülőktől, amelyek alapértelmezés szerint hozzáadódnak a kéréshez, ha azokat kifejezetten nem kapcsolják ki. Ezzel a funkcióval például egyedi hitelesítést valósíthatunk meg, vagy egyszerűen megszabadulhatunk a duplikálódástól a forgatókönyvekben. Alkalmazzuk ezt a funkciót a token átvitelére a fejlécben.
Korábban elővigyázatosan elmentettük a tokent egy dinamikus változóba $dynamicVar.token a Project csomópont szintjén. Most a következő lépéseket kell tennünk:
- Meg kell határozni az alapértelmezett fejlécet
Authorizationaz értékkelBearer ${$dynamicVar.token}a Project csomópont szintjén. Ehhez a Project csomópont felületén nyissa meg az alapértelmezett fejléc párbeszédpanelt (gomb: Fejlécek a jobb felső sarokban) és adja hozzá a megfelelő fejlécet. A kitöltött értékekkel rendelkező párbeszédpanel a következőképpen fog kinézni:

- Kapcsolja ki ezt a fejlécet a login kérésből. Ez érthető: a bejelentkezés pillanatában még nem rendelkezünk tokennel, és ezzel a kéréssel valójában be fogjuk állítani. Ezért a login kérés felületén a Fejlécek a Öröklött fában vegyük ki a pipát az Authorization fejlécből.
Ezzel végeztünk. Mostantól a hitelesítési fejléc minden olyan kéréshez hozzáadódik, amelyek a Project csomópont gyermekei, a login csomópont kivételével. Tehát ezen a ponton a forgatókönyvünk már készen áll, csak el kell indítanunk. A forgatókönyv indításához válassza a Run a Project csomópont kontextusmenüjéből.
Ellenőrizzük a közzétett bejegyzés helyességét
Ezen a ponton a forgatókönyvünk képes bejelentkezni, és a hitelesítési token használatával bejegyzést létrehozni. Azonban meg kell győződnünk arról, hogy az újonnan létrehozott bejegyzés helyes névvel rendelkezik. Vagyis lényegében a következőket kell tenni:
- Küldjön kérést a bejegyzés ID-jának lekérdezésére,
- Ellenőrizze, hogy a szerverről érkező név megfelel a bejegyzés létrehozásakor megadott névvel.
Nézzük az első lépést. Mivel az ID értéke a szkript végrehajtásakor határozódik meg, dinamikus változót kell létrehoznunk (nevezzük el postId) a Project csomópont szintjén. Ezt már tudjuk, csak annyit kell tennünk, hogy hozzáférünk a create-post részhez. Csak egy kérést kell létrehoznunk a bejegyzés lekérdezésére a megadott ID-vel. Ehhez hozzunk létre egy RequestStep Mentse el a tokent egy változóbaget-post a következő paraméterekkel: Kérés típusa: GET
- URL: ${domain}/posts/${$dynamicVar.postId}
- URL: ${domain}/posts/${$dynamicVar.postId}
A második lépés megvalósításához meg kell ismerkednünk a csomóponttal. Az Assertion csomópont lehetővé teszi, hogy ellenőrzéseket végezzünk bizonyos kérésekre. Minden Assertion csomópont tartalmazhat több állítást (ellenőrzést). További információkat az összes típusú assertion-ről a . Használni fogjuk Compare assertion-t az equaloperátorral. Az assertion-k létrehozásának több módja van:
- Hosszú. Kézi létrehozás a RequestStep csomópont kontextusmenüjéből egy Assertion csomópont létrehozásával. A létrehozott Assertion csomópontban add hozzá a kívánt assertion-t és töltsd ki a mezőket.
- Gyors. Létrehozható az Assertion csomópont az assertion-nal együtt a RequestStep csomópont válaszából a kontextusmenü segítségével.
A második módszert fogjuk használni. Így fog kinézni az esetünkre.

Aki nem értette, itt a következő történik:
- Kérdést küldünk a csomópontban, a következő paraméterekkel:
- A Parsed a válasznál megnyitjuk a kontextusmenüt és kiválasztjuk Create assertion -> Compare -> Equal
Gratulálok, elkészítettük az első tesztet! Egyszerű, ugye? Most már teljes mértékben futtathatod a szkriptet és élvezheted az eredményt. Csak egy kicsit át kell alakítanod és külön változóba kell helyezned title . De ezt házi feladatnak hagyjuk nektek :)
Zárás
Ebben az útmutatóban teljes forgatókönyvet hoztunk létre, és egyben áttekintettük a termékünk néhány funkcióját. Természetesen nem használtuk ki az összes funkciót, és a következő cikkekben részletesen bemutatjuk a TestMace lehetőségeit. Kövessétek a frissítéseket!
P.S. Aki lustálkodna az összes lépés reprodukálásával, kedvesen létrehoztuk a cikkben szereplő projekttel. Ezt az Fájl -> Open project opció segítségével nyithatjátok meg, és válasszátok a Project mappát.
Forrás: habr.com

