TestMace. Kiire algus

TestMace. Kiire algus

Tere kĂ”ik. Me hakkame tasapisi varjust vĂ€lja tulema ja jĂ€tkame artiklisarja meie toote kohta. PĂ€rast kontrolli. Sel ajal on C++ analĂŒsaatorisse lisatud kokku 66 ĂŒldotstarbelist diagnoosi. ĂŒlevaateartiklit saime hulgaliselt tagasisidet (peamiselt positiivset), ettepanekuid ja bugi raporteid. TĂ€na nĂ€itame TestMace kuidas see töötab ja teil on vĂ”imalus hinnata mĂ”ningaid meie rakenduse funktsioone. Rohkemate ĂŒksikasjade jaoks soovitan vaadata meie dokumentatsiooni aadressil http://docs-ru.testmace.com. Nii, hakkame pihta!

Paigaldamine

Alustame lihtsate asjadega. Rakendus on saadaval ja tegelikult testitav kolmel platvormil — Linux, Windows, MacOS. Saate huvipakkuva opsĂŒsteemi paigaldusteenuse alla laadida meie veebilehelt. Linuxi kasutajatele on olemas vĂ”imalus installida snap-paketti. Loodame, et peagi jĂ”uab kĂŒlastus Microsoft Store'i ja App Store'i (aga kas on seda vaja? Mis arvate?).

Katse stsenaarium

Katses osalevaks stsenaariumiks valisime jÀrgmise standardsenaariumi:

  • logime sisse: kasutaja — admin, parool — password
  • lisame uue kirje
  • kontrollime kirje korrektset lisamist

Testime seda https://testmace-quick-start.herokuapp.com/. See on tavaline json-server, mis sobib suurepÀraselt sarnaste rakenduste testimiseks. Me lisasime ainult autoriseerimise tokeni kÔikidele json-serveri marsruutidele ja tegime login meetodi selle tokeni saamiseks. Liikume samm-sammult, pidevalt tÀiustades meie projekti.

Projekti loomine ja katsed luua ĂŒksus ilma autoriseerimiseta

Alustame uue projekti loomisega (Fail->Uus projekt). Kui avate rakenduse esmakordselt, avatakse uus projekt automaatselt. Alustuseks proovime teha pĂ€ringu uue kirje loomiseks (jĂ€rsku on kirje loomine saadaval ilma autoriseerimiseta). Valige kontekstimenĂŒĂŒst Project sĂ”lme punktid Lisa sĂ”lm -> RequestStep. SĂ”lme nimeks mÀÀrame create-post. Tulemusena luuakse puus uus sĂ”lm ja avatakse selle sĂ”lme vahekaart. MÀÀrame pĂ€ringu jĂ€rgmised parameetrid:

  • PĂ€ringu tĂŒĂŒp: POST
  • url: https://testmace-quick-start.herokuapp.com/posts
  • PĂ€ringu sisu: json vÀÀrtusega {"title": "Uus testmace kiire algus postitus"}
    Kui kÔik teete Ôigesti, nÀeb liides vÀlja jÀrgmiselt:

TestMace. Kiire algus

Kuid kui proovime pÀringut teostada, tagastab server 401 koodi ja ilma autoriseerimiseta ei saa me sellele serverile midagi teha. Noh, see oli enam-vÀhem oodatav).

Lisame autoriseerimis pÀringu

Kuidas juba öeldi, meil on POST lĂ”pp-punkt /login, mis aktsepteerib pĂ€ringu keha json kujul: {"username": "", "password": ""}, kus username ja parool (taas, nagu eelnevas sissejuhatuses) omavad vÀÀrtusi admin ja parool vastavalt. Antud endpoint tagastab json vormingus {"token": ""}. Kasutame seda autentimiseks. Loome RequestStep sĂ”lme nimega login, vanemana toimib Projekt sĂ”lm. Asetage see sĂ”lm puu struktuuris ĂŒlemisele tasemele, kui sĂ”lm create-post. Seadistame uuele pĂ€ringule jĂ€rgmised parameetrid:

Teeme pÀringu ja saame vastuseks 200. koodi koos tokeniga. Umbes nii:

TestMace. Kiire algus

Refaktoreerimine: eemaldame domeeni dubleerimise

Praegu ei ole pĂ€ringud ĂŒhte stsenaariumi seotud. Kuid see pole ainus puudus. Kui tĂ€helepanelikult vaadata, siis vĂ”ib mĂ€rgata, et domeen dubleeritakse mĂ”lemas pĂ€ringus. Ei ole hea. On aeg refaktoreerida see osa tulevasest stsenaariumist ja selle jaoks aitavad meid muutujad.

Alguses tĂ€idavad muutujad samu ĂŒlesandeid nagu teistes sarnastes tööriistades ja programmeerimiskeeltes — dubleerimise vĂ€ltimine, loetavuse parandamine jne. Rohkem muutujatest saab lugeda meie dokumentatsioonist. Antud juhul vajame kasutaja mÀÀratud muutujaid.

MÀÀratleme Project tasemel sÔlme muutuja domain vÀÀrtusega https://testmace-quick-start.herokuapp.com. Selleks on vajalik

  • Avage antud sĂ”lme vahekaart ja vajutage paremal ĂŒleval nurgas olevale kalkulaatori ikoonile
  • Vajutage + ADD VARIABLE
  • Sisestage muutuja nimi ja vÀÀrtus
    Meie juhul nÀeb dialoog koos lisatud muutujaga vÀlja jÀrgmine:

TestMace. Kiire algus

OK. NĂŒĂŒd tĂ€nu pĂ€rimisele saame kasutada seda muutujat mis tahes taseme jĂ€reltulijates. Meie olukorras on need sĂ”lmed login ja create-post. Selleks, et tekstivĂ€ljas kasutada muutujat, tuleb kirjutada ${}. NĂ€iteks, url sisselogimiseks muutub ${domain}/login, vastavalt create-post sĂ”lmele url nĂ€eb vĂ€lja nagu ${domain}/posts.

Nii oleme, jÀrgides DRY printsiipi, veidi parandanud stsenaariumi.

Salvestame tokeni muutuja

Kuna jutt on muutujatest, arendame seda teemat veidi. Praegu saame eduka sisselogimise korral serverilt autentimistokeni, mida vajame edasistes pĂ€ringutes. Salvestame selle tokeni muutujasse. Kuna muutuja vÀÀrtus mÀÀratakse stsenaariumi tĂ€itmise ajal, kasutame selleks erilist mehhanismi — dĂŒnaamilised muutujad.

Alustame sisselogimise pĂ€ringuga. Vahekaardil Parsed Lihtsalt viige hiirekursor tokeni peale ja valige konteksti menĂŒĂŒst (mille avate kas paremklĂ”psuga vĂ”i nuppu 
 vajutades) want Assign to variable. Avaneb dialoog jĂ€rgmiste vĂ€ljadega:

  • Path — milline osa vastusest vĂ”etakse (meie juhul see on body.token)
  • Praegune vÀÀrtus — milline vÀÀrtus asub teel Path (meie juhul see on tunnuse vÀÀrtus)
  • Variable name — muutuja nimi, kuhu Praegune vÀÀrtus see salvestatakse. Meie puhul on see token
  • Node — millises eelkĂ€ijas muutuja luuakse Variable name. Valime Project

TÀidetud dialoog nÀeb vÀlja selline:

TestMace. Kiire algus

NĂŒĂŒd vĂ€rskendatakse iga kord sĂ”lme tĂ€itmist login dĂŒnaamiline muutuja token uue vÀÀrtusega vastusest. Ja see muutuja salvestatakse Projekt sĂ”lmes ja tĂ€nu pĂ€rimisele on see kĂ€ttesaadav jĂ€rglastele.

DĂŒnaamilistele muutujatele viitamiseks peate kasutama sisseehitatud muutujat $dynamicVar. NĂ€iteks, et pÀÀseda salvestatud tokenile, tuleb kutsuda ${$dynamicVar.token}.

Kandke volitustoken kÔigisse pÀringutesse

Eelmistes etappides oleme saanud volitustokeni ja kÔik, mis peate tegema, on lisada pÀis Authorization vÀÀrtusega Bearer kÔigisse volitust nÔudvatesse pÀringutesse, sealhulgas ka create-post. Selleks on mitmeid vÔimalusi:

  1. KĂ€sitsi kopeerida token ja lisada volituse pĂ€is huvipakkuvatesse pĂ€ringutesse. See meetod toimib, kuid selle rakendamine on piiratud ainult 'tegin ja viskasin' tĂŒĂŒpi pĂ€ringutega. Mitme korraga tĂ€itmise stsenaariumide jaoks ei sobi see
  2. Kasuta funktsionaalsust volitamiseks.
  3. Kasutage vaikimisi pÀised

Teise meetodi kasutamine tundub ilmselge, kuid antud artikli kontekstis on see lĂ€henemine
 ebahuvitav. TĂ”epoolest: volituste mehhanism on teile teiste tööriistade kaudu enam-vĂ€hem tuttav (isegi kui meil on sellised asjad nagu volituste pĂ€rimine) ja ei tundu tĂ”enĂ€oliselt kĂŒsimusi tekitavat.

Teine asi on vaikimisi pĂ€ised! Kui lĂŒhidalt öelda, siis vaikimisi pĂ€ised on eelkĂ€ijatest pĂ€rinud HTTP-pĂ€ised, mis lisatakse pĂ€ringule vaikimisi, kui neid ei keelata. Selle funktsiooni abil saab nĂ€iteks rakendada kohandatud autentimist vĂ”i lihtsalt vabaneda kordusest stsenaariumites. Rakendame seda funktsiooni tokeni edasiviimiseks pĂ€istes.

Varasemalt oleme ettevaatlikult salvestanud tokeni dĂŒnaamilisse muutuja $dynamicVar.token ProjektisĂ”lme tasemel. Tuleb teha jĂ€rgmist:

  1. MÀÀrata vaikimisi pealkiri Authorization vÀÀrtusega Bearer ${$dynamicVar.token} ProjektisĂ”lme tasemel. Selle tegemiseks tuleb avada vaikimisi pealkirjade dialoog (nupp Pealkirjad paremas ĂŒlanurgas) ja lisada vastav pealkiri. Dialoog, kus vÀÀrtused on tĂ€idetud, nĂ€eb vĂ€lja jĂ€rgmiselt:
    TestMace. Kiire algus
  2. Kehitada see pealkiri vÀlja login pÀringust. See on arusaadav: sisselogimise hetkel ei ole meil veel tokenit ja sellega me just sellele pÀringule kehtestamegi selle. Seega login pÀringu liideses vahemikus Pealkirjad ala PÀritatud vÔtame Authorization pealkirjast linnukese maha.

Sellega on kĂ”ik. NĂŒĂŒd lisatakse autoriseerimise pealkiri kĂ”ikidesse pĂ€ringutesse, mis on Project sĂ”lme offshoot'id, vĂ€lja arvatud login sĂ”lm. Tundub, et sellel etapil on meil juba stsenaarium valmis ning jÀÀb vaid selle kĂ€ivitamine. Stsenaariumi saab kĂ€ivitada, valides punkti KĂ€ita Project sĂ”lme kontekstimenĂŒĂŒst.

Kontrollime postituse loomise korrektset toimumist

Sellel etapil suudab meie stsenaarium sisselogida ja, kasutades autoriseerimise tokenit, postitust luua. Siiski peame veenduma, et uus loodud postitus omab Ôiget nime. See tÀhendab, et pÔhimÔtteliselt tuleb teha jÀrgmist:

  • Saata pĂ€ring postituse saamiseks id jĂ€rgi,
  • Kontrollida, et serverist saadud nimi vastab postituse loomisel edastatud nimele

Vaadakem esimest sammu. Kuna id vÀÀrtus mÀÀratakse skripti tĂ€itmise ajal, tuleb luua dĂŒnaamiline muutuja (nimetame selle postId) sĂ”lmest create-post ProjektisĂ”lme tasemel. Kuidas seda teha, teame juba, piisab, kui pöörduda jaotise poole Salvestame tokeni muutuja. JÀÀb vaid luua pĂ€ring postituse saamiseks selle id jĂ€rgi. Selleks loome RequestStep get-post jĂ€rgnevate parameetritega:

  • PĂ€ringu tĂŒĂŒp: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Teise sammu teostamiseks peame tundma tutvustama Kinnitus sĂ”lme. Assertion sĂ”lm — see on sĂ”lm, mis vĂ”imaldab kirjutada kontrollimisi teatud pĂ€ringute jaoks. Igal assertion sĂ”lmel vĂ”ib olla mitu vĂ€idet (kontrolli). TĂ€iendavalt vĂ”ite kĂ”ikide assertion-tĂŒĂŒpide kohta lugeda meie dokumentatsioon. Me kasutame VĂ”rdle assertion operaatoriga vĂ”rdne. Assertion'e loomise viise on mitmeid:

  1. Pikk. Looge kĂ€sitsi kontekstmenĂŒĂŒst RequestStep sĂ”lmele Assertion sĂ”lm. Uues Assertion sĂ”lmes lisage soovitud assertion ja tĂ€itke vĂ€ljad.
  2. Kiire. Looge Assertion sĂ”lm koos assertioniga RequestStep sĂ”lmest kontekstmenĂŒĂŒ abil.

Kasutame teist meetodit. Nii nÀeb see meie juhtumi jaoks vÀlja.

TestMace. Kiire algus

Kellele see ei selgunud, toimub siin jÀrgmine:

  1. Tehke pÀring sÔlmes. get-post
  2. Vahekaardil. Parsed vastuse kontekstmenĂŒĂŒd kutsuda ja valida Loo assertion -> VĂ”rdle -> VĂ”rdne

Palju Ă”nne, oleme loonud oma esimese testi! Lihtne, eks? NĂŒĂŒd saate skripti tĂ€ies mahus kĂ€ivitada ja tulemustest rÔÔmu tunda. JÀÀnud on vaid vĂ€ikeste muudatuste tegemine ja muutmine title erakordsesse muutujasse. Kuid jĂ€tame selle teile kodutööks)

KokkuvÔte

KĂ€esolevas juhendis oleme loonud tĂ€iskohaga skripti ja samal ajal ĂŒlevaate mĂ”nest meie toote funktsioonist. Loomulikult ei kasutanud me sugugi kogu funktsionaalsust ning jĂ€rgmistes artiklites teeme pĂ”hjaliku ĂŒlevaate TestMace vĂ”imalustest. JĂ€lgige uuendusi!

P.S. Kellele ei meeldi kÔiki samme jÀrgida, oleme lahkelt salvestanud hoidla artiklis olevat projekti. Avage see, kasutades Fail -> Avage projekt ja valige kaust Projekt.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster