
Tere kĂ”igile. Me hakkame tasapisi vĂ€lja tulema varjust ja jĂ€tkame artiklite seeriat meie tootest. PĂ€rast ĂŒlevaateartiklit saime palju tagasisidet (enamasti positiivset), ettepanekuid ja veateateid. TĂ€na nĂ€itame rakendust töös ja teil on vĂ”imalus hinnata mĂ”ningaid meie rakenduse funktsioone. Kogu teabe saamiseks soovitan tutvuda meie dokumentatsiooniga aadressil . Nii et lĂ€hme edasi!
Installeerimine
Alustame banaalsusest. Rakendus on saadaval ja seda saab testida kolmel platvormil â Linux, Windows, MacOS. Saate huvipakkuva operatsioonisĂŒsteemi installifaili alla laadida . Linuxi kasutajatele on olemas vĂ”imalus installida . Loodame, et peagi jĂ”uame ka Microsoft Store'i ja App Store'i (aga kas see on vajalik? Mida arvate?).
Katseteema
Katses kasutame jÀrgmist tavalist stsenaariumit:
- logime sisse: kasutaja â admin, parool â password
- lisame uue kirje
- kontrollime, kas kirje on Ôigesti lisatud
Testime rakendust . See on tavaline , suurepÀrane rakenduste testimiseks. Oleme just lisanud JSON-serveri kÔigile teedele tokeni autentimise ja loonud login meetodi selle tokeni saamiseks. JÀtkame samm-sammult, et jÀrk-jÀrgult tÀiustama oma projekti.
Projekti loomine ja proovimine luua ĂŒksus ilma autentimiseta
Alustame uue projekti loomisega (File->Uus projekt). Kui kĂ€ivitate rakenduse esmakordselt, avaneb uus projekt automaatselt. Esmalt proovime teha pĂ€ringu uue kirje loomiseks (juhtudel, kui kirje loomine on vĂ”imalik ilma autentimiseta). Valige kontekstimenĂŒĂŒs projektis punkte Lisa sĂ”lm -> RequestStep. SĂ”lme nimeks paneme create-post. Tulemuseks luuakse puusse uus sĂ”lm ja avatakse antud sĂ”lme vahekaart. MÀÀrame jĂ€rgmised pĂ€ringu parameetrid:
- PĂ€ringu tĂŒĂŒp: POST
- URL:
- PÀringu keha: JSON vÀÀrtusega
{"title": "Uus testmace kiire alguse postitus"}
Kui kÔik on Ôigesti tehtud, nÀeb liides vÀlja jÀrgmine:

Siiski, kui proovime pÀringut teostada, naaseb server koodi 401 ja ilma autentimiseta ei ole meil sellel serveril midagi teha. Noh, see on muidugi ootuspÀrane).
Lisame autentimise pÀringu
Nagu juba mainitud, on meil POST lÔpp-punkt /login, mis aktsepteerib pÀringu kehas jÀrgmise kujuga json: {"username": "", "password": ""}, kus username ja password (taas, eelnevast sissejuhatusest) omavad vÀÀrtusi admin ja password vastavalt. Vastuseks tagastab see lÔpp-punkt jÀrgmise kujuga json {"token": ""}. Kasutame seda autentimiseks. Loome RequestStep sÔlme nimega login, milleks vanemaks on Projekt sÔlm. Asetage see sÔlm lohista ja viska funktsiooni abil puu struktuuris kÔrgemale kui sÔlm create-post. Seadistame Àsja loodud pÀringule jÀrgmised parameetrid:
- PĂ€ringu tĂŒĂŒp: POST
- URL:
- PÀringu keha: JSON vÀÀrtusega
{"username": "admin", "password": "password"}
Teeme pÀringu ja saame vastuseks kahesaja koodi koos tokeniga. Nii see vÀlja nÀeb:

Refaktoreerimine: eemaldame domeeni dubleerimise
Praegu ei ole pĂ€ringud seotud ĂŒhtseks stsenaariumiks. Kuid see ei ole ainus puudus. Kui hoolikalt vaadata, vĂ”ib mĂ€rkida, et vĂ€hemalt domeen on dubleeritud mĂ”lemas pĂ€ringus. See ei ole hea. On aeg refaktoreerida see osa tulevases stsenaariumis ning selleks aitavad meid muutujad.
Esialgu tĂ€idavad muutujad sama rolli nagu teistes sarnastes tööriistades ja programmeerimiskeeltes â dubleerimise kĂ”rvaldamine, loetavuse tĂ”stmine jms. TĂ€iendavat teavet muutujate kohta leiate . Sel juhul on meil vaja kasutaja muutujaid.
MÀÀratleme muutuja tasemel Project sÔlme domain vÀÀrtusega https://testmace-quick-start.herokuapp.com. Selleks on vajalik
- Avage selle sĂ”lme vahekaart ja klĂ”psake paremas ĂŒlaservas kalkulaatori ikoonil
- KlÔpsake + ADD VARIABLE
- Sisestage muutuja nimi ja vÀÀrtus
Meie puhul nÀeb dialoog lisatud muutuja puhul vÀlja jÀrgmiselt:

OK. NĂŒĂŒd pĂ€rimise tĂ”ttu saame seda muutuja kasutada mis tahes tasandi alluvates. login ja create-postSelleks, et tekstivĂ€ljas kasutada muutujat, tuleb kirjutada ${}. NĂ€iteks, sisselogimise URL muutub ${domain}/login, seega create-post sĂ”lme URL nĂ€eb vĂ€lja nagu ${domain}/posts.
Sel viisil oleme DRY pÔhimÔtet jÀrgides stsenaariumi veidi parandanud.
Salvestame tokeni muutuja
Kuna juba rÀÀgime muutujatest, arendame seda teemat veidi rohkem. Praegu saame eduka sisselogimise korral serverilt autentimise tokeni, mida vajame edaspidistes pĂ€ringutes. Salvestame selle tokeni muutujasse. Kuna muutujate vÀÀrtus mÀÀratakse skripti kĂ€itumise ajal, kasutame selleks spetsiaalset mehhanismi â .
KĂ”igepealt teeme sisselogimise pĂ€ringu. Vahekaardil Parsed kursoriga tokenile ja kontekstimenĂŒĂŒs (mida saab avada kas hiire parema nupuga vĂ”i vajutades nuppu âŠ) valige koht, Assign to variable. Avaneb dialoog jĂ€rgmiste vĂ€ljadega:
- Path â millist osa vastusest vĂ”etakse (meie puhul see on
body.token) - Praegune vÀÀrtus â milline vÀÀrtus asub teel Path (meie puhul see on tokeni vÀÀrtus)
- Variable name â muutuja nimi, kuhu Praegune vÀÀrtus salvestatakse. Meie puhul on see
token - SĂ”lm â millises esivanemas muutuja luuakse Variable name. Valime Project
TÀidetud dialoog nÀeb vÀlja jÀrgmine:

NĂŒĂŒd, iga kord, kui sĂ”lm login dĂŒnaamiline muutuja token uuendatakse uue vÀÀrtusega vastusest. Ja see muutuja salvestatakse Projekt sĂ”lm ja tĂ€nu pĂ€rimisele on see saadaval jĂ€rglastele.
Kuidas pöörduda dĂŒnaamiliste muutujate juurde tuleb kasutada $dynamicVar. NĂ€iteks, et pÀÀseda juurde salvestatud tokenile, tuleb kutsuda ${$dynamicVar.token}.
edastame autoriseerimise tokeni pÀringutesse.
Eelmistel etappidel saime autoriseerimise tokeni ja kÔik, mida tuleb teha, on lisada Authorization. pÀisega Bearer kÔigisse autoriseerimist nÔudvatesse pÀringutesse, sealhulgas create-post. Selleks on mitu vÔimalust:
- KĂ€sitsi kopeerida token ja lisada autoriseerimise pĂ€is huvipakkuvatesse pĂ€ringutesse. See meetod on toimiv, kuid selle rakendamine piirneb ainult selliste pĂ€ringutega nagu âtegin ja viskasin Ă€raâ. Korduvate stsenaariumite jaoks ei sobi.
- Kasuta funktsionaalsust .
- Kasutage
Teise meetodi kasutamine nĂ€ib iseenesestmĂ”istetav, kuid antud artikli kontekstis ei tundu selline lĂ€henemine... igav. TĂ”de on see, et autoriseerimise mehhanism on teile vĂ€hemal vĂ”i rohkemal mÀÀral tuttav teistest tööriistadest (kuigi meil on sellised asjad nagu ) ja ei tekita Ă€kki kĂŒsimusi.
Teised pealkirjad on muud! Ăhte kokku vĂ”ttes on vaikimisi pealkirjad pĂ€ritud HTTP-pealkirjad, mis lisatakse pĂ€ringule vaikimisi, kui neid selgesĂ”naliselt ei keelata. Selle funktsiooni abil saab nĂ€iteks rakendada kohandatud autentimist vĂ”i lihtsalt vĂ€ltida dubleerimist stsenaariumites. Rakendame seda funktsiooni tokeni edastamiseks pealkirjades.
Varem oleme ettevaatlikult salvestanud tokeni dĂŒnaamilisse muutujasse $dynamicVar.token projekti sĂ”lme tasemel. JÀÀb veel teha jĂ€rgmine:
- MÀÀrata vaikimisi pealkiri
Authorization.vÀÀrtusegaBearer ${$dynamicVar.token}projekti sĂ”lme tasemel. Selleks tuleb projekti sĂ”lme liideses avada vaikimisi pealkirjade dialoog (nupp Headers paremas ĂŒlanurgas) ja lisada vastav pealkiri. TĂ€idetud vÀÀrtustega dialoog nĂ€eb vĂ€lja jĂ€rgmine:

- KÀivita see pealkiri login pÀringust. See on arusaadav: logimise ajal ei ole meil veel tokenit ja selle pÀringuga me seda tÀpselt mÀÀrame. Seega, login pÀringu liideses, sakk Headers valdkonnas Inherited eemaldame Authorization pealkirja mÀrgise.
Sellega on kĂ”ik. NĂŒĂŒd lisatakse autoriseerimise pealkiri kĂ”ikidesse pĂ€ringutesse, mis on Project sĂ”lme all, vĂ€lja arvatud login sĂ”lm. See tĂ€hendab, et meil on nĂŒĂŒd stsenaarium valmis ja peame selle vaid kĂ€ivitama. Stsenaariumi kĂ€ivitamiseks valige menĂŒĂŒpunkt Run Project sĂ”lme kontekstimenĂŒĂŒs.
Kontrollime postituse loomise Ôigsust
Sellel etapil oskab meie stsenaarium siseneda ja, kasutades autoriseerimisetokenit, postitust luua. Siiski peame veenduma, et Àsja loodud postitus on Ôige nimega. Nii et pÔhimÔtteliselt on jÀÀnud teha jÀrgmist:
- Saada pÀring postituse saamiseks id jÀrgi,
- Kontrollida, et serverist saadud nimi vastab postituse loomisel edastatud nimele.
Vaatame esimest sammu. Kuna id vÀÀrtus mÀÀratakse skripti tĂ€itmise ajal, on vajalik luua dĂŒnaamiline muutuja (nimetame selle postId), mis asub sĂ”lmedes create-post Project sĂ”lme tasemel. Kuidas seda teha, teame juba, piisab, kui vaadata jaotist Salvestame tokeni muutuja. JÀÀnud on vaid luua pĂ€ring postituse saamiseks antud id jĂ€rgi. Selleks loome RequestStep get-post jĂ€rgnevate parameetritega:
- PĂ€ringu tĂŒĂŒp: GET
- URL: ${domain}/posts/${$dynamicVar.postId}
Teiseks sammuks peame tutvuma sÔlmiga. Assertion sÔlm on sÔlm, mis vÔimaldab kirjutada kontrollmoodulite teatud pÀringutele. Igal assertion sÔlmel vÔib olla mitu vÀidet (kontrolli). Lisateavet kÔigi assertion-ite liikide kohta leiate meie . Me kasutame VÔrdle assertionit operaatoriga vÔrdne. Assertion-ite loomiseks on mitu viisi:
- Pikk. KĂ€skige kontekstimenĂŒĂŒst RequestStep sĂ”lmes luua Assertion sĂ”lm. Loomisel lisage soovitud assertion ja tĂ€itke vĂ€ljad.
- Kiire. Looge Assertion sĂ”lm koos assertion-iga RequestStep sĂ”lme vastusest kontekstimenĂŒĂŒ abil.
Kasutame teist meetodit. Nii see meie juhul vÀlja nÀeb.

Neile, kes ei saanud aru, toimub siin jÀrgmist:
- Tehke pÀring sÔlmes get-post
- Vahekaardil Parsed vastuse kontekstimenĂŒĂŒs ja valige Loo assertion -> VĂ”rdle -> VĂ”rdne
Palju Ă”nne, me lĂ”ime esimese testi! Lihtne, eks? NĂŒĂŒd saate skripti tĂ€ielikult kĂ€ivitada ja nautida tulemust. JÀÀnud on vaid veidi refaktoreerida ja viia see aadress eraldi muutujasse. Kuid jĂ€tame selle teile kodutööks)
KokkuvÔte
Selles juhendis oleme loonud tĂ€ieliku stsenaariumi ja samal ajal teinud ĂŒlevaate mĂ”nesid meie toote funktsioonidest. Loomulikult ei kasutanud me kaugeltki kogu funktsionaalsust ning jĂ€rgmistes artiklites teeme TestMace'i vĂ”imaluste pĂ”hjaliku ĂŒlevaate. JĂ€lgige uuendusi!
P.S. Neile, kellel on laisk kÔike samme korrata, oleme lahkelt kallanud artiklis kajastatud projekti. Selle avamiseks saab kasutada File -> Ava projekt ja valida kaust Project.
Allikas: habr.com

