TestMace. Ātrs sākums

TestMace. Ātrs sākums

Sveiki visiem. Mēs lēnām izkāpjam no ēnas un turpinām rakstu sēriju par mÅ«su produktu. Pēc iepriekŔējā pārskata rakstu, saņēmām daudz atsauksmju (galvenokārt pozitÄ«vas), ieteikumu un kļūdu ziņojumu. Å odien mēs parādÄ«sim TestMace darbÄ«bā, un jÅ«s varēsit novērtēt dažas mÅ«su lietojumprogrammas funkcijas. Lai iegÅ«tu pilnÄ«gāku iegremdÄ“Å”anu, iesaku skatÄ«t mÅ«su dokumentāciju vietnē http://docs-ru.testmace.com. Tātad, ejam!

UzstādīŔana

Sāksim ar banalitāti. Aplikācija ir pieejama un faktiski testēta uz trÄ«s platformām ā€“ Linux, Windows, MacOS. JÅ«s varat lejupielādēt instalÄ“Å”anas programmu tai OS, no kuras jÅ«s interesē mÅ«su vietne. Linux lietotājiem ir iespējams instalēt snap iepakojums. Mēs ļoti ceram, ka Microsoft Store un App Store drÄ«zumā tiks pie tā (Vai tas ir nepiecieÅ”ams? Kā jÅ«s domājat?).

Eksperimentāls scenārijs

Mēs kā testa priekÅ”metu izvēlējāmies Ŕādu standarta scenāriju:

  • PieteikÅ”anās: lietotājs - admin, parole - parole
  • pievienot jaunu ierakstu
  • PārbaudÄ«sim, vai ieraksts ir pievienots pareizi

Mēs pārbaudÄ«sim tālāk https://testmace-quick-start.herokuapp.com/. Tas ir normāli json-serveris, lieliski piemērots Ŕādu lietojumprogrammu testÄ“Å”anai. Mēs tikko pievienojām pilnvarojumu ar pilnvaru visiem json-servera marÅ”rutiem un izveidojām pieteikÅ”anās metodi Ŕīs pilnvaras saņemÅ”anai. Mēs virzÄ«simies uz priekÅ”u pakāpeniski, pakāpeniski uzlabojot savu projektu.

Projekta izveide un entītijas izveide bez atļaujas

Vispirms izveidosim jaunu projektu (fileja->Jauns projekts). Ja lietojumprogrammu palaižat pirmo reizi, automātiski tiks atvērts jauns projekts. Vispirms mēģināsim iesniegt pieprasÄ«jumu izveidot jaunu ierakstu (ja ierakstu izveide ir pieejama bez autorizācijas). Projekta mezgla konteksta izvēlnē atlasiet vienumus Pievienot mezglu -> PieprasÄ«juma darbÄ«ba. Iestatiet mezgla nosaukumu uz izveidot-post. Rezultātā kokā tiks izveidots jauns mezgls un tiks atvērta Ŕī mezgla cilne. IestatÄ«sim Ŕādus pieprasÄ«juma parametrus:

  • PieprasÄ«juma veids: POST
  • url: https://testmace-quick-start.herokuapp.com/posts
  • PieprasÄ«juma pamatteksts: json ar vērtÄ«bu {"title": "New testmace quick start post"}
    Ja visu izdarījāt pareizi, interfeiss izskatīsies Ŕādi:

TestMace. Ātrs sākums

Taču, ja mēģināsim izpildÄ«t pieprasÄ«jumu, serveris atgriezÄ«s 401 kodu un bez autorizācijas mēs Å”ajā serverÄ« neko nesaņemsim. Nu, kopumā, kā gaidÄ«ts).

Autorizācijas pieprasījuma pievienoŔana

Kā jau minēts, mums ir POST galapunkts /login, kas izmanto json kā veidlapas pieprasÄ«juma pamattekstu: {"username": "<username>", "password": "<password>"}Kur username Šø password (atkal, no ievada rindkopas iepriekÅ”) ir nozÄ«mes admin Šø password attiecÄ«gi. Atbildot uz to, Å”is galapunkts atgriež json lÄ«dzÄ«gu {"token": "<token>"}. Mēs to izmantosim autorizācijai. Izveidosim PieprasÄ«juma darbÄ«ba mezgls ar nosaukumu Pieslēgties, darbosies kā sencis projekts mezgls Izmantojot vilkÅ”anu un nomeÅ”anu, pārvietojiet noteiktu mezglu kokā augstāk par mezglu izveidot-post. Jaunizveidotajam pieprasÄ«jumam iestatÄ«sim Ŕādus parametrus:

Izpildīsim pieprasījumu un atbildē saņemsim divsimto kodu ar marķieri. Kaut kas tamlīdzīgs:

TestMace. Ātrs sākums

Refaktorings: domēna dublÄ“Å”anās noņemÅ”ana

Pagaidām pieprasÄ«jumi nav saistÄ«ti vienā skriptā. Bet tas nav vienÄ«gais trÅ«kums. Ja paskatās uzmanÄ«gi, jÅ«s ievērosiet, ka vismaz domēns ir dublēts abos pieprasÄ«jumos. Nav labi. Ir pienācis laiks pārveidot Å”o nākotnes skripta daļu, un mainÄ«gie mums to palÄ«dzēs.

Pirmkārt, mainÄ«gie pilda tādu paÅ”u lomu kā citos lÄ«dzÄ«gos rÄ«kos un programmÄ“Å”anas valodās - novērÅ” dublÄ“Å”anos, uzlabo lasāmÄ«bu utt. Vairāk par mainÄ«gajiem varat lasÄ«t sadaļā mÅ«su dokumentācija. Å ajā gadÄ«jumā mums bÅ«s nepiecieÅ”ami lietotāja mainÄ«gie.

Definēsim mainÄ«go projekta mezgla lÄ«menÄ« domain ar nozÄ«mi https://testmace-quick-start.herokuapp.com. Å im nolÅ«kam tas ir nepiecieÅ”ams

  • Atveriet cilni ar Å”o mezglu un noklikŔķiniet uz kalkulatora ikonas augŔējā labajā stÅ«rÄ«
  • KlikŔķiniet uz + PIEVIENOT MAINÄŖGO
  • Ievadiet mainÄ«gā nosaukumu un vērtÄ«bu
    MÅ«su gadÄ«jumā dialoglodziņŔ ar pievienoto mainÄ«go izskatÄ«sies Ŕādi:

TestMace. Ātrs sākums

LABI. Tagad mantojuma dēļ mēs varam izmantot Å”o mainÄ«go jebkura ligzdoÅ”anas lÄ«meņa pēcnācējiem. MÅ«su gadÄ«jumā tie ir mezgli Pieslēgties Šø izveidot-post. Lai teksta laukā izmantotu mainÄ«go, jums ir jāraksta ${<variable_name>}. Piemēram, pieteikÅ”anās URL tiek pārveidots par ${domain}/login, attiecÄ«gi par izveidot-post mezgla URL izskatÄ«sies ${domain}/posts.

Tādējādi, vadoties pēc DRY principa, esam nedaudz uzlabojuÅ”i scenāriju.

Saglabājiet marķieri mainīgajā

Tā kā mēs runājam par mainÄ«gajiem, nedaudz izvērsÄ«sim Å”o tēmu. Å obrÄ«d veiksmÄ«gas pieteikÅ”anās gadÄ«jumā no servera saņemam autorizācijas marÄ·ieri, kas mums bÅ«s nepiecieÅ”ams turpmākajos pieprasÄ«jumos. Saglabāsim Å”o marÄ·ieri mainÄ«gajā. Jo mainÄ«gā vērtÄ«ba tiks noteikta skripta izpildes laikā, mēs izmantojam Ä«paÅ”u mehānismu - dinamiskie mainÄ«gie.

Vispirms izpildÄ«sim pieteikÅ”anās pieprasÄ«jumu. Cilnē Parsēts atbildiet, pārvietojiet kursoru virs marÄ·iera un konteksta izvēlnē (kas tiek izsaukta vai nu ar peles labo pogu, vai noklikŔķinot uz pogas ...) atlasiet vienumu PieŔķirt mainÄ«gajam. Tiks parādÄ«ts dialoglodziņŔ ar Ŕādiem laukiem:

  • taka ā€” kura atbildes daļa ir ņemta (mÅ«su gadÄ«jumā tā ir body.token)
  • PaÅ”reizējā vērtÄ«ba ā€” kāda vērtÄ«ba atrodas ceļā (mÅ«su gadÄ«jumā tā ir simboliskā vērtÄ«ba)
  • MainÄ«gais nosaukums ā€” mainÄ«gā lieluma nosaukums kur PaÅ”reizējā vērtÄ«ba tiks saglabāts. MÅ«su gadÄ«jumā tā bÅ«s token
  • mezgls ā€” kurā no senčiem mainÄ«gais tiks izveidots MainÄ«gais nosaukums. AtlasÄ«sim projektu

Pabeigtais dialoglodziņŔ izskatās Ŕādi:

TestMace. Ātrs sākums

Tagad katru reizi, kad mezgls tiek izpildÄ«ts Pieslēgties dinamiskais mainÄ«gais token tiks atjaunināts ar jauno vērtÄ«bu no atbildes. Un Å”is mainÄ«gais tiks saglabāts projekts mezgls un, pateicoties mantojumam, bÅ«s pieejams pēcnācējiem.

Lai piekļūtu dinamiskajiem mainīgajiem, ir jāizmanto iebūvētais mainīgais $dynamicVar. Piemēram, lai piekļūtu saglabātajam marķierim, jums ir jāzvana ${$dynamicVar.token}.

Mēs nododam autorizācijas pilnvaru pieprasījumos

IepriekŔējās darbÄ«bās mēs saņēmām autorizācijas pilnvaru, un viss, kas mums jādara, ir pievienot galveni Authorization ar nozÄ«mi Bearer <tokenValue> visos pieprasÄ«jumos, kuriem nepiecieÅ”ama autorizācija, tostarp izveidot-post. Ir vairāki veidi, kā to izdarÄ«t:

  1. Manuāli kopējiet pilnvaru un pievienojiet interesējoÅ”o pieprasÄ«jumu autorizācijas galveni. Metode darbojas, taču tās izmantoÅ”ana ir ierobežota tikai ar ā€œizgatavota un izmestaā€ veida pieprasÄ«jumiem. Nav piemērots atkārtotai skriptu izpildei
  2. Izmantojiet funkcionalitāti autorizācija.
  3. Lietot noklusējuma galvenes

Otrās metodes izmantoŔana Ŕķiet paŔsaprotama, taču Ŕī raksta kontekstā Ŕī pieeja ir... neinteresanta. Nu, tieŔām: autorizācijas mehānisms plus mīnuss jums ir pazīstams no citiem rīkiem (pat ja mums ir tādas lietas kā autorizācijas mantojums), un tas, visticamāk, neradīs jautājumus.

Vēl viena lieta ir noklusējuma galvenes! ÄŖsumā, noklusējuma galvenes ir mantotas HTTP galvenes, kas tiek pievienotas pieprasÄ«jumam pēc noklusējuma, ja vien tās nav skaidri atspējotas. Izmantojot Å”o funkcionalitāti, varat, piemēram, ieviest pielāgotu autorizāciju vai vienkārÅ”i atbrÄ«voties no skriptu dublÄ“Å”anās. Izmantosim Å”o funkciju, lai galvenēs nodotu marÄ·ieri.

IepriekÅ” mēs apdomÄ«gi saglabājām marÄ·ieri dinamiskā mainÄ«gajā $dynamicVar.token projekta mezgla lÄ«menÄ«. Atliek tikai veikt Ŕādas darbÄ«bas:

  1. Definējiet noklusējuma nosaukumu Authorization ar nozÄ«mi Bearer ${$dynamicVar.token} projekta mezgla lÄ«menÄ«. Lai to izdarÄ«tu, mezgla projekta saskarnē ir jāatver dialoglodziņŔ ar noklusējuma virsrakstiem (poga Galvenes augŔējā labajā stÅ«rÄ«) un pievienojiet atbilstoÅ”u nosaukumu. Dialogs ar aizpildÄ«tajām vērtÄ«bām izskatÄ«sies Ŕādi:
    TestMace. Ātrs sākums
  2. Atspējojiet Å”o pieteikÅ”anās pieprasÄ«juma galveni. Tas ir saprotams: pieteikÅ”anās brÄ«dÄ« mums vēl nav marÄ·iera, un mēs to instalēsim ar Å”o pieprasÄ«jumu. Tāpēc pieprasÄ«juma pieteikÅ”anās saskarnē cilnē Galvenes apgabalā Mantots noņemiet atzÄ«mi no galvenes Autorizācija.

Tas ir viss. Tagad autorizācijas galvene tiks pievienota visiem pieprasÄ«jumiem, kas ir projekta mezgla atvasinājumi, izņemot pieteikÅ”anās mezglu. Izrādās, ka Å”ajā posmā mums jau ir gatavs skripts un atliek tikai to palaist. Varat palaist skriptu, atlasot skrējiens projekta mezgla konteksta izvēlnē.

Ziņas izveides pareizības pārbaude

Å ajā posmā mÅ«su skripts var pieteikties un, izmantojot autorizācijas marÄ·ieri, izveidot ziņu. Tomēr mums ir jāpārliecinās, vai jaunizveidotajai ziņai ir pareizs nosaukums. Tas ir, bÅ«tÄ«bā atliek tikai veikt Ŕādas darbÄ«bas:

  • NosÅ«tiet pieprasÄ«jumu saņemt pastu pēc id,
  • Pārbaudiet, vai no servera saņemtais nosaukums atbilst nosaukumam, kas tika nosÅ«tÄ«ts, veidojot ziņu

ApskatÄ«sim pirmo soli. Tā kā id vērtÄ«ba tiek noteikta skripta izpildes laikā, jums ir jāizveido dinamiskais mainÄ«gais (sauksim to postId) no mezgla izveidot-post projekta mezgla lÄ«menÄ«. Mēs jau zinām, kā to izdarÄ«t, vienkārÅ”i skatiet sadaļu Saglabājiet marÄ·ieri mainÄ«gajā. Atliek tikai izveidot pieprasÄ«jumu, lai saņemtu ziņu, izmantojot Å”o id. Lai to izdarÄ«tu, izveidosim RequestStep get-post ar Ŕādiem parametriem:

  • PieprasÄ«juma veids: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Lai īstenotu otro soli, mums jāiepazīstas ar Apgalvojums mezgls. Apgalvojuma mezgls ir mezgls, kas ļauj rakstīt pārbaudes konkrētiem pieprasījumiem. Katrs apgalvojuma mezgls var saturēt vairākus apgalvojumus (pārbaudes). Vairāk par visu veidu apgalvojumiem varat lasīt mūsu vietnē dokumentācija. Mēs izmantosim Compare apgalvojums ar operatoru equal. Ir vairāki veidi, kā izveidot apgalvojumus:

  1. Gari. Manuāli izveidojiet Assertion mezglu no RequestStep mezgla konteksta izvēlnes. Izveidotajā Apgalvojuma mezglā pievienojiet intereÅ”u apgalvojumu un aizpildiet laukus.
  2. Ātri. Izveidojiet Assertion mezglu kopā ar apgalvojumu no RequestStep mezgla atbildes, izmantojot konteksta izvēlni

Izmantosim otro metodi. Lūk, kā tas izskatīsies mūsu gadījumā.

TestMace. Ātrs sākums

Tiem, kas nesaprot, lūk, kas notiek:

  1. Veiciet pieprasījumu mezglā get-post
  2. Cilnē Parsēts atbildiet, izsauciet konteksta izvēlni un atlasiet Izveidojiet apgalvojumu -> Salīdzināt -> vienāds

Apsveicam, esam izveidojuÅ”i savu pirmo testu! VienkārÅ”i, vai ne? Tagad varat pilnÄ«bā palaist skriptu un baudÄ«t rezultātu. Atliek tikai to nedaudz pārveidot un izņemt title atseviŔķā mainÄ«gajā. Bet mēs to atstāsim jums kā mājasdarbu)

Secinājums

Å ajā rokasgrāmatā mēs izveidojām pilnvērtÄ«gu scenāriju un tajā paŔā laikā pārskatÄ«jām dažas mÅ«su produkta funkcijas. Protams, mēs neizmantojām visu funkcionalitāti un turpmākajos rakstos sniegsim detalizētu pārskatu par TestMace iespējām. Sekojiet lÄ«dzi!

PS Tiem, kam ir slinkums reproducēt visus soļus, esam laipni ierakstÄ«juÅ”i krātuve ar projektu no raksta. JÅ«s varat to atvērt ar fileja -> Atvērts projekts un atlasiet mapi Projekts.

Avots: www.habr.com

Pievieno komentāru