TestMace. Rýchly štart

TestMace. Rýchly štart

Ahojte všetci. Pomaly vystupujeme z tieňa a pokračujeme v sérii článkov o našom produkte. Po predchádzajúca recenziu článku, dostali sme veľa spätnej väzby (väčšinou pozitívnych), návrhov a hlásení chýb. Dnes si ukážeme TestMace v akcii a budete môcť oceniť niektoré funkcie našej aplikácie. Pre úplnejšie ponorenie vám odporúčam pozrieť si našu dokumentáciu na adrese http://docs-ru.testmace.com. Tak, poďme!

Inštalácia

Začnime banalitou. Aplikácia je dostupná a reálne testovaná na troch platformách – Linux, Windows, MacOS. Môžete si stiahnuť inštalačný program pre OS, o ktorý máte záujem našej webovej stránke. Pre užívateľov Linuxu je možná inštalácia snap balíček. Naozaj dúfame, že Microsoft Store a App Store sa k tomu čoskoro dostanú (Je to potrebné? Čo myslíte?).

Experimentálny scenár

Ako predmet testu sme si vybrali nasledujúci štandardný scenár:

  • Login: user - admin, password - password
  • pridať nový záznam
  • Skontrolujeme, či bol záznam pridaný správne

Budeme testovať ďalej https://testmace-quick-start.herokuapp.com/. Toto je normálne json-server, ideálne na testovanie takýchto aplikácií. Práve sme pridali autorizáciu pomocou tokenu do všetkých trás json-server a vytvorili sme spôsob prihlásenia na prijímanie tohto tokenu. Postupne sa budeme posúvať a postupne zlepšovať náš projekt.

Vytvorenie projektu a pokus o vytvorenie entity bez autorizácie

Najprv vytvorte nový projekt (rezeň->Nový projekt). Ak aplikáciu spúšťate prvýkrát, automaticky sa otvorí nový projekt. Najprv skúsme zadať požiadavku na vytvorenie nového záznamu (v prípade, že vytváranie záznamov je dostupné bez autorizácie). Vyberte položky z kontextovej ponuky uzla projektu Pridať uzol -> RequestStep. Nastavte názov uzla na vytvoriť príspevok. V dôsledku toho sa v strome vytvorí nový uzol a otvorí sa karta pre tento uzol. Nastavíme nasledujúce parametre požiadavky:

TestMace. Rýchly štart

Ak sa však pokúsime splniť požiadavku, server vráti kód 401 a bez autorizácie na tento server nič nedostaneme. Vo všeobecnosti, ako sa očakávalo).

Pridanie žiadosti o autorizáciu

Ako už bolo povedané, máme koncový bod POST /login, ktorý berie json ako telo požiadavky formulára: {"username": "<username>", "password": "<password>"}Kde username и password (opäť z úvodného odseku vyššie) majú významy admin и password resp. Ako odpoveď tento koncový bod vráti json like {"token": "<token>"}. Použijeme ho na autorizáciu. Poďme tvoriť RequestStep uzol s názvom Prihlásiť sa, bude vystupovať ako predok projekt uzol Pomocou drag-and-drop presuňte daný uzol v strome vyššie ako uzol vytvoriť príspevok. Nastavme nasledujúce parametre novovytvorenej žiadosti:

Vykonajme požiadavku a v odpovedi dostaneme dvestotý kód s tokenom. Niečo také:

TestMace. Rýchly štart

Refaktoring: odstránenie duplicitných domén

Žiadosti zatiaľ nie sú prepojené do jedného skriptu. Ale to nie je jediná nevýhoda. Ak sa pozriete pozorne, všimnete si, že aspoň doména je v oboch žiadostiach duplikovaná. Nie dobré. Je čas zrefaktorovať túto časť budúceho skriptu a premenné nám s tým pomôžu.

Pri prvom priblížení majú premenné rovnakú úlohu ako v iných podobných nástrojoch a programovacích jazykoch – eliminujú duplicitu, zvyšujú čitateľnosť atď. Viac o premenných si môžete prečítať v našu dokumentáciu. V tomto prípade budeme potrebovať užívateľské premenné.

Definujme premennú na úrovni uzla projektu domain so zmyslom https://testmace-quick-start.herokuapp.com, Z tohto dôvodu je to potrebné

  • Otvorte kartu s týmto uzlom a kliknite na ikonu kalkulačky vpravo hore
  • Kliknite na + PRIDAŤ PREMENNÚ
  • Zadajte názov a hodnotu premennej
    V našom prípade bude dialóg s pridanou premennou vyzerať takto:

TestMace. Rýchly štart

OK. Teraz, kvôli dedičnosti, môžeme túto premennú použiť v potomkoch akejkoľvek úrovne vnorenia. V našom prípade sú to uzly Prihlásiť sa и vytvoriť príspevok. Ak chcete použiť premennú v textovom poli, musíte písať ${<variable_name>}. Napríklad prihlasovacia adresa URL sa skonvertuje na ${domain}/login, respektíve pre vytvoriť príspevok url uzla bude vyzerať ${domain}/posts.

Na základe princípu DRY sme teda scenár mierne vylepšili.

Uložte token do premennej

Keďže hovoríme o premenných, poďme si túto tému trochu rozviesť. Momentálne v prípade úspešného prihlásenia dostaneme zo servera autorizačný token, ktorý budeme potrebovať pri ďalších požiadavkách. Uložme tento token do premennej. Pretože hodnota premennej bude určená počas vykonávania skriptu, používame na to špeciálny mechanizmus - dynamické premenné.

Najprv vykonáme žiadosť o prihlásenie. V záložke Analyzované odpoveď, presuňte kurzor na token a v kontextovom menu (ktoré sa vyvolá buď pravým tlačidlom myši alebo kliknutím na tlačidlo ...) vyberte položku Priradiť k premennej. Zobrazí sa dialógové okno s nasledujúcimi poľami:

  • Cesta — ktorá časť odpovede je prevzatá (v našom prípade je to body.token)
  • Súčasná hodnota — aká hodnota leží pozdĺž cesty (v našom prípade je to hodnota tokenu)
  • Názov premennej — názov premennej kde Súčasná hodnota budú zachované. V našom prípade to tak bude token
  • Uzol — v ktorom z predkov vznikne premenná Názov premennej. Vyberieme Project

Dokončené dialógové okno vyzerá takto:

TestMace. Rýchly štart

Teraz zakaždým, keď sa uzol vykoná Prihlásiť sa dynamická premenná token sa aktualizuje o novú hodnotu z odpovede. A táto premenná bude uložená v projekt uzol a vďaka dedeniu budú dostupné potomkom.

Ak chcete získať prístup k dynamickým premenným, musíte použiť vstavaná premenná $dynamicVar. Napríklad, ak chcete získať prístup k uloženému tokenu, musíte zavolať ${$dynamicVar.token}.

Autorizačný token odovzdávame do žiadostí

V predchádzajúcich krokoch sme dostali autorizačný token a všetko, čo musíme urobiť, je pridať hlavičku Authorization so zmyslom Bearer <tokenValue> vo všetkých žiadostiach vyžadujúcich autorizáciu, vrátane vytvoriť príspevok. Existuje niekoľko spôsobov, ako to urobiť:

  1. Manuálne skopírujte token a pridajte autorizačnú hlavičku k požadovaným požiadavkám. Metóda funguje, ale jej použitie je obmedzené len na požiadavky typu „vyrobené a vyhodené“. Nie je vhodné na opakované vykonávanie skriptov
  2. Použite funkciu autorizáciu.
  3. použitie predvolené hlavičky

Použitie druhej metódy sa zdá byť samozrejmé, ale v kontexte tohto článku je tento prístup... nezaujímavý. No, naozaj: autorizačný mechanizmus plus mínus je vám známy z iných nástrojov (aj keď máme veci ako autorizačné dedičstvo) a je nepravdepodobné, že by vyvolával otázky.

Ďalšia vec sú predvolené hlavičky! Stručne povedané, predvolené hlavičky sú zdedené hlavičky HTTP, ktoré sa predvolene pridávajú do požiadavky, pokiaľ nie sú výslovne zakázané. Pomocou tejto funkcionality môžete napríklad implementovať vlastnú autorizáciu alebo sa jednoducho zbaviť duplicit v skriptoch. Využime túto funkciu na odovzdanie tokenu v hlavičkách.

Predtým sme token prezieravo uložili do dynamickej premennej $dynamicVar.token na úrovni uzla projektu. Zostáva len urobiť nasledovné:

  1. Definujte predvolený názov Authorization so zmyslom Bearer ${$dynamicVar.token} na úrovni uzla projektu. Ak to chcete urobiť, v rozhraní projektu uzla musíte otvoriť dialógové okno s predvolenými nadpismi (tlačidlo Záhlavie v pravom hornom rohu) a pridajte zodpovedajúci názov. Dialóg s vyplnenými hodnotami bude vyzerať takto:
    TestMace. Rýchly štart
  2. Zakázať túto hlavičku v žiadosti o prihlásenie. Je to pochopiteľné: v čase prihlásenia ešte nemáme token a nainštalujeme ho s touto požiadavkou. Preto v prihlasovacom rozhraní požiadavky v záložke Záhlavie v oblasti zdedený zrušte začiarknutie hlavičky Autorizácia.

To je všetko. Teraz sa hlavička autorizácie pridá ku všetkým požiadavkám, ktoré sú potomkami uzla projektu, okrem prihlasovacieho uzla. Ukazuje sa, že v tejto fáze už máme pripravený scenár a stačí ho len spustiť. Skript môžete spustiť výberom beh v kontextovej ponuke uzla Projekt.

Kontrola správnosti vytvorenia príspevku

V tejto fáze sa náš skript môže prihlásiť a pomocou autorizačného tokenu vytvoriť príspevok. Musíme sa však uistiť, že novovytvorený príspevok má správny názov. To je v podstate všetko, čo zostáva urobiť nasledovné:

  • Pošlite žiadosť o prijatie príspevku podľa ID,
  • Skontrolujte, či sa meno prijaté zo servera zhoduje s menom odoslaným pri vytváraní príspevku

Pozrime sa na prvý krok. Keďže sa hodnota id určuje počas vykonávania skriptu, musíte vytvoriť dynamickú premennú (nazvime ju postId) z uzla vytvoriť príspevok na úrovni uzla projektu. Už vieme, ako to urobiť, pozrite si časť Uložte token do premennej. Zostáva len vytvoriť žiadosť o prijatie príspevku pomocou tohto ID. Ak to chcete urobiť, vytvorte krok RequestStep get-post s nasledujúcimi parametrami:

  • Typ požiadavky: GET
  • Webová adresa: ${domain}/posts/${$dynamicVar.postId}

Na realizáciu druhého kroku sa musíme zoznámiť s Tvrdenie uzol. Uzol Assertion je uzol, ktorý vám umožňuje písať kontroly pre konkrétne požiadavky. Každý uzol Assertion môže obsahovať niekoľko tvrdení (kontrol). Viac o všetkých typoch tvrdení si môžete prečítať v našom článku dokumentáciu. Budeme používať Compare tvrdenie s operátorom equal. Existuje niekoľko spôsobov, ako vytvoriť tvrdenia:

  1. Dlhé. Manuálne vytvorte uzol Assertion z kontextovej ponuky uzla RequestStep. Vo vytvorenom uzle Tvrdenie pridajte tvrdenie o záujme a vyplňte polia.
  2. Rýchlo. Vytvorte uzol Assertion spolu s tvrdením z odpovede uzla RequestStep pomocou kontextovej ponuky

Využime druhú metódu. Takto to bude vyzerať v našom prípade.

TestMace. Rýchly štart

Pre tých, ktorí nerozumejú, tu je to, čo sa deje:

  1. Urobte požiadavku v uzle get-post
  2. V záložke Analyzované odpovedať, vyvolajte kontextové menu a vyberte Vytvorte tvrdenie -> POROVNAŤ -> Rovný

Gratulujeme, vytvorili sme náš prvý test! Jednoduché, však? Teraz môžete skript úplne spustiť a vychutnať si výsledok. Zostáva len trochu prefaktorovať a vybrať title do samostatnej premennej. Ale to necháme na vás ako domácu úlohu)

Záver

V tejto príručke sme vytvorili plnohodnotný scenár a zároveň sme si prezreli niektoré funkcie nášho produktu. Samozrejme, nevyužili sme všetku funkcionalitu a v nasledujúcich článkoch prinesieme podrobný prehľad možností TestMace. Zostaňte naladení!

PS Pre tých, ktorí sú príliš leniví reprodukovať všetky kroky, sme láskavo zaznamenali Úložisko s projektom z článku. Môžete ho otvoriť pomocou rezeň -> Otvorený projekt a vyberte priečinok Projekt.

Zdroj: hab.com

Pridať komentár