TestMace. Fillimi i shpejtë

TestMace. Fillimi i shpejtë

Pershendetje te gjitheve. Po dalim dalëngadalë nga hija dhe po vazhdojmë serinë e artikujve rreth produktit tonë. Pas e mëparshme rishikimi i artikullit, kemi marrë shumë reagime (kryesisht pozitive), sugjerime dhe raporte të gabimeve. Sot do të tregojmë TestMace në veprim dhe ju do të jeni në gjendje të vlerësoni disa nga veçoritë e aplikacionit tonë. Për një zhytje më të plotë, ju këshilloj t'i referoheni dokumentacionit tonë në http://docs-ru.testmace.com. Pra, le të shkojmë!

Instalim

Le të fillojmë me banalitetin. Aplikacioni është i disponueshëm dhe aktualisht i testuar në tre platforma - Linux, Windows, MacOS. Mund të shkarkoni instaluesin për sistemin operativ që ju intereson faqen tonë të internetit. Për përdoruesit e Linux-it është e mundur të instalohet paketë e parakohshme. Ne vërtet shpresojmë që Dyqani i Microsoft dhe App Store së shpejti do t'i afrohen atij (A është e nevojshme? Çfarë mendoni ju?).

Skenari eksperimental

Ne zgjodhëm skenarin standard të mëposhtëm si lëndën tonë të testimit:

  • Hyrja: përdorues - administrator, fjalëkalim - fjalëkalim
  • shtoni një hyrje të re
  • Le të kontrollojmë nëse rekordi është shtuar saktë

Ne do të testojmë https://testmace-quick-start.herokuapp.com/. Kjo eshte normale json-server, perfekt për testimin e aplikacioneve të tilla. Sapo shtuam autorizimin me shenjë në të gjitha rrugët e serverit json dhe krijuam një metodë identifikimi për të marrë këtë shenjë. Ne do të ecim progresivisht, duke përmirësuar gradualisht projektin tonë.

Krijimi i një projekti dhe përpjekje për të krijuar një entitet pa autorizim

Së pari, le të krijojmë një projekt të ri (Skedar->Projekt i ri). Nëse po hapni aplikacionin për herë të parë, një projekt i ri do të hapet automatikisht. Së pari, le të përpiqemi të bëjmë një kërkesë për të krijuar një rekord të ri (në rast se krijimi i regjistrimeve është i disponueshëm pa autorizim). Zgjidhni artikuj nga menyja e kontekstit të nyjes së projektit Shto nyje -> Hapi i kërkesës. Vendosni emrin e nyjës në krijo-post. Si rezultat, një nyje e re do të krijohet në pemë dhe do të hapet një skedë për këtë nyje. Le të vendosim parametrat e mëposhtëm të kërkesës:

TestMace. Fillimi i shpejtë

Megjithatë, nëse përpiqemi të përmbushim kërkesën, serveri do të kthejë një kod 401 dhe pa autorizim nuk do të marrim asgjë në këtë server. Epo, në përgjithësi, siç pritej).

Shtimi i një kërkese autorizimi

Siç u tha tashmë, ne kemi një pikë fundore POST /login, e cila merr json si një trup kërkese të formës: {"username": "<username>", "password": "<password>"}Ku username и password (përsëri, nga paragrafi hyrës i mësipërm) kanë kuptime admin и password përkatësisht. Si përgjigje, kjo pikë fundore kthen json like {"token": "<token>"}. Ne do ta përdorim atë për autorizim. Le të krijojmë Hapi i kërkesës nyje me emër hyrje, do të veprojë si paraardhës Projekt nyje Duke përdorur drag-and-drop, zhvendosni një nyje të caktuar në pemë më lart se nyja krijo-post. Le të vendosim parametrat e mëposhtëm për kërkesën e krijuar rishtazi:

Le të ekzekutojmë kërkesën dhe të marrim kodin e dyqindtë me shenjën në përgjigje. Diçka si kjo:

TestMace. Fillimi i shpejtë

Rifaktorimi: heqja e dyfishimit të domenit

Deri më tani kërkesat nuk janë të lidhura në një skenar të vetëm. Por kjo nuk është e vetmja pengesë. Nëse shikoni nga afër, do të vini re se të paktën domeni është i dyfishuar në të dyja kërkesat. Jo mirë. Është koha për të rifaktoruar këtë pjesë të skenarit të ardhshëm dhe variablat do të na ndihmojnë me këtë.

Në një përafrim të parë, variablat luajnë të njëjtin rol si në mjete të tjera të ngjashme dhe gjuhë programimi - duke eliminuar dyfishimin, duke rritur lexueshmërinë, etj. Mund të lexoni më shumë rreth variablave në dokumentacionin tonë. Në këtë rast, do të na duhen variabla të përdoruesit.

Le të përcaktojmë një variabël në nivelin e nyjes së projektit domain me kuptim https://testmace-quick-start.herokuapp.com. Për këtë është e nevojshme

  • Hapni skedën me këtë nyje dhe klikoni në ikonën e kalkulatorit lart djathtas
  • Klikoni mbi + SHTO VARIABLE
  • Futni emrin dhe vlerën e ndryshores
    Në rastin tonë, dialogu me variablin e shtuar do të duket kështu:

TestMace. Fillimi i shpejtë

NE RREGULL. Tani, për shkak të trashëgimisë, ne mund ta përdorim këtë variabël në pasardhësit e çdo niveli foleje. Në rastin tonë këto janë nyje hyrje и krijo-post. Për të përdorur një ndryshore në një fushë teksti, duhet të shkruani ${<variable_name>}. Për shembull, url-ja e hyrjes është konvertuar në ${domain}/login, respektivisht për krijo-post url-ja e nyjës do të duket si ${domain}/posts.

Kështu, të udhëhequr nga parimi DRY, ne e kemi përmirësuar pak skenarin.

Ruajeni shenjën në një ndryshore

Meqenëse po flasim për variabla, le të zgjerohemi pak në këtë temë. Për momentin, në rast të hyrjes me sukses, marrim nga serveri një token autorizimi, i cili do të na nevojitet në kërkesat e mëpasshme. Le ta ruajmë këtë shenjë në një ndryshore. Sepse vlera e ndryshores do të përcaktohet gjatë ekzekutimit të skriptit, ne përdorim një mekanizëm të veçantë për këtë - variablat dinamike.

Së pari, le të kryejmë një kërkesë për hyrje. Në skedën I analizuar përgjigjuni, lëvizni kursorin mbi token dhe në menunë e kontekstit (e cila thirret ose me butonin e djathtë të miut ose duke klikuar në butonin ...) zgjidhni artikullin Cakto në variabël. Do të shfaqet një dialog me fushat e mëposhtme:

  • Rrugë - cila pjesë e përgjigjes është marrë (në rastin tonë është body.token)
  • Vlera e tanishme - çfarë vlere qëndron përgjatë Shtegut (në rastin tonë kjo është vlera simbolike)
  • Emri i ndryshueshëm - emri i ndryshores ku Vlera e tanishme do të ruhet. Në rastin tonë do të jetë token
  • Nyjë - në cilin prej paraardhësve do të krijohet ndryshorja Emri i ndryshueshëm. Le të zgjedhim Projektin

Dialogu i përfunduar duket si ky:

TestMace. Fillimi i shpejtë

Tani çdo herë që nyja ekzekutohet hyrje ndryshore dinamike token do të përditësohet me vlerën e re nga përgjigja. Dhe kjo variabël do të ruhet në Projekt nyja dhe, falë trashëgimisë, do të jetë e disponueshme për pasardhësit.

Për të hyrë në variablat dinamike, duhet të përdorni variabël e integruar $dynamicVar. Për shembull, për të hyrë në një shenjë të ruajtur, duhet të telefononi ${$dynamicVar.token}.

Ne e kalojmë shenjën e autorizimit në kërkesa

Në hapat e mëparshëm morëm shenjën e autorizimit dhe gjithçka që duhet të bëjmë është të shtojmë një kokë Authorization me kuptim Bearer <tokenValue> në të gjitha kërkesat që kërkojnë autorizim, duke përfshirë krijo-post. Ka disa mënyra për ta bërë këtë:

  1. Kopjoni manualisht shenjën dhe shtoni një titull autorizimi në kërkesat e interesit. Metoda funksionon, por përdorimi i saj është i kufizuar vetëm në kërkesat e llojit "të bëra dhe të hedhura". Jo i përshtatshëm për ekzekutimin e përsëritur të skripteve
  2. Përdorni funksionalitetin autorizimi.
  3. për t'u përdorur titujt e paracaktuar

Përdorimi i metodës së dytë duket i qartë, por në kontekstin e këtij artikulli, kjo qasje nuk është...interesante. Epo, me të vërtetë: mekanizmi i autorizimit plus minus është i njohur për ju nga mjete të tjera (edhe nëse kemi gjëra të tilla si autorizimi trashëgimi) dhe nuk ka gjasa të ngrejë pyetje.

Një tjetër gjë janë titujt e paracaktuar! Me pak fjalë, titujt e paracaktuar janë tituj të trashëguar HTTP që i shtohen kërkesës si parazgjedhje, përveç nëse janë çaktivizuar në mënyrë të qartë. Duke përdorur këtë funksionalitet, mund, për shembull, të zbatoni autorizimin me porosi ose thjesht të hiqni qafe dyfishimin në skriptet. Le ta përdorim këtë veçori për të kaluar një shenjë në kokë.

Më parë, ne e ruajtëm me kujdes shenjën në një ndryshore dinamike $dynamicVar.token në nivelin e nyjës së projektit. Gjithçka që mbetet është të bëni sa më poshtë:

  1. Përcaktoni titullin e paracaktuar Authorization me kuptim Bearer ${$dynamicVar.token} në nivelin e nyjës së projektit. Për ta bërë këtë, në ndërfaqen e projektit të nyjës ju duhet të hapni një dialog me titujt e paracaktuar (buton Headers në këndin e sipërm djathtas) dhe shtoni një titull përkatës. Dialogu me vlerat e mbushura do të duket kështu:
    TestMace. Fillimi i shpejtë
  2. Çaktivizoni këtë titull nga kërkesa e hyrjes. Kjo është e kuptueshme: në momentin e identifikimit, ne nuk kemi ende një token dhe do ta instalojmë me këtë kërkesë. Prandaj, në ndërfaqen e hyrjes së kërkesës në skedën Headers në zonën e I trashëguar zgjidh kokën e Autorizimit.

Kjo eshte e gjitha. Tani titulli i autorizimit do t'u shtohet të gjitha kërkesave që janë fëmijë të nyjes së Projektit, përveç nyjes së hyrjes. Rezulton se në këtë fazë tashmë e kemi gati një skenar dhe gjithçka që duhet të bëjmë është ta lançojmë atë. Mund ta ekzekutoni skriptin duke zgjedhur run në menynë e kontekstit të nyjës së projektit.

Kontrollimi i korrektësisë së krijimit të postimit

Në këtë fazë, skripti ynë mund të identifikohet dhe, duke përdorur një shenjë autorizimi, të krijojë një postim. Megjithatë, duhet të sigurohemi që postimi i sapokrijuar të ketë emrin e saktë. Kjo është, në thelb, gjithçka që mbetet është të bëjmë sa më poshtë:

  • Dërgoni një kërkesë për të marrë një postim me ID,
  • Kontrolloni që emri i marrë nga serveri përputhet me emrin e dërguar gjatë krijimit të postimit

Le të shohim hapin e parë. Meqenëse vlera e ID-së përcaktohet gjatë ekzekutimit të skriptit, duhet të krijoni një ndryshore dinamike (le ta quajmë atë postId) nga nyja krijo-post në nivelin e nyjës së projektit. Ne tashmë e dimë se si ta bëjmë këtë, thjesht referojuni seksionit Ruajeni shenjën në një ndryshore. E tëra që mbetet është të krijoni një kërkesë për të marrë një postim duke përdorur këtë ID. Për ta bërë këtë, le të krijojmë një RequestStep marrë-post me parametrat e mëposhtëm:

  • Lloji i kërkesës: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Për të zbatuar hapin e dytë, duhet të njihemi me Pohimi nyjë. Një nyje e pohimit është një nyje që ju lejon të shkruani kontrolle për kërkesa specifike. Çdo nyje Pohimi mund të përmbajë disa pohime (kontrolle). Ju mund të lexoni më shumë për të gjitha llojet e pohimeve nga ne dokumentacionin. ne do të përdorim Compare pohim me operator equal. Ka disa mënyra për të krijuar pohime:

  1. E gjatë. Krijoni manualisht një nyje Pohimi nga menyja e kontekstit të nyjes RequestStep. Në nyjen e krijuar Pohim, shtoni pohimin e interesit dhe plotësoni fushat.
  2. Shpejt. Krijo një nyje Pohimi së bashku me një pohim nga përgjigja e nyjes RequestStep duke përdorur menunë e kontekstit

Le të përdorim metodën e dytë. Kështu do të duket për rastin tonë.

TestMace. Fillimi i shpejtë

Për ata që nuk e kuptojnë, ja çfarë po ndodh:

  1. Bëni një kërkesë në nyjë marrë-post
  2. Në skedën I analizuar përgjigjuni, telefononi menynë e kontekstit dhe zgjidhni Krijo pohim -> krahasim -> i barabartë

Urime, ne kemi krijuar testin tonë të parë! E thjeshtë, apo jo? Tani mund ta ekzekutoni plotësisht skenarin dhe të shijoni rezultatin. Mbetet vetëm ta rifaktojmë pak dhe ta heqim title në një variabël të veçantë. Por ne do ta lëmë këtë për ju si detyrë shtëpie)

Përfundim

Në këtë udhëzues, ne krijuam një skenar të plotë dhe në të njëjtën kohë shqyrtuam disa nga veçoritë e produktit tonë. Sigurisht, ne nuk kemi përdorur të gjithë funksionalitetin dhe në artikujt e mëposhtëm do të ofrojmë një pasqyrë të detajuar të aftësive të TestMace. Qëndroni të sintonizuar!

P.S. Për ata që janë shumë dembelë për të riprodhuar të gjitha hapat, ne i kemi regjistruar me dashamirësi depo me projektin nga artikulli. Mund ta hapni me Skedar -> Projekt i hapur dhe zgjidhni dosjen Project.

Burimi: www.habr.com

Shto një koment