TestMace. Kurumidza kutanga

TestMace. Kurumidza kutanga

Mhoroi mose. Isu tiri kubuda zvishoma nezvishoma kubva mumimvuri uye tichienderera mberi nenhevedzano yezvinyorwa nezve chigadzirwa chedu. Mushure yapfuura chinyorwa chekuongorora, takagamuchira mhinduro dzakawanda (kunyanya dzakanaka), mazano uye mishumo yebug. Nhasi ticharatidza TestMace muchiito uye iwe unozogona kukoshesa mamwe maficha ekushandisa kwedu. Kuti uwane kunyudzwa kwakazara, ndinokupa zano kuti utarise kune zvinyorwa zvedu pa http://docs-ru.testmace.com. Saka, handei!

Kuiswa

Ngatitange nekurambidza. Iko kushandiswa kunowanikwa uye kwakaedzwa chaizvo pamapuratifomu matatu - Linux, Windows, MacOS. Unogona kudhawunirodha iyo yekuisa yeiyo OS yauri kufarira kubva webhusaiti yedu. Kune vashandisi veLinux zvinokwanisika kuisa snap package. Isu tinovimba chaizvo kuti Microsoft Store uye App Store ichakurumidza kusvika kwairi (Inodiwa here? Unofungei?).

Mamiriro ekuedza

Isu takasarudza inotevera yakajairwa mamiriro sechidzidzo chedu chebvunzo:

  • Login: mushandisi - admin, password - password
  • wedzera chinyorwa chitsva
  • Ngatitarisei kuti rekodhi yakawedzerwa nemazvo

We will test on https://testmace-quick-start.herokuapp.com/. Izvi zvakajairika json-server, yakakwana yekuyedza maapplication akadaro. Isu takangowedzera mvumo nechiratidzo kune ese json-server nzira uye takagadzira nzira yekupinda yekugamuchira ichi chiratidzo. Tichafamba zvishoma nezvishoma, zvishoma nezvishoma tichivandudza chirongwa chedu.

Kugadzira chirongwa uye kuyedza kugadzira mubatanidzwa pasina mvumo

Kutanga, ngatigadzire chirongwa chitsva (faira->Basa idzva) Kana iwe uri kuvhura application kekutanga, purojekiti nyowani inovhura yega. Kutanga, ngatiedzei kuita chikumbiro chekugadzira rekodhi nyowani (kana kugadzira zvinyorwa zviripo pasina mvumo). Sarudza zvinhu kubva kuProjekti node yemukati menyu Wedzera node -> RequestStep. Isa zita renodhi ku kugadzira-post. Nekuda kweizvozvo, node nyowani ichagadzirwa mumuti uye tebhu yeiyi node ichavhurwa. Ngatiisei zvinotevera zvikumbiro parameters:

TestMace. Kurumidza kutanga

Zvisinei, kana tikaedza kuzadzisa chikumbiro, sevha inodzorera kodhi ye401 uye pasina mvumo isu hatizowana chero chinhu pane iyi server. Zvakanaka, kazhinji, sezvaitarisirwa).

Kuwedzera chikumbiro chemvumo

Sezvambotaurwa, isu tine POST yekupedzisira /login, iyo inotora json senhengo yekukumbira yefomu: {"username": "<username>", "password": "<password>"}kupi username ΠΈ password (zvakare, kubva mundima yekusuma pamusoro) zvine zvazvinoreva admin ΠΈ password zvichiteerana. Mukupindura, iyi yekupedzisira inodzoka json senge {"token": "<token>"}. Tichaishandisa kupihwa mvumo. Ngatigadzirei RequestStep node ine zita Login, achaita samadzitateguru purojekiti node Uchishandisa kudhonza-uye-kudonha, fambisa yakapihwa node mumuti kumusoro kupfuura node kugadzira-post. Ngatiisei maparameter anotevera kuchikumbiro chichangobva kugadzirwa:

Ngatiite chikumbiro uye tigamuchire mazana maviri kodhi ine chiratidzo mumhinduro. Chinhu chakadai:

TestMace. Kurumidza kutanga

Refactoring: kubvisa domain duplication

Parizvino zvikumbiro hazvina kubatanidzwa mune imwe script. Asi iyi haisiriyo yega drawback. Kana iwe ukanyatsotarisisa, iwe uchaona kuti kanenge domain inodzokororwa mune zvese zvikumbiro. Hazvina kunaka. Yave nguva yekudzokorodza ichi chikamu cheramangwana script, uye zvinosiyana zvichatibatsira neizvi.

Kukufungidzira kwekutanga, zvinosiyana zvinoshanda zvakafanana mune mamwe maturusi akafanana uye mitauro yekuronga - kubvisa kudzokorora, kuwedzera kuverenga, nezvimwe. Iwe unogona kuverenga zvakawanda nezve variables mu zvinyorwa zvedu. Muchiitiko ichi, tichada kushandiswa kwevashandisi.

Ngatitsanangurei shanduko paProjekti node level domain zvine zvazvinoreva https://testmace-quick-start.herokuapp.com. Nokuda kweizvi zvakafanira

  • Vhura iyo tebhu neiyi node uye tinya pane calculator icon kumusoro kumusoro kurudyi
  • Dzvanya pa + wedzera VARIABLE
  • Isa zita rakasiyana uye kukosha
    Kwatiri isu, iyo dialog ine yakawedzera chinja inotaridzika seizvi:

TestMace. Kurumidza kutanga

OK. Zvino, nekuda kwenhaka, isu tinogona kushandisa shanduko iyi muzvizvarwa zvechero nhanho yekugara. Muchiitiko chedu aya mafundo Login ΠΈ kugadzira-post. Kuti ushandise shanduko mundima yemavara, unofanirwa kunyora ${<variable_name>}. Semuenzaniso, iyo login url inoshandurwa kuita ${domain}/login, zvichiteerana kugadzira-post node url ichaita senge ${domain}/posts.

Nekudaro, tichitungamirwa neiyo DRY musimboti, isu takavandudza zvishoma mamiriro acho.

Chengetedza chiratidzo kune chinoshanduka

Sezvo tiri kutaura pamusoro pezvakasiyana, ngatiwedzerei pane iyi nyaya zvishoma. Parizvino, kana ikabudirira kupinda, tinogashira kubva kuseva chiratidzo chemvumo, chatinozoda mune zvinotevera zvikumbiro. Ngatichengetedzei chiratidzo ichi mune shanduko. Nokuti kukosha kwekusiyana kuchatemerwa panguva yekunyora script, isu tinoshandisa yakakosha nzira yeizvi - dynamic variables.

Kutanga, ngatiite chikumbiro chekupinda. Mune tab Parsed mhinduro, fambisa chitubu pamusoro pechiratidzo uye mumenu yemukati (inodanwa nebhatani rekurudyi rembeva kana nekudzvanya pabhatani ...) sarudza chinhu Ipa kuchinjika. Nhaurirano ichaonekwa ine minda inotevera:

  • Nzira - ndeipi chikamu chemhinduro inotorwa (munyaya yedu ndeye body.token)
  • Ikozvino kukosha - kukosha kwei kuri paNzira (munyaya yedu iyi ndiyo kukosha kwechiratidzo)
  • Anochinja zita - zita rekuchinja uko Ikozvino kukosha ichachengetedzwa. Kwatiri zvichave zvakadaro token
  • Node - mune ipi yemadzitateguru shanduko ichagadzirwa Anochinja zita. Ngatisarudzei Chirongwa

Iyo dialog yapera inoita seizvi:

TestMace. Kurumidza kutanga

Iye zvino nguva dzose iyo node inoitwa Login dynamic variable token ichagadziridzwa nehuwandu hutsva kubva mumhinduro. Uye shanduko iyi ichachengetwa mukati purojekiti node uye, nekuda kwenhaka, ichavepo kune vazukuru.

Kuti uwane dynamic variables, unofanira kushandisa yakavakirwa-mukati shanduko $dynamicVar. Semuenzaniso, kuti uwane chiratidzo chakachengetwa, unofanirwa kufona ${$dynamicVar.token}.

Isu tinopfuudza chiratidzo chemvumo muzvikumbiro

Mumatanho apfuura takagamuchira chiratidzo chemvumo uye zvese zvatinoda kuita kuwedzera musoro Authorization zvine zvazvinoreva Bearer <tokenValue> muzvikumbiro zvese zvinoda mvumo, kusanganisira kugadzira-post. Pane nzira dzakawanda dzekuita izvi:

  1. Kopa nemaoko chiratidzo uye wedzera musoro wemvumo kune zvikumbiro zvekufarira. Iyo nzira inoshanda, asi kushandiswa kwayo kunongogumira kune zvikumbiro zve "yakaitwa uye yakaraswa" mhando. Haikodzeri kudzokororwa kunyorwa kwezvinyorwa
  2. Shandisa kushanda mvumo.
  3. Kushandisa default headers

Kushandisa nzira yechipiri inoratidzika pachena, asi mumamiriro ezvinhu echinyorwa ichi, nzira iyi ... isingafadzi. Zvakanaka, chaizvo: iyo mvumo yekubvisa uye minus yakajairika kwauri kubva kune mamwe maturusi (kunyangwe isu tiine zvinhu zvakadai mvumo nhaka) uye hazvibviri kumutsa mibvunzo.

Chimwe chinhu ndeye default misoro! Muchidimbu, misoro yakasarudzika inogarwa nhaka yeHTTP misoro iyo inowedzerwa kuchikumbiro nekukasira kunze kwekunge yakadzimwa zvakajeka. Uchishandisa mashandiro aya, unogona, semuenzaniso, kuita mvumo yetsika kana kungobvisa kudzokorora mumanyoro. Ngatishandisei chinhu ichi kupfuudza chiratidzo mumusoro.

Kare, isu takachengeta zvine hungwaru chiratidzo mune inoshanduka $dynamicVar.token paProject node level. Chasara kuita zvinotevera:

  1. Define default title Authorization zvine zvazvinoreva Bearer ${$dynamicVar.token} paProject node level. Kuti uite izvi, muProjekiti interface yenode iwe unofanirwa kuvhura dialog ine default misoro (bhatani Misoro mukona yekurudyi) uye wedzera zita rinoenderana. Iyo dialog ine akazadzwa kukosha ichaita seizvi:
    TestMace. Kurumidza kutanga
  2. Dzima musoro uyu kubva pachikumbiro chekupinda. Izvi zvinonzwisisika: panguva yekupinda, isu hatisati tine chiratidzo uye tichaiisa nechikumbiro ichi. Naizvozvo, mune yekupinda interface yekukumbira mune iyo tab Misoro munzvimbo ye Inhaka usatarise musoro weMvumo.

Ndizvo zvose. Iye zvino musoro wemvumo uchawedzerwa kune zvese zvikumbiro zviri vana veProjekti node, kunze kweiyo login node. Zvinoitika kuti panguva ino isu tatova ne script yakagadzirira uye zvese zvatinofanira kuita kurivhura. Iwe unogona kumhanya script nekusarudza manya muProjekti node yemamiriro ezvinhu.

Kuongorora chokwadi chekugadzirwa kwepositi

Panguva ino, script yedu inogona kupinda uye, uchishandisa chiratidzo chemvumo, gadzira positi. Nekudaro, isu tinofanirwa kuve nechokwadi chekuti iyo ichangobva kugadzirwa post ine zita chairo. Ndiko kuti, muchidimbu, chasara kuita zvinotevera:

  • Tumira chikumbiro chekugamuchira posvo neid,
  • Tarisa kuti zita rakagamuchirwa kubva kuseva rinoenderana nezita rakatumirwa paunenge uchigadzira positi

Ngatitarisei padanho rekutanga. Sezvo kukosha kweid kuchitemwa panguva yekunyora script, iwe unofanirwa kugadzira shanduko ine simba (ngatiidaidze. postId) kubva node kugadzira-post paProject node level. Isu tatoziva kuita izvi, ingo tarisa kune chikamu Chengetedza chiratidzo kune chinoshanduka. Chasara kugadzira chikumbiro chekugamuchira posvo uchishandisa iyi id. Kuti uite izvi, ngatigadzire YekukumbiraStep get-post ine zvinotevera parameters:

  • Chikumbiro chemhando: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Kuti tiite danho rechipiri, tinofanira kujairana naro Kusimbisa knot. An Assertion node inzvimbo inobvumidza iwe kunyora cheki yezvikumbiro chaizvo. Imwe neimwe Assertion node inogona kunge ine akati wandei zvirevo (macheki). Iwe unogona kuverenga zvakawanda nezve marudzi ese ekusimbisa kubva kune yedu zvinyorwa. Tichashandisa Compare kutaura nemushandisi equal. Pane nzira dzakawanda dzekugadzira zvirevo:

  1. Kureba. Nemaoko gadzira iyo Assertion node kubva pane yemukati menyu yeChikumbiroStep node. MuAssertion node yakagadzirwa, wedzera chirevo chekufarira uye zadza minda.
  2. Fast. Gadzira iyo Assertion node pamwe nechirevo kubva kuChikumbiroStep node mhinduro uchishandisa menyu yemukati

Ngatishandise nzira yechipiri. Izvi ndizvo zvazvichaita kunyaya yedu.

TestMace. Kurumidza kutanga

Kune avo vasinganzwisise, hezvino zviri kuitika:

  1. Ita chikumbiro mune node get-post
  2. Mune tab Parsed pindura, fonera menyu yemukati uye sarudza Ita chirevo -> enzanisa -> enzana

Makorokoto, isu takagadzira bvunzo yedu yekutanga! Nyore, handizvo here? Iye zvino unogona kumhanya script zvachose uye unakirwe nemugumisiro. Chasara kuita refactor zvishoma woibvisa title mune imwe yakasiyana siyana. Asi isu tichakusiira izvi sebasa repamba)

mhedziso

Mugwaro iri, takagadzira yakazara-yakazara mamiriro uye panguva imwechete yakaongorora zvimwe zvezvinhu zvechigadzirwa chedu. Ehe, isu hatina kushandisa ese mashandiro uye mune zvinotevera zvinyorwa isu tinopa yakadzama mhedziso yekugona kweTestMace. Ramba wakatarisa!

PS Kune avo vane usimbe zvakanyanya kubereka matanho ese, isu takanyora nemutsa repository neprojekti kubva kuchinyorwa. Unogona kuivhura nayo faira -> Vhura chirongwa uye sarudza iyo Project folda.

Source: www.habr.com

Voeg