TestMace. Paspas nga pagsugod

TestMace. Paspas nga pagsugod

Kumusta tanan. Kami hinayhinay nga migawas gikan sa mga anino ug nagpadayon sa serye sa mga artikulo bahin sa among produkto. Pagkahuman nauna pagrepaso sa artikulo, nakadawat kami daghang feedback (kasagaran positibo), mga sugyot ug mga taho sa bug. Karon atong ipakita TestMace sa aksyon ug mahimo nimong mapasalamatan ang pipila sa mga bahin sa among aplikasyon. Para sa mas kompleto nga pagpaunlod, gitambagan ko ikaw sa pag-refer sa among dokumentasyon sa http://docs-ru.testmace.com. Busa, lakaw na!

Pag-instalar

Magsugod ta sa banalidad. Ang aplikasyon anaa ug aktuwal nga gisulayan sa tulo ka mga plataporma - Linux, Windows, MacOS. Mahimo nimong i-download ang installer alang sa OS nga gusto nimo among website. Alang sa mga tiggamit sa Linux posible nga i-install snap nga pakete. Kami naglaum nga ang Microsoft Store ug ang App Store sa dili madugay makalibot niini (Kinahanglan ba kini? Unsa sa imong hunahuna?).

Eksperimental nga senaryo

Gipili namo ang mosunod nga standard scenario isip among test subject:

  • Login: user - admin, password - password
  • pagdugang og bag-ong entry
  • Atong susihon nga ang rekord gidugang sa husto

Susihon nato https://testmace-quick-start.herokuapp.com/. Normal kini json-server, perpekto alang sa pagsulay sa ingon nga mga aplikasyon. Gidugang lang namo ang pagtugot pinaagi sa token sa tanang ruta sa json-server ug naghimo ug pamaagi sa pag-login aron madawat kini nga token. Kami molihok nga progresibo, anam-anam nga pauswagon ang among proyekto.

Paghimo og proyekto ug pagsulay sa paghimo og entidad nga walay pagtugot

Una, maghimo kita ug bag-ong proyekto (file->Bag-ong proyekto). Kung naglansad ka sa aplikasyon sa unang higayon, usa ka bag-ong proyekto ang awtomatikong maablihan. Una, atong sulayan ang paghimo og usa ka hangyo sa paghimo og bag-ong rekord (sa kaso ang paghimo og mga rekord magamit nga walay pagtugot). Pagpili og mga butang gikan sa Project node context menu Idugang ang node -> RequestLakang. Ibutang ang ngalan sa node sa paghimo-post. Ingon usa ka sangputanan, usa ka bag-ong node ang pagabuhaton sa kahoy ug usa ka tab alang niini nga node maablihan. Atong ibutang ang mosunod nga mga parameter sa paghangyo:

TestMace. Paspas nga pagsugod

Bisan pa, kung sulayan namon nga matuman ang hangyo, ang server magbalik usa ka 401 code ug kung wala’y pagtugot wala kami makakuha bisan unsa sa kini nga server. Aw, sa kinatibuk-an, sama sa gipaabut).

Pagdugang og hangyo sa pagtugot

Sama sa nahisgotan na, kita adunay usa ka POST endpoint /login, nga nagkuha sa json isip usa ka hangyo nga lawas sa porma: {"username": "<username>", "password": "<password>"}diin username ΠΈ password (sa makausa pa, gikan sa pasiuna nga parapo sa ibabaw) adunay mga kahulugan admin ΠΈ password matag usa. Agig tubag, kini nga endpoint nagbalik sa json sama {"token": "<token>"}. Among gamiton kini alang sa pagtugot. Magbuhat ta RequestLakang node nga adunay ngalan sulod, molihok isip katigulangan Project node Gamit ang drag-and-drop, ibalhin ang gihatag nga node sa punoan nga mas taas kaysa sa node paghimo-post. Atong ibutang ang mosunod nga mga parametro sa bag-ong gihimo nga hangyo:

Atong ipatuman ang hangyo ug dawaton ang duha ka gatos nga code nga adunay timaan sa tubag. Usa ka butang nga sama niini:

TestMace. Paspas nga pagsugod

Refactoring: pagtangtang sa pagdoble sa domain

Sa pagkakaron ang mga hangyo wala nalambigit sa usa ka script. Apan dili lamang kini ang disbentaha. Kung imong tan-awon pag-ayo, imong mamatikdan nga labing menos ang domain nadoble sa duha nga mga hangyo. Dili maayo. Panahon na aron i-refactor kini nga bahin sa umaabot nga script, ug ang mga variable makatabang kanato niini.

Sa una nga pagbanabana, ang mga variable nagsilbi parehas nga papel sama sa ubang parehas nga mga himan ug mga sinultian sa programming - pagwagtang sa pagdoble, pagdugang sa pagkabasa, ug uban pa. Mahimo nimong mabasa ang dugang bahin sa mga variable sa atong dokumentasyon. Sa kini nga kaso, kinahanglan namon ang mga variable sa gumagamit.

Atong ipasabut ang usa ka variable sa lebel sa Project node domain uban sa kahulogan https://testmace-quick-start.herokuapp.com. Tungod niini gikinahanglan nimo kini

  • Ablihi ang tab uban niini nga node ug i-klik ang calculator icon sa ibabaw nga tuo
  • Pag-klik sa + DUGANG VARIABLE
  • Pagsulod sa variable nga ngalan ug kantidad
    Sa among kaso, ang diyalogo nga adunay gidugang nga variable mahimong ingon niini:

TestMace. Paspas nga pagsugod

OK ra. Karon, tungod sa kabilin, mahimo natong gamiton kini nga variable sa mga kaliwat sa bisan unsang lebel sa nesting. Sa among kaso kini mga node sulod ΠΈ paghimo-post. Aron magamit ang usa ka variable sa usa ka natad sa teksto, kinahanglan nimo nga isulat ${<variable_name>}. Pananglitan, ang login url nakabig sa ${domain}/login, matag usa alang sa paghimo-post node url ang tan-awon ${domain}/posts.

Busa, gigiyahan sa DRY nga prinsipyo, gamay ra ang among gipauswag ang senaryo.

I-save ang token sa usa ka variable

Tungod kay naghisgut kita mahitungod sa mga baryable, atong palapdan og gamay kini nga hilisgutan. Sa pagkakaron, sa kaso sa malampuson nga pag-login, makadawat kami gikan sa server og usa ka timaan sa pagtugot, nga among gikinahanglan sa sunod nga mga hangyo. Atong i-save kini nga token sa usa ka variable. Kay ang bili sa variable matino sa panahon sa script execution, naggamit kami og espesyal nga mekanismo alang niini - dinamikong mga variable.

Una, maghimo kita og hangyo sa pag-login. Sa tab Giparada tubag, ibalhin ang cursor sa token ug sa menu sa konteksto (nga gitawag bisan sa tuo nga buton sa mouse o pinaagi sa pag-klik sa buton ...) pilia ang aytem I-assign sa variable. Usa ka dialog ang makita uban sa mosunod nga mga natad:

  • Dalan β€” hain nga bahin sa tubag ang gikuha (sa among kaso mao kini body.token)
  • Kasamtangang bili - unsa nga bili ang anaa sa dalan (sa among kaso kini ang token value)
  • Ngalan nga lainlain - ngalan sa variable diin Kasamtangang bili mapreserbar. Sa among kaso kini mahitabo token
  • binurotan, hubag β€” diin sa mga katigulangan ang baryable pagabuhaton Ngalan nga lainlain. Atong pilion ang Project

Ang nahuman nga dialog ingon niini:

TestMace. Paspas nga pagsugod

Karon sa matag higayon nga ang node gipatuman sulod dinamikong variable token ma-update sa bag-ong kantidad gikan sa tubag. Ug kini nga variable itago sa Project node ug, salamat sa kabilin, mahimong magamit sa mga kaliwat.

Aron ma-access ang mga dinamikong variable, kinahanglan nimo gamiton built-in nga variable $dynamicVar. Pananglitan, aron ma-access ang gitipigan nga token, kinahanglan nimo nga tawagan ${$dynamicVar.token}.

Gipasa namo ang token sa pagtugot ngadto sa mga hangyo

Sa miaging mga lakang nadawat namo ang token sa pagtugot ug ang kinahanglan namong buhaton mao ang pagdugang ug header Authorization uban sa kahulogan Bearer <tokenValue> sa tanan nga mga hangyo nga nanginahanglan pagtugot, lakip ang paghimo-post. Adunay pipila ka mga paagi sa pagbuhat niini:

  1. Kopyaha sa mano-mano ang token ug idugang ang ulohan sa pagtugot sa mga hangyo sa interes. Ang pamaagi nagtrabaho, apan ang paggamit niini limitado lamang sa mga hangyo sa "gihimo ug gilabay" nga tipo. Dili angay alang sa balik-balik nga pagpatuman sa mga script
  2. Gamita ang gamit pagtugot.
  3. Paggamit default nga mga ulohan

Ang paggamit sa ikaduha nga pamaagi daw klaro, apan sa konteksto niini nga artikulo, kini nga pamaagi ... dili makaiikag. Aw, sa tinuud: ang mekanismo sa pagtugot plus minus pamilyar kanimo gikan sa ubang mga himan (bisan kung kami adunay mga butang sama sa pagpanunod sa pagtugot) ug lagmit dili magpatunghag mga pangutana.

Ang laing butang mao ang default nga mga ulohan! Sa laktud nga pagkasulti, ang mga default nga mga ulohan gipanunod nga mga ulohan sa HTTP nga gidugang sa hangyo pinaagi sa default gawas kung klaro nga gibabagan. Gamit kini nga pag-andar, mahimo nimo, pananglitan, ipatuman ang kostumbre nga pagtugot o tangtangon lang ang pagdoble sa mga script. Gamiton nato ni nga feature para magpasa ug token sa mga header.

Kaniadto, among gitipigan ang token sa usa ka dinamikong variable $dynamicVar.token sa lebel sa Project node. Ang nahabilin mao ang pagbuhat sa mosunod:

  1. Tinoa ang default nga titulo Authorization uban sa kahulogan Bearer ${$dynamicVar.token} sa lebel sa Project node. Aron mahimo kini, sa Project interface sa node kinahanglan nimo nga ablihan ang usa ka dialog nga adunay default nga mga ulohan (button Mga pangulo sa ibabaw nga tuo nga suok) ug idugang ang katugbang nga titulo. Ang diyalogo nga adunay napuno nga mga kantidad ingon niini:
    TestMace. Paspas nga pagsugod
  2. I-disable kini nga header gikan sa hangyo sa pag-login. Kini masabtan: sa panahon sa pag-login, wala pa kami usa ka timaan ug among i-install kini uban niini nga hangyo. Busa, sa login interface sa hangyo sa tab Mga pangulo sa lugar Napanunod uncheck ang Authorization header.

Mao ra. Karon ang ulohan sa pagtugot idugang sa tanan nga mga hangyo nga mga anak sa Project node, gawas sa login node. Mogawas nga niining yugtoa aduna na kitay giandam nga script ug ang atong buhaton mao ang paglusad niini. Mahimo nimong ipadagan ang script pinaagi sa pagpili run sa menu sa konteksto sa Project node.

Pagsusi sa pagkahusto sa paghimo sa post

Niini nga yugto, ang among script mahimong maka-log in ug, gamit ang usa ka timaan sa pagtugot, maghimo usa ka post. Bisan pa, kinahanglan naton sigurohon nga ang bag-ong nahimo nga post adunay husto nga ngalan. Sa ato pa, sa esensya, ang nahabilin mao ang pagbuhat sa mosunod:

  • Pagpadala usa ka hangyo aron makadawat usa ka post pinaagi sa id,
  • Susiha nga ang ngalan nga nadawat gikan sa server motakdo sa ngalan nga gipadala sa paghimo sa post

Atong tan-awon ang unang lakang. Tungod kay ang kantidad sa id gitino sa panahon sa pagpatuman sa script, kinahanglan nimo nga maghimo usa ka dinamikong variable (tawgon nato kini postId) gikan sa node paghimo-post sa lebel sa Project node. Nahibal-an na namon kung giunsa kini buhaton, tan-awa lang ang seksyon I-save ang token sa usa ka variable. Ang nahabilin mao ang paghimo usa ka hangyo nga makadawat usa ka post gamit kini nga id. Aron mahimo kini, maghimo kita og RequestStep pagkuha-post uban sa mosunod nga mga parameter:

  • Type sa hangyo: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Aron ma-implementar ang ikaduhang lakang, kinahanglan natong masinati Pagpahayag higot. Ang Assertion node usa ka node nga nagtugot kanimo sa pagsulat sa mga tseke alang sa piho nga mga hangyo. Ang matag Assertion node mahimong adunay daghang mga assertion (mga tseke). Mahimo nimong mabasa ang dugang bahin sa tanan nga mga matang sa pagpahayag gikan sa among dokumentasyon. Atong gamiton Compare pagpahayag sa operator equal. Adunay ubay-ubay nga mga paagi sa paghimo og mga pahayag:

  1. Dugay. Manwal nga paghimo ug Assertion node gikan sa menu sa konteksto sa RequestStep node. Sa Assertion node nga gihimo, idugang ang assertion of interest ug pun-a ang mga field.
  2. Paspas. Paghimo ug Assertion node kauban ang assertion gikan sa RequestStep node nga tubag gamit ang context menu

Atong gamiton ang ikaduhang paagi. Ingon niini ang hitsura sa among kaso.

TestMace. Paspas nga pagsugod

Sa mga wala kasabot, ania ang nahitabo:

  1. Paghimo usa ka hangyo sa node pagkuha-post
  2. Sa tab Giparada tubag, tawga ang menu sa konteksto ug pilia Paghimo assertion -> Itandi -> managsama nga

Pahalipay, nahimo namon ang among una nga pagsulay! Simple, dili ba? Karon mahimo nimong madagan ang script sa hingpit ug malingaw sa resulta. Ang nahabilin mao ang pag-refactor niini og gamay ug kuhaa kini title sa usa ka lahi nga variable. Apan ibilin namo kini kanimo isip homework)

konklusyon

Sa kini nga giya, naghimo kami usa ka hingpit nga senaryo ug sa samang higayon gisusi ang pipila ka mga bahin sa among produkto. Siyempre, wala namo gigamit ang tanan nga gamit ug sa mosunod nga mga artikulo maghatag kami og detalyadong kinatibuk-ang panglantaw sa mga kapabilidad sa TestMace. Pagbantay!

PS Para sa mga tapolan kaayo sa pag-reproduce sa tanan nga mga lakang, kami maluloton nga nagrekord tipiganan uban sa proyekto gikan sa artikulo. Mahimo nimo kini ablihan sa file -> Bukas nga proyekto ug pilia ang Project folder.

Source: www.habr.com

Idugang sa usa ka comment