TestMace. Kiire algus

TestMace. Kiire algus

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:

TestMace. Kiire algus

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:

Täidame päringu ja saame vastuses kahesajanda koodi koos märgiga. Midagi sellist:

TestMace. Kiire algus

Refaktoreerimine: domeeni dubleerimise eemaldamine

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:

TestMace. Kiire algus

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:

TestMace. Kiire algus

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.

  1. 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
  2. Kasutage funktsiooni volitus.
  3. Kasutage vaikepäised

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.

  1. 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:
    TestMace. Kiire algus
  2. 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:

  1. Pikk. Looge käsitsi kinnitussõlm sõlme RequestStep kontekstimenüüst. Lisage loodud kinnitussõlmes huvi väide ja täitke väljad.
  2. 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.

TestMace. Kiire algus

Neile, kes aru ei saa, on toimumas järgmine:

  1. Esitage taotlus sõlmes saada-postitus
  2. 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.

Allikas: www.habr.com

Lisa kommentaar