TestMace. Hiter začetek

TestMace. Hiter začetek

Pozdravljeni vsi skupaj. Počasi prihajamo iz sence in nadaljujemo serijo člankov o našem produktu. Po prejšnji preglednega članka smo prejeli veliko povratnih informacij (večinoma pozitivnih), predlogov in poročil o napakah. Danes bomo pokazali TestMace v akciji in lahko boste cenili nekatere funkcije naše aplikacije. Za bolj popolno potopitev vam svetujem, da si ogledate našo dokumentacijo na http://docs-ru.testmace.com. Torej, gremo!

Namestitev

Začnimo z banalnostjo. Aplikacija je na voljo in dejansko testirana na treh platformah - Linux, Windows, MacOS. Namestitveni program za OS, ki vas zanima, lahko prenesete iz naši spletni strani. Za uporabnike Linuxa je možna namestitev snap paket. Resnično upamo, da bosta Microsoft Store in App Store kmalu prišli do tega (Ali je potrebno? Kaj menite?).

Eksperimentalni scenarij

Za testni predmet smo izbrali naslednji standardni scenarij:

  • Prijava: uporabnik - admin, geslo - geslo
  • dodajte nov vnos
  • Preverimo, ali je bil zapis pravilno dodan

Testirali bomo naprej https://testmace-quick-start.herokuapp.com/. To je normalno json-strežnik, kot nalašč za testiranje takšnih aplikacij. Pravkar smo dodali avtorizacijo z žetonom na vse poti json-strežnika in ustvarili način prijave za prejemanje tega žetona. Premikali se bomo postopoma in postopoma izboljševali naš projekt.

Ustvarjanje projekta in poskus ustvarjanja entitete brez pooblastila

Najprej ustvarimo nov projekt (file->Nov projekt). Če aplikacijo zaženete prvič, se samodejno odpre nov projekt. Najprej poskusimo narediti zahtevo za ustvarjanje novega zapisa (v primeru, da je ustvarjanje zapisov na voljo brez avtorizacije). Izberite elemente v kontekstnem meniju vozlišča projekta Dodaj vozlišče -> RequestStep. Nastavite ime vozlišča na create-post. Posledično bo v drevesu ustvarjeno novo vozlišče in odprl se bo zavihek za to vozlišče. Nastavimo naslednje parametre zahteve:

TestMace. Hiter začetek

Če pa poskusimo izpolniti zahtevo, bo strežnik vrnil kodo 401 in brez avtorizacije na tem strežniku ne bomo dobili ničesar. No, na splošno, kot je bilo pričakovano).

Dodajanje zahteve za avtorizacijo

Kot že rečeno, imamo končno točko POST /login, ki sprejme json kot telo zahteve v obliki: {"username": "<username>", "password": "<password>"}Če username и password (spet iz uvodnega odstavka zgoraj) imajo pomene admin и password oz. Kot odgovor ta končna točka vrne json like {"token": "<token>"}. Uporabili ga bomo za avtorizacijo. Ustvarjajmo RequestStep vozlišče z imenom prijava, bo deloval kot prednik Projekt vozlišče S funkcijo povleci in spusti premakni dano vozlišče v drevesu višje od vozlišča create-post. Na novo ustvarjeni zahtevi nastavimo naslednje parametre:

Izvedemo zahtevo in prejmemo dvestoto kodo z žetonom v odgovoru. Nekaj ​​podobnega:

TestMace. Hiter začetek

Refactoring: odstranitev podvajanja domene

Zaenkrat zahteve niso povezane v en sam skript. Vendar to ni edina pomanjkljivost. Če pozorno pogledate, opazite, da je v obeh zahtevah vsaj domena podvojena. Slabo. Čas je, da preoblikujemo ta del prihodnjega skripta in pri tem nam bodo pomagale spremenljivke.

V prvem približku imajo spremenljivke enako vlogo kot v drugih podobnih orodjih in programskih jezikih - odpravljajo podvajanje, povečujejo berljivost itd. Več o spremenljivkah lahko preberete v našo dokumentacijo. V tem primeru bomo potrebovali uporabniške spremenljivke.

Definirajmo spremenljivko na ravni vozlišča projekta domain s pomenom https://testmace-quick-start.herokuapp.com. Za to je potrebno

  • Odprite zavihek s tem vozliščem in kliknite ikono kalkulatorja zgoraj desno
  • Kliknite na + DODAJ SPREMENLJIVKO
  • Vnesite ime in vrednost spremenljivke
    V našem primeru bo pogovorno okno z dodano spremenljivko videti takole:

TestMace. Hiter začetek

V REDU. Zdaj lahko zaradi dedovanja to spremenljivko uporabimo v potomcih katere koli ravni gnezdenja. V našem primeru so to vozlišča prijava и create-post. Če želite uporabiti spremenljivko v besedilnem polju, morate pisati ${<variable_name>}. URL za prijavo je na primer pretvorjen v ${domain}/login, oziroma za create-post url vozlišča bo videti tako ${domain}/posts.

Tako smo po principu DRY nekoliko izboljšali scenarij.

Shranite žeton v spremenljivko

Ker govorimo o spremenljivkah, naj to temo nekoliko razširimo. Trenutno v primeru uspešne prijave od strežnika prejmemo avtorizacijski žeton, ki ga bomo potrebovali pri nadaljnjih zahtevah. Shranimo ta žeton v spremenljivko. Ker vrednost spremenljivke bo določena med izvajanjem skripta, za to uporabljamo poseben mehanizem - dinamične spremenljivke.

Najprej izvedimo zahtevo za prijavo. V zavihku Razčlenjeno odgovorite, premaknite kurzor nad žeton in v kontekstnem meniju (ki ga prikličete z desno miškino tipko ali s klikom na gumb ...) izberite element Dodeli spremenljivki. Prikaže se pogovorno okno z naslednjimi polji:

  • Pot — kateri del odgovora je vzet (v našem primeru je body.token)
  • Trenutna vrednost — katera vrednost je na poti (v našem primeru je to vrednost žetona)
  • Ime spremenljivke — ime spremenljivke where Trenutna vrednost bo ohranjena. V našem primeru bo tako token
  • Node — v katerem od prednikov bo ustvarjena spremenljivka Ime spremenljivke. Izberimo Projekt

Dokončano pogovorno okno izgleda takole:

TestMace. Hiter začetek

Zdaj vsakič, ko se vozlišče izvede prijava dinamična spremenljivka token bo posodobljen z novo vrednostjo iz odgovora. In ta spremenljivka bo shranjena v Projekt vozlišče in bo zaradi dedovanja na voljo potomcem.

Za dostop do dinamičnih spremenljivk morate uporabiti vgrajena spremenljivka $dynamicVar. Na primer, za dostop do shranjenega žetona morate poklicati ${$dynamicVar.token}.

Avtorizacijski žeton posredujemo v zahteve

V prejšnjih korakih smo prejeli avtorizacijski žeton in vse kar moramo storiti je, da dodamo glavo Authorization s pomenom Bearer <tokenValue> v vseh zahtevah, ki zahtevajo avtorizacijo, vključno z create-post. To lahko storite na več načinov:

  1. Ročno kopirajte žeton in dodajte avtorizacijsko glavo zahtevam, ki vas zanimajo. Metoda deluje, vendar je njena uporaba omejena le na zahteve tipa "izdelano in vrženo stran". Ni primeren za ponavljajoče se izvajanje skriptov
  2. Uporabite funkcionalnost pooblastilo.
  3. Za uporabo privzete glave

Uporaba druge metode se zdi očitna, vendar je v kontekstu tega članka ta pristop... nezanimiv. No, res: avtorizacijski mehanizem plus minus vam je znan iz drugih orodij (čeprav imamo stvari, kot je avtorizacijsko dedovanje) in verjetno ne bo sprožil vprašanj.

Druga stvar so privzete glave! Na kratko, privzete glave so podedovane glave HTTP, ki so privzeto dodane zahtevi, razen če so izrecno onemogočene. S to funkcionalnostjo lahko na primer implementirate avtorizacijo po meri ali se preprosto znebite podvajanja v skriptih. Uporabimo to funkcijo za posredovanje žetona v glavah.

Prej smo žeton preudarno shranili v dinamično spremenljivko $dynamicVar.token na ravni vozlišča projekta. Vse kar ostane je narediti naslednje:

  1. Določite privzeti naslov Authorization s pomenom Bearer ${$dynamicVar.token} na ravni vozlišča projekta. Če želite to narediti, morate v vmesniku projekta vozlišča odpreti pogovorno okno s privzetimi naslovi (gumb Glave v zgornjem desnem kotu) in dodajte ustrezen naslov. Pogovorno okno z izpolnjenimi vrednostmi bo videti takole:
    TestMace. Hiter začetek
  2. Onemogočite to glavo iz zahteve za prijavo. To je razumljivo: v trenutku prijave žetona še nimamo in ga bomo namestili s to zahtevo. Zato v prijavnem vmesniku zahteve v zavihku Glave na območju Dedno počistite polje Pooblastilo za glavo.

To je vse. Zdaj bo avtorizacijska glava dodana vsem zahtevam, ki so podrejeni vozlišču projekta, razen vozlišču za prijavo. Izkazalo se je, da na tej stopnji že imamo pripravljen skript in vse, kar moramo storiti, je, da ga zaženemo. Skript lahko zaženete tako, da izberete Run v kontekstnem meniju vozlišča projekta.

Preverjanje pravilnosti izdelave objave

Na tej stopnji se lahko naš skript prijavi in ​​z avtorizacijskim žetonom ustvari objavo. Vendar moramo zagotoviti, da ima novo ustvarjena objava pravilno ime. To je v bistvu vse, kar ostane, je narediti naslednje:

  • Pošljite zahtevo za prejem objave po id,
  • Preverite, ali se ime, prejeto s strežnika, ujema z imenom, poslanim ob ustvarjanju objave

Poglejmo prvi korak. Ker se vrednost id določi med izvajanjem skripta, morate ustvariti dinamično spremenljivko (recimo ji postId) iz vozlišča create-post na ravni vozlišča projekta. Že vemo, kako to storiti, samo glejte razdelek Shranite žeton v spremenljivko. Vse kar ostane je ustvariti zahtevo za prejem objave s tem ID-jem. Če želite to narediti, ustvarimo RequestStep get-post z naslednjimi parametri:

  • Vrsta zahteve: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Za izvedbo drugega koraka se moramo seznaniti s Trditev vozel. Vozlišče Assertion je vozlišče, ki vam omogoča pisanje čekov za določene zahteve. Vsako vozlišče trditve lahko vsebuje več trditev (preverjanja). Več o vseh vrstah trditev si lahko preberete v naši dokumentacijo. Bomo uporabili Compare trditev z operaterjem equal. Obstaja več načinov za ustvarjanje trditev:

  1. Dolga. Ročno ustvarite vozlišče Assertion iz kontekstnega menija vozlišča RequestStep. V vozlišču Assertion, ki je ustvarjeno, dodajte trditev, ki vas zanima, in izpolnite polja.
  2. hitro Ustvarite vozlišče Assertion skupaj s trditvijo iz odgovora vozlišča RequestStep z uporabo kontekstnega menija

Uporabimo drugo metodo. Tako bo to izgledalo v našem primeru.

TestMace. Hiter začetek

Za tiste, ki ne razumejo, se dogaja tole:

  1. Naredite zahtevo v vozlišču get-post
  2. V zavihku Razčlenjeno odgovorite, pokličite kontekstni meni in izberite Ustvari trditev -> primerjaj cene -> enako

Čestitamo, ustvarili smo naš prvi test! Preprosto, kajne? Zdaj lahko v celoti zaženete skript in uživate v rezultatu. Vse kar ostane je, da ga malo predelamo in odstranimo title v ločeno spremenljivko. Ampak to vam bomo pustili kot domačo nalogo)

Zaključek

V tem priročniku smo ustvarili popoln scenarij in hkrati pregledali nekatere funkcije našega izdelka. Seveda nismo izkoristili vseh funkcionalnosti in v naslednjih člankih bomo podali podroben pregled zmožnosti TestMace. Ostani na vezi!

PS Za tiste, ki so preleni za reprodukcijo vseh korakov, smo jih prijazno zabeležili repozitorij s projektom iz članka. Lahko ga odprete z file -> Odprti projekt in izberite mapo Projekt.

Vir: www.habr.com

Dodaj komentar