TestMace. Vinnige begin

TestMace. Vinnige begin

Hi almal. Ons kom stadig uit die skaduwees en gaan voort met die reeks artikels oor ons produk. Na vorige hersieningsartikel, het ons baie terugvoer (meestal positief), voorstelle en foutverslae ontvang. Vandag sal ons wys TestMace in aksie en jy sal sommige van die kenmerke van ons toepassing kan waardeer. Vir 'n meer volledige onderdompeling, raai ek jou aan om na ons dokumentasie te verwys by http://docs-ru.testmace.com. So, kom ons gaan!

installasie

Kom ons begin by die banaliteit. Die toepassing is beskikbaar en word eintlik op drie platforms getoets - Linux, Windows, MacOS. U kan die installeerder aflaai vir die bedryfstelsel waarin u belangstel ons webwerf. Vir Linux-gebruikers is dit moontlik om te installeer snap pakket. Ons hoop regtig dat die Microsoft Store en die App Store dit binnekort sal regkry (Is dit nodig? Wat dink jy?).

Eksperimentele scenario

Ons het die volgende standaard scenario as ons toetsvak gekies:

  • Teken in: gebruiker - admin, wagwoord - wagwoord
  • voeg 'n nuwe inskrywing by
  • Kom ons kyk of die rekord korrek bygevoeg is

Ons sal toets op https://testmace-quick-start.herokuapp.com/. Dit is normaal json-bediener, perfek om sulke toepassings te toets. Ons het pas magtiging per teken by alle json-bedienerroetes gevoeg en 'n aanmeldmetode geskep om hierdie teken te ontvang. Ons sal geleidelik beweeg en ons projek geleidelik verbeter.

Skep 'n projek en probeer om 'n entiteit sonder magtiging te skep

Kom ons skep eers 'n nuwe projek (File->Nuwe projek). As jy die toepassing vir die eerste keer begin, sal 'n nuwe projek outomaties oopmaak. Kom ons probeer eers om 'n versoek te rig om 'n nuwe rekord te skep (indien die skep van rekords sonder magtiging beskikbaar is). Kies items uit die Projek node konteks kieslys Voeg nodus by -> Versoekstap. Stel die nodusnaam op skep-pos. As gevolg hiervan sal 'n nuwe nodus in die boom geskep word en 'n oortjie vir hierdie nodus sal oopmaak. Kom ons stel die volgende versoek parameters:

TestMace. Vinnige begin

As ons egter probeer om die versoek te vervul, sal die bediener 'n 401-kode terugstuur en sonder magtiging sal ons niks op hierdie bediener kry nie. Wel, oor die algemeen, soos verwag).

Voeg tans 'n magtigingsversoek by

Soos reeds gesê, het ons 'n POST-eindpunt /login, wat json as 'n versoekliggaam van die vorm neem: {"username": "<username>", "password": "<password>"}Waar username и password (weereens, uit die inleidende paragraaf hierbo) betekenisse het admin и password onderskeidelik. In reaksie gee hierdie eindpunt json soos {"token": "<token>"}. Ons sal dit vir magtiging gebruik. Kom ons skep Versoekstap nodus met naam teken asseblief aan, sal as 'n voorouer optree Project nodus Gebruik sleep-en-drop, skuif 'n gegewe nodus in die boom hoër as die nodus skep-pos. Kom ons stel die volgende parameters op die nuutgeskepte versoek:

Kom ons voer die versoek uit en ontvang die tweehonderdste kode met die teken in die antwoord. Iets soos hierdie:

TestMace. Vinnige begin

Herfaktorering: verwydering van domeinduplisering

Tot dusver is die versoeke nie in 'n enkele skrif gekoppel nie. Maar dit is nie die enigste nadeel nie. As jy mooi kyk, sal jy sien dat ten minste die domein in beide versoeke gedupliseer is. Nie goed nie. Dit is tyd om hierdie deel van die toekomstige skrif te herfaktoreer, en veranderlikes sal ons hiermee help.

In 'n eerste benadering dien veranderlikes dieselfde rol as in ander soortgelyke instrumente en programmeertale - elimineer duplisering, verhoog leesbaarheid, ens. Jy kan meer lees oor veranderlikes in ons dokumentasie. In hierdie geval sal ons gebruikersveranderlikes benodig.

Kom ons definieer 'n veranderlike op die Projek nodus vlak domain met betekenis https://testmace-quick-start.herokuapp.com. Hiervoor is dit nodig

  • Maak die oortjie met hierdie nodus oop en klik op die sakrekenaar-ikoon regs bo
  • Klik op + VOEG VERANDERLIKE BY
  • Voer veranderlike naam en waarde in
    In ons geval sal die dialoog met die bygevoegde veranderlike soos volg lyk:

TestMace. Vinnige begin

OK. Nou, as gevolg van oorerwing, kan ons hierdie veranderlike gebruik in afstammelinge van enige nesvlak. In ons geval is dit nodusse teken asseblief aan и skep-pos. Om 'n veranderlike in 'n teksveld te gebruik, moet jy skryf ${<variable_name>}. Byvoorbeeld, die aanmeld-url word omgeskakel na ${domain}/login, onderskeidelik vir skep-pos node url sal lyk ${domain}/posts.

Dus, gelei deur die DRY beginsel, het ons die scenario effens verbeter.

Stoor die teken na 'n veranderlike

Aangesien ons oor veranderlikes praat, laat ons 'n bietjie op hierdie onderwerp uitbrei. Op die oomblik, in die geval van suksesvolle aanmelding, ontvang ons van die bediener 'n magtigingsteken, wat ons in daaropvolgende versoeke sal benodig. Kom ons stoor hierdie teken in 'n veranderlike. Omdat die waarde van die veranderlike sal tydens skripuitvoering bepaal word, ons gebruik 'n spesiale meganisme hiervoor - dinamiese veranderlikes.

Laat ons eers 'n aanmeldversoek doen. In die blad Ontleed antwoord, beweeg die wyser oor die teken en in die kontekskieslys (wat óf met die regtermuisknoppie genoem word óf deur op die knoppie te klik ...) kies die item Ken toe aan veranderlike. 'n Dialoog sal verskyn met die volgende velde:

  • Path - watter deel van die antwoord is geneem (in ons geval is dit body.token)
  • Huidige waarde - watter waarde lê langs die Pad (in ons geval is dit die tekenwaarde)
  • Veranderlike naam — naam van die veranderlike waar Huidige waarde bewaar sal word. In ons geval sal dit wees token
  • Knoop — in watter van die voorouers die veranderlike geskep sal word Veranderlike naam. Kom ons kies Projek

Die voltooide dialoog lyk soos volg:

TestMace. Vinnige begin

Nou elke keer as die nodus uitgevoer word teken asseblief aan dinamiese veranderlike token sal opgedateer word met die nuwe waarde van die antwoord. En hierdie veranderlike sal in gestoor word Project node en, danksy oorerwing, beskikbaar sal wees vir afstammelinge.

Om toegang tot dinamiese veranderlikes te verkry, moet jy gebruik ingeboude veranderlike $dynamicVar. Byvoorbeeld, om toegang te verkry tot 'n gestoorde token, moet jy bel ${$dynamicVar.token}.

Ons gee die magtigingsteken in versoeke deur

In die vorige stappe het ons die magtigingsteken ontvang en al wat ons hoef te doen is om 'n kopskrif by te voeg Authorization met betekenis Bearer <tokenValue> in alle versoeke wat magtiging vereis, insluitend skep-pos. Daar is verskeie maniere om dit te doen:

  1. Kopieer die teken handmatig en voeg 'n magtigingsopskrif by die versoeke van belang. Die metode werk, maar die gebruik daarvan is slegs beperk tot versoeke van die tipe "gemaak en weggegooi". Nie geskik vir herhaalde uitvoering van skrifte nie
  2. Gebruik die funksionaliteit magtiging.
  3. maak gebruik van verstekkopskrifte

Die gebruik van die tweede metode lyk voor die hand liggend, maar in die konteks van hierdie artikel is hierdie benadering ... oninteressant. Wel, regtig: die magtigingsmeganisme plus minus is aan jou bekend van ander instrumente (selfs al het ons dinge soos magtiging erfenis) en sal waarskynlik nie vrae laat ontstaan ​​nie.

Nog 'n ding is die verstekopskrifte! In 'n neutedop, verstekopskrifte is oorgeërfde HTTP-opskrifte wat by verstek by die versoek gevoeg word, tensy dit uitdruklik gedeaktiveer is. Deur hierdie funksionaliteit te gebruik, kan jy byvoorbeeld pasgemaakte magtiging implementeer of bloot ontslae raak van duplisering in skrifte. Kom ons gebruik hierdie kenmerk om 'n teken in die kopskrifte deur te gee.

Voorheen het ons die teken met omsigtigheid in 'n dinamiese veranderlike gestoor $dynamicVar.token op die Projek nodus vlak. Al wat oorbly is om die volgende te doen:

  1. Definieer verstek titel Authorization met betekenis Bearer ${$dynamicVar.token} op die Projek nodus vlak. Om dit te doen, in die Projek-koppelvlak van die nodus moet jy 'n dialoog oopmaak met verstekopskrifte (knoppie Headers in die regter boonste hoek) en voeg 'n ooreenstemmende titel by. Die dialoog met die gevulde waardes sal soos volg lyk:
    TestMace. Vinnige begin
  2. Deaktiveer hierdie kopskrif van die aanmeldversoek. Dit is verstaanbaar: ten tyde van aanmelding het ons nog nie 'n teken nie en ons sal dit met hierdie versoek installeer. Daarom, in die aanmeldkoppelvlak van die versoek in die blad Headers in die omgewing geërf ontmerk die Magtiging-kopskrif.

Dis al. Nou sal die magtigingsopskrif bygevoeg word by alle versoeke wat kinders van die Projek-nodus is, behalwe vir die aanmeldnodus. Dit blyk dat ons in hierdie stadium reeds 'n draaiboek gereed het en al wat ons hoef te doen is om dit bekend te stel. Jy kan die skrip laat loop deur te kies Run in die Projek nodus se konteks kieslys.

Kontroleer die korrektheid van die posskepping

Op hierdie stadium kan ons skrip aanmeld en, met behulp van 'n magtigingsteken, 'n plasing skep. Ons moet egter seker maak dat die nuutgeskepte plasing die korrekte naam het. Dit is, in wese, al wat oorbly is om die volgende te doen:

  • Stuur 'n versoek om 'n pos per id te ontvang,
  • Kontroleer dat die naam wat van die bediener ontvang is ooreenstem met die naam wat gestuur is toe die pos geskep is

Kom ons kyk na die eerste stap. Aangesien die id-waarde tydens skripuitvoering bepaal word, moet jy 'n dinamiese veranderlike skep (kom ons noem dit postId) vanaf nodus skep-pos op die Projek nodus vlak. Ons weet reeds hoe om dit te doen, verwys net na die afdeling Stoor die teken na 'n veranderlike. Al wat oorbly is om 'n versoek te skep om 'n plasing te ontvang met hierdie ID. Om dit te doen, kom ons skep 'n RequestStep kry-pos met die volgende parameters:

  • Tipe versoek: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Om die tweede stap te implementeer, moet ons kennis maak met Bewering knoop. 'n Assertion node is 'n nodus wat jou toelaat om tjeks vir spesifieke versoeke te skryf. Elke Assertion node kan verskeie bewerings (tjeks) bevat. U kan meer lees oor alle soorte bewerings van ons dokumentasie. Ons sal gebruik Compare bewering met operateur equal. Daar is verskeie maniere om bewerings te skep:

  1. Lank. Skep handmatig 'n Assertion node uit die konteks kieslys van die RequestStep node. In die Assertion node geskep, voeg die bewering van belang by en vul die velde in.
  2. Vinnig. Skep 'n Assertion node saam met 'n bewering uit die RequestStep node reaksie deur die konteks kieslys te gebruik

Kom ons gebruik die tweede metode. Dit is hoe dit vir ons geval sal lyk.

TestMace. Vinnige begin

Vir diegene wat nie verstaan ​​nie, hier is wat gebeur:

  1. Maak 'n versoek in die nodus kry-pos
  2. In die blad Ontleed antwoord, bel die kontekskieslys en kies Skep bewering -> Vergelyk -> gelyk

Baie geluk, ons het ons eerste toets geskep! Eenvoudig, is dit nie? Nou kan jy die skrif heeltemal laat loop en die resultaat geniet. Al wat oorbly is om dit 'n bietjie te herfaktor en uit te haal title in 'n aparte veranderlike. Maar ons los dit vir jou as huiswerk)

Gevolgtrekking

In hierdie gids het ons 'n volwaardige scenario geskep en terselfdertyd 'n paar van die kenmerke van ons produk hersien. Natuurlik het ons nie al die funksionaliteit gebruik nie en in die volgende artikels sal ons 'n gedetailleerde oorsig gee van die vermoëns van TestMace. Bly ingeskakel!

P.S. Vir diegene wat te lui is om al die stappe weer te gee, het ons vriendelik aangeteken bewaarplek met die projek uit die artikel. Jy kan dit oopmaak met File -> Oop projek en kies die Project-lêergids.

Bron: will.com

Voeg 'n opmerking