TestMace. Snabbstart

TestMace. Snabbstart

Hej allihopa. Vi börjar sakta men sÀkert komma ut ur skuggorna och fortsÀtta artikelserien om vÄr produkt. EfterÄt. tidigare recensionsartikeln, vi fick mycket feedback (mestadels positiv), förslag och felrapporter. Idag kommer vi att visa TestMace i praktiken och du kommer att kunna uppskatta nÄgra av funktionerna i vÄr applikation. För en mer fullstÀndig fördjupning rekommenderar jag att du lÀser vÄr dokumentation pÄ http://docs-ru.testmace.comSÄ, lÄt oss köra!

Installation

LÄt oss börja med grunderna. Appen Àr tillgÀnglig och testas pÄ tre plattformar: Linux, Windows, MacOS. Du kan ladda ner installationsprogrammet för det operativsystem du Àr intresserad av frÄn av vÄr webbplatsFör Linux-anvÀndare finns det ett alternativ att installera snap-paketVi hoppas verkligen att vi snart kommer till Microsoft Store och App Store (Men Àr det nödvÀndigt? Vad tycker du?).

Experimentellt scenario

Vi valde följande standardscenario som testobjekt:

  • logga in: anvĂ€ndare - admin, lösenord - lösenord
  • lĂ„t oss lĂ€gga till en ny post
  • LĂ„t oss kontrollera att posten lades till korrekt

Vi kommer att testa pÄ https://testmace-quick-start.herokuapp.com/Detta Àr normalt json-server, vilket Àr perfekt för att testa sÄdana applikationer. Vi har bara lagt till tokenauktorisering till alla json-server-rutter och skapat en inloggningsmetod för att fÄ denna token. Vi kommer att gÄ framÄt gradvis och gradvis förbÀttra vÄrt projekt.

Skapa ett projekt och försöka skapa en entitet utan auktorisering

Först, lÄt oss skapa ett nytt projekt (Fil->Nytt projektOm du kör programmet för första gÄngen öppnas det nya projektet automatiskt. LÄt oss först försöka göra en begÀran om att skapa en ny post (plötsligt Àr det möjligt att skapa poster utan auktorisering). VÀlj alternativen i snabbmenyn för noden Projekt. LÀgg till nod -> RequestStepVi stÀller in nodnamnet till skapa-inlÀggSom ett resultat skapas en ny nod i trÀdet och en flik för noden öppnas. LÄt oss stÀlla in följande frÄgeparametrar:

TestMace. Snabbstart

Men om vi försöker utföra begÀran kommer servern att returnera en 401-kod och utan auktorisering har vi ingen chans pÄ den hÀr servern. Tja, det Àr att vÀnta).

LÀgga till en auktoriseringsbegÀran

Som redan nÀmnts har vi en POST-slutpunkt /login, som accepterar en json av följande typ som en förfrÄgningstext: {"username": "<username>", "password": "<password>"}var username О password (Äterigen, frÄn inledningen ovan) har betydelser admin О password respektive. Som svar returnerar denna slutpunkt json av formen {"token": "<token>"}LÄt oss anvÀnda det för auktorisering. LÄt oss skapa RequestStep nod med namn logga in, kommer att agera som en förfader Projekt nod. AnvÀnd dra-och-slÀpp för att flytta noden högre upp i trÀdet Àn noden skapa-inlÀggLÄt oss stÀlla in följande parametrar för den nyligen skapade frÄgan:

LÄt oss köra begÀran och hÀmta den tvÄhundrade koden med token i svaret. NÄgot i stil med detta:

TestMace. Snabbstart

Refactoring: Ta bort domÀndubbletter

FrÄgorna Àr Ànnu inte lÀnkade till ett enda scenario. Men detta Àr inte den enda nackdelen. Om du tittar noga kan du se att Ätminstone domÀnen Àr duplicerad i bÄda frÄgorna. Inte bra. Det Àr hög tid att omstrukturera denna del av framtidsscenariot, och variabler kommer att hjÀlpa oss med detta.

I en första approximation spelar variabler samma roll som i andra liknande verktyg och programmeringssprĂ„k – de eliminerar dubbelarbete, ökar lĂ€sbarheten etc. Du kan lĂ€sa mer om variabler i vĂ„r dokumentationI det hĂ€r fallet behöver vi anvĂ€ndarvariabler.

LÄt oss definiera en variabel pÄ projektnodnivÄ domain med mening https://testmace-quick-start.herokuapp.com. För detta Àr det nödvÀndigt

  • Öppna fliken med den hĂ€r noden och klicka pĂ„ kalkylatorikonen i det övre högra hörnet
  • Klicka pĂ„ + LÄGG TILL VARIABEL
  • Ange variabelnamnet och vĂ€rdet
    I vÄrt fall kommer dialogrutan med den tillagda variabeln att se ut sÄ hÀr:

TestMace. Snabbstart

OK. Tack vare arv kan vi nu anvÀnda den hÀr variabeln i Àttlingar pÄ vilken kapslingsnivÄ som helst. I vÄrt fall Àr dessa noder logga in О skapa-inlÀggFör att kunna anvÀnda en variabel i ett textfÀlt mÄste du skriva ${<variable_name>}Till exempel konverteras URL:en för inloggning till ${domain}/loginrespektive för skapa-inlÀgg nodens URL kommer att se ut sÄ hÀr ${domain}/posts.

SÄ, enligt DRY-principen, förbÀttrade vi manuset lite.

Spara token till en variabel

Eftersom vi pratar om variabler, lĂ„t oss utveckla detta Ă€mne lite. För nĂ€rvarande, vid en lyckad inloggning, fĂ„r vi en auktoriseringstoken frĂ„n servern, som vi behöver i efterföljande förfrĂ„gningar. LĂ„t oss spara denna token i en variabel. Eftersom variabelns vĂ€rde kommer att bestĂ€mmas under körningen av skriptet, kommer vi att anvĂ€nda en speciell mekanism för detta — dynamiska variabler.

Först gör vi en inloggningsförfrÄgan. I fliken Parsad svaret, hÄll muspekaren över token och vÀlj objektet i snabbmenyn (som anropas antingen genom att högerklicka eller genom att klicka pÄ knappen ...). Tilldela till variabelEn dialogruta visas med följande fÀlt:

  • Bana - vilken del av svaret som tas (i vĂ„rt fall Ă€r det body.token)
  • Nuvarande vĂ€rde - vilket vĂ€rde som ligger lĂ€ngs vĂ€gen (i vĂ„rt fall Ă€r detta symbolvĂ€rdet)
  • Variabelnamn — namnet pĂ„ variabeln dĂ€r Nuvarande vĂ€rde kommer att rĂ€ddas. I vĂ„rt fall kommer det att vara token
  • Nod — i vilken av förfĂ€derna variabeln kommer att skapas VariabelnamnLĂ„t oss vĂ€lja Projekt

Den fÀrdiga dialogrutan ser ut sÄ hÀr:

TestMace. Snabbstart

Nu, varje gÄng noden exekveras, logga in dynamisk variabel token kommer att uppdateras med det nya vÀrdet frÄn svaret. Och denna variabel kommer att lagras i Projekt nod och kommer att vara tillgÀnglig för Àttlingar genom arv.

För att komma Ät dynamiska variabler mÄste du anvÀnda inbyggd variabel $dynamicVarFör att till exempel komma Ät en sparad token mÄste du anropa ${$dynamicVar.token}.

Vi skickar auktoriseringstoken till förfrÄgningar

I föregÄende steg fick vi en auktoriseringstoken och allt vi behöver göra Àr att lÀgga till en header. Authorization med mening Bearer <tokenValue> i alla förfrÄgningar som krÀver auktorisering, inklusive skapa-inlÀggDet finns flera sÀtt att göra detta:

  1. Kopiera token manuellt och lÀgg till auktoriseringsrubriken till de frÄgor du Àr intresserad av. Den hÀr metoden fungerar, men dess anvÀndning Àr begrÀnsad till frÄgor av typen "skapa och kasta bort". Den Àr inte lÀmplig för flera exekveringar av scenarier.
  2. AnvÀnd funktionaliteten tillstÄnd.
  3. AnvÀnd standardrubriker

Att anvĂ€nda den andra metoden verkar sjĂ€lvklart, men i samband med den hĂ€r artikeln Ă€r den hĂ€r metoden
 ointressant. Ja, egentligen: plus-minus-auktoriseringsmekanismen Ă€r bekant för dig frĂ„n andra verktyg (Ă€ven om vi har saker som arv av behörigheter) och det Ă€r osannolikt att det vĂ€cker nĂ„gra frĂ„gor.

Standardrubriker Àr en annan sak! Kort sagt Àr standardrubriker HTTP-rubriker som Àrvs frÄn förfÀder och som lÀggs till i begÀran som standard om de inte uttryckligen inaktiveras. Med hjÀlp av den hÀr funktionen kan du till exempel implementera anpassad auktorisering eller helt enkelt bli av med dubbletter i scenarier. LÄt oss tillÀmpa den hÀr funktionen för att kasta en token i rubriker.

Tidigare hade vi förutseendet att spara token i en dynamisk variabel $dynamicVar.token pÄ projektnodnivÄ. Följande ÄterstÄr att göra:

  1. Definiera standardtitel Authorization med mening Bearer ${$dynamicVar.token} pÄ ProjektnodnivÄ. För att göra detta, öppna en dialogruta med standardrubriker i ProjektnodgrÀnssnittet (knapp Headers i det övre högra hörnet) och lÀgg till lÀmplig titel. Dialogrutan med de ifyllda vÀrdena kommer att se ut sÄ hÀr:
    TestMace. Snabbstart
  2. Inaktivera den hĂ€r rubriken frĂ„n inloggningsförfrĂ„gan. Detta Ă€r förstĂ„eligt: vid inloggningstillfĂ€llet har vi Ă€nnu ingen token och vi kommer att installera den med denna begĂ€ran. DĂ€rför, i grĂ€nssnittet för inloggningsförfrĂ„gan i fliken Headers i omrĂ„det Ärvde LĂ„t oss avmarkera rubriken Auktorisering.

Det var allt. Nu kommer auktoriseringsrubriken att lÀggas till alla förfrÄgningar som Àr underordnade till Projekt-noden, förutom inloggningsnoden. Det visar sig att vi i det hÀr skedet redan har ett skript klart och allt vi behöver göra Àr att köra det. Du kan köra skriptet genom att vÀlja Körning i snabbmenyn för Projekt-noden.

Kontrollerar att inlÀgget skapades korrekt

Vid det hÀr laget kan vÄrt skript logga in och skapa ett inlÀgg med hjÀlp av en auktoriseringstoken. Vi mÄste dock se till att det nyskapade inlÀgget har rÀtt namn. SÄ i huvudsak ÄterstÄr bara att göra följande:

  • Skicka en begĂ€ran om att fĂ„ ett inlĂ€gg via id,
  • Kontrollera att namnet som tas emot frĂ„n servern matchar namnet som skickades nĂ€r inlĂ€gget skapades

LÄt oss titta pÄ det första steget. Eftersom id-vÀrdet bestÀms under skriptkörningen Àr det nödvÀndigt att skapa en dynamisk variabel (lÄt oss kalla den postId) frÄn noden skapa-inlÀgg pÄ projektnodnivÄ. Vi vet redan hur man gör detta, se bara avsnittet Spara token till en variabelAllt som ÄterstÄr Àr att skapa en begÀran om att fÄ ett inlÀgg med detta id. För att göra detta, skapa ett RequestStep. fÄ-inlÀgg med följande parametrar:

  • FörfrĂ„gningstyp: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

För att genomföra det andra steget behöver vi bekanta oss med pÄstÄende nod. En assertionnod Àr en nod som lÄter dig skriva kontroller för specifika frÄgor. Varje assertionnod kan innehÄlla flera assertioner (kontroller). Du kan lÀsa mer om alla typer av assertioner i vÄr dokumentation. Vi kommer anvÀnda Compare pÄstÄende med operator equalDet finns flera sÀtt att skapa pÄstÄenden:

  1. LÄng. Skapa manuellt en Assertion-nod frÄn kontextmenyn för RequestStep-noden. LÀgg till intresseanmÀlan och fyll i fÀlten i den skapade Assertion-noden.
  2. Snabb: Skapa en Assertion-nod tillsammans med en assertion frÄn RequestStep-nodsvaret med hjÀlp av kontextmenyn.

LÄt oss anvÀnda den andra metoden. SÄ hÀr kommer det att se ut i vÄrt fall.

TestMace. Snabbstart

För er som inte förstÄr, hÀr Àr vad som hÀnder:

  1. Gör en frÄga i noden fÄ-inlÀgg
  2. I fliken Parsad svara pÄ samtalet via snabbmenyn och vÀlj Skapa pÄstÄende -> JÀmför -> Lika

Grattis, vi har skapat det första testet! Enkelt, eller hur? Nu kan du köra skriptet helt och njuta av resultatet. Allt som ÄterstÄr Àr att omstrukturera det lite och flytta ut det. title till en separat variabel. Men vi lÀmnar det som lÀxa Ät dig)

Slutsats

I den hÀr guiden har vi skapat ett komplett scenario och Àven granskat nÄgra av funktionerna i vÄr produkt. Naturligtvis anvÀnde vi inte all funktionalitet och i följande artiklar kommer vi att göra en detaljerad granskning av TestMaces möjligheter. HÄll utkik!

P.S. För er som Ă€r för lata för att upprepa alla steg har vi vĂ€nligen gjort en video förvaret med projektet frĂ„n artikeln. Du kan öppna den med Fil -> Öppet projekt och vĂ€lj Projekt-mappen.

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster