Tere kõigile. Tuleme vaikselt varjust välja ja jätkame oma toote kohta käivat artiklite sarja. Pärast eelmine ülevaateartikkel, saime palju tagasisidet (enamasti positiivset), ettepanekuid ja veateateid. Täna näitame TestMace töös ja saate hinnata mõningaid meie rakenduse funktsioone. Täielikuma keelekümbluse jaoks soovitan teil tutvuda meie dokumentatsiooniga aadressil http://docs-ru.testmace.com. Nii et lähme!
Paigaldamine
Alustame banaalsusest. Rakendus on saadaval ja tegelikult testitud kolmel platvormil – Linux, Windows, MacOS. Saate alla laadida teile huvipakkuva OS-i installiprogrammi meie veebisait. Linuxi kasutajatele on võimalik installida klõpsatav pakett. Loodame väga, et Microsoft Store ja App Store jõuavad peagi selleni (Kas see on vajalik? Mis te arvate?).
Eksperimentaalne stsenaarium
Valisime katsealuseks järgmise standardstsenaariumi:
Logi sisse: kasutaja - admin, parool - parool
lisada uus kirje
Kontrollime, kas kirje on õigesti lisatud
Testime edasi https://testmace-quick-start.herokuapp.com/. See on normaalne json-server, sobib selliste rakenduste testimiseks. Lisasime just kõikidele json-serveri marsruutidele loa autoriseerimise ja lõime selle loa saamiseks sisselogimismeetodi. Liigume järk-järgult, täiustades oma projekti järk-järgult.
Projekti loomine ja volituseta olemi loomise katse
Kõigepealt loome uue projekti (fail->Uus projekt). Kui käivitate rakenduse esimest korda, avaneb uus projekt automaatselt. Esmalt proovime teha uue kirje loomise taotluse (juhul, kui kirjete loomine on ilma loata saadaval). Valige projektisõlme kontekstimenüüst üksused Lisa sõlm -> RequestStep. Määrake sõlme nimeks loo-postitus. Selle tulemusena luuakse puusse uus sõlm ja avaneb selle sõlme vahekaart. Määrame järgmised päringu parameetrid:
Taotluse sisu: json väärtusega {"title": "New testmace quick start post"}
Kui tegite kõik õigesti, näeb liides välja järgmine:
Kui aga proovime taotlust täita, tagastab server 401 koodi ja ilma volituseta me sellesse serverisse midagi ei saa. Noh, üldiselt, nagu oodatud).
Autoriseerimistaotluse lisamine
Nagu juba öeldud, on meil POST-i lõpp-punkt /login, mis võtab vormi päringu kehaks json: {"username": "<username>", "password": "<password>"}Kus username и password (jällegi ülaltoodud sissejuhatavast lõigust) omavad tähendusi admin и password vastavalt. Vastuseks tagastab see lõpp-punkt jsoni sarnase {"token": "<token>"}. Kasutame seda autoriseerimiseks. Loome RequestStep nimega sõlm Logi sisse, toimib esivanemana Projekt sõlm Pukseerides liigutage puu antud sõlm sõlmest kõrgemale loo-postitus. Määrame vastloodud päringule järgmised parameetrid:
Seni pole päringud ühte skripti lingitud. Kuid see pole ainus puudus. Kui vaatate tähelepanelikult, märkate, et vähemalt domeen on mõlemas taotluses dubleeritud. Pole hea. On aeg tulevase skripti see osa ümber kujundada ja muutujad aitavad meid selles.
Esimesel hinnangul täidavad muutujad sama rolli nagu teistes sarnastes tööriistades ja programmeerimiskeeltes – kõrvaldades dubleerimise, parandades loetavust jne. Lisateavet muutujate kohta saate lugeda meie dokumentatsioon. Sel juhul vajame kasutaja muutujaid.
Määratleme muutuja projekti sõlme tasemel domain tähendusega https://testmace-quick-start.herokuapp.com... Selleks on vaja
Avage selle sõlmega vahekaart ja klõpsake paremas ülanurgas kalkulaatori ikooni
Kliki + LISA MUUTUV
Sisestage muutuja nimi ja väärtus
Meie puhul näeb lisatud muutujaga dialoog välja järgmine:
OKEI. Nüüd saame pärilikkuse tõttu kasutada seda muutujat mis tahes pesastustaseme järeltulijates. Meie puhul on need sõlmed Logi sisse и loo-postitus. Muutuja kasutamiseks tekstiväljal tuleb kirjutada ${<variable_name>}. Näiteks teisendatakse sisselogimise URL ${domain}/login, vastavalt loo-postitus sõlme url näeb välja selline ${domain}/posts.
Seega oleme DRY põhimõttest juhindudes stsenaariumi veidi parandanud.
Salvestage tunnus muutujasse
Kuna me räägime muutujatest, siis laiendame seda teemat veidi. Hetkel saame eduka sisselogimise korral serverilt autoriseerimisloa, mida vajame järgmistes päringutes. Salvestame selle märgi muutujaks. Sest muutuja väärtus määratakse skripti täitmise ajal, kasutame selleks spetsiaalset mehhanismi - dünaamilised muutujad.
Esmalt sooritame sisselogimistaotluse. Vahekaardil Parsitud vastake, viige kursor märgi kohale ja valige kontekstimenüüst (mida kutsutakse kas hiire parema nupuga või klõpsates nupul ...) soovitud element Määra muutujale. Ilmub dialoog järgmiste väljadega:
Tee — milline osa vastusest võetakse (meie puhul on body.token)
Praegune väärtus — milline väärtus on rajal (meie puhul on see sümboolne väärtus)
Muutuja nimi — muutuja nimi kus Praegune väärtus säilib. Meie puhul saab see olema token
sõlme — millises esivanemas muutuja luuakse Muutuja nimi. Valime projekti
Valminud dialoog näeb välja selline:
Nüüd iga kord, kui sõlm on käivitatud Logi sisse dünaamiline muutuja token värskendatakse vastuse uue väärtusega. Ja see muutuja salvestatakse Projekt sõlm ja tänu pärandile on see kättesaadav järeltulijatele.
Dünaamiliste muutujate juurde pääsemiseks peate kasutama sisseehitatud muutuja$dynamicVar. Näiteks salvestatud märgile juurdepääsu saamiseks peate helistama ${$dynamicVar.token}.
Edastame autoriseerimismärgi päringutesse
Eelmistes etappides saime autoriseerimisloa ja meil pole vaja teha muud, kui lisada päis Authorization tähendusega Bearer <tokenValue> kõigis autoriseerimist nõudvates taotlustes, sealhulgas loo-postitus. Selleks on mitu võimalust.
Kopeerige luba käsitsi ja lisage huvipakkuvatele päringutele volituse päis. Meetod töötab, kuid selle kasutamine on piiratud ainult "valmistatud ja ära visatud" tüüpi taotlustega. Ei sobi skriptide korduvaks täitmiseks
Teise meetodi kasutamine tundub ilmselge, kuid selle artikli kontekstis on selline lähenemine... ebahuvitav. Noh, tõesti: autoriseerimismehhanism pluss miinus on teile tuttav teistest tööriistadest (isegi kui meil on selliseid asju nagu volitatud pärand) ja see ei tekita tõenäoliselt küsimusi.
Teine asi on vaikepäised! Lühidalt öeldes on vaikepäised päritud HTTP-päised, mis lisatakse päringule vaikimisi, kui need pole otseselt keelatud. Seda funktsiooni kasutades saate näiteks rakendada kohandatud autoriseerimist või lihtsalt vabaneda skriptide dubleerimisest. Kasutame seda funktsiooni päistesse märgi edastamiseks.
Varem salvestasime märgi ettevaatlikult dünaamiliseks muutujaks $dynamicVar.token projekti sõlme tasemel. Kõik, mis jääb üle, on teha järgmist.
Määrake vaikepealkiri Authorization tähendusega Bearer ${$dynamicVar.token} projekti sõlme tasemel. Selleks peate sõlme projektiliideses avama dialoogi vaikepealkirjadega (nupp Päised paremas ülanurgas) ja lisage vastav pealkiri. Täidetud väärtustega dialoog näeb välja järgmine:
Keela see päis sisselogimistaotluses. See on arusaadav: sisselogimise ajal meil veel žetoon puudub ja installime selle selle taotlusega. Seetõttu vahekaardil oleva päringu sisselogimisliideses Päised sisse Päritud tühjendage päise Autoriseerimine märge.
See on kõik. Nüüd lisatakse autoriseerimispäis kõikidele projektisõlme alamtaotlustele, välja arvatud sisselogimissõlm. Selgub, et selles etapis on meil skript juba valmis ja meil pole vaja teha muud, kui see käivitada. Saate skripti käivitada, valides jooks projektisõlme kontekstimenüüs.
Postituse loomise õigsuse kontrollimine
Selles etapis saab meie skript sisse logida ja autoriseerimisluba kasutades postituse luua. Peame aga veenduma, et vastloodud postitusel oleks õige nimi. See tähendab, et sisuliselt jääb üle vaid teha järgmist.
Saatke taotlus postituse saamiseks ID-ga,
Kontrolli, et serverist saadud nimi ühtiks postituse loomisel saadetud nimega
Vaatame esimest sammu. Kuna id väärtus määratakse skripti täitmise käigus, siis tuleb luua dünaamiline muutuja (nimetame seda postId) sõlmest loo-postitus projekti sõlme tasemel. Me juba teame, kuidas seda teha, vaadake lihtsalt jaotist Salvestage tunnus muutujasse. Jääb vaid luua taotlus selle ID abil postituse saamiseks. Selleks loome RequestStepi saada-postitus järgmiste parameetritega:
Taotluse tüüp: GET
URL: ${domain}/postitused/${$dynamicVar.postId}
Teise sammu rakendamiseks peame tutvuma Väide sõlm. Assertion sõlm on sõlm, mis võimaldab teil kirjutada konkreetsete päringute kontrolle. Iga väitesõlm võib sisaldada mitut väidet (kontrolli). Lisateavet igat tüüpi väidete kohta saate meie lehelt dokumentatsioon. Me kasutame Compare kinnitus operaatoriga equal. Väidete loomiseks on mitu võimalust:
Pikk. Looge käsitsi kinnitussõlm sõlme RequestStep kontekstimenüüst. Lisage loodud kinnitussõlmes huvi väide ja täitke väljad.
Kiire. Looge kontekstimenüü abil väitesõlm koos väitega RequestStep sõlme vastusest
Kasutame teist meetodit. Meie juhtumi puhul näeb see välja selline.
Neile, kes aru ei saa, on toimumas järgmine:
Esitage taotlus sõlmes saada-postitus
Vahekaardil Parsitud vastake, helistage kontekstimenüüsse ja valige Loo väide -> Võrdlema -> võrdne
Palju õnne, oleme loonud oma esimese testi! Lihtne, kas pole? Nüüd saate skripti täielikult käivitada ja tulemust nautida. Jääb vaid veidi ümber teha ja välja võtta title eraldi muutujaks. Kuid me jätame selle teile kodutööks)
Järeldus
Selles juhendis koostasime täieõigusliku stsenaariumi ja vaatasime samal ajal üle mõned meie toote funktsioonid. Loomulikult ei kasutanud me kõiki funktsioone ja järgmistes artiklites anname üksikasjaliku ülevaate TestMace'i võimalustest. Püsige lainel!
PS Neile, kes on liiga laisad, et kõiki samme reprodutseerida, oleme lahkelt salvestanud hoidla koos projektiga artiklist. Saate selle avada fail -> Avatud projekt ja valige kaust Projekt.