Zithunzi za TestMace. Kuyamba mwachangu

Zithunzi za TestMace. Kuyamba mwachangu

Moni nonse. Tikutuluka pang'onopang'ono pamithunzi ndikupitiriza mndandanda wa nkhani zokhudzana ndi mankhwala athu. Pambuyo m'mbuyomu ndemanga, talandira ndemanga zambiri (makamaka zabwino), malingaliro ndi malipoti a cholakwika. Lero tiwonetsa Zithunzi za TestMace mukuchitapo kanthu ndipo mudzatha kuyamika zina mwazogwiritsa ntchito. Kuti mumizidwe kwathunthu, ndikukulangizani kuti muyang'ane zolemba zathu pa http://docs-ru.testmace.com. Choncho, tiyeni!

kolowera

Tiyeni tiyambe ndi banality. Pulogalamuyi imapezeka ndipo imayesedwa pamapulatifomu atatu - Linux, Windows, MacOS. Mukhoza kukopera okhazikitsa kwa Os mukufuna kuchokera tsamba lathu. Kwa ogwiritsa ntchito a Linux ndizotheka kukhazikitsa snap paketi. Tikukhulupirira kuti Microsoft Store ndi App Store posachedwapa zifika kwa izo (Kodi ndizofunika? Mukuganiza bwanji?).

Zoyeserera

Tidasankha izi ngati phunziro lathu loyesa:

  • Lowani: wosuta - admin, password - password
  • onjezani cholowa chatsopano
  • Tiyeni tiwone ngati zolembazo zidawonjezedwa molondola

Tidzayesa https://testmace-quick-start.herokuapp.com/. Izi ndi zachilendo json-server, yabwino kuyesa mapulogalamu otere. Tangowonjezera chilolezo ndi chizindikiro kunjira zonse za json-server ndikupanga njira yolowera kuti tilandire chizindikirochi. Tiyenda pang'onopang'ono, pang'onopang'ono kukonza ntchito yathu.

Kupanga pulojekiti ndikuyesera kupanga bungwe popanda chilolezo

Choyamba, tiyeni tipange pulojekiti yatsopano (file->Ntchito yatsopano). Ngati mukuyambitsa pulogalamuyo kwa nthawi yoyamba, polojekiti yatsopano idzatsegulidwa yokha. Choyamba, tiyeni tiyese kupanga pempho kuti tipange mbiri yatsopano (ngati kupanga zolemba zilipo popanda chilolezo). Sankhani zinthu kuchokera pamenyu ya Project node Onjezani mfundo -> Pemphani Gawo. Khazikitsani dzina la node pangani positi. Zotsatira zake, node yatsopano idzapangidwa mumtengo ndipo tabu ya node iyi idzatsegulidwa. Tiyeni tiyike zopempha zotsatirazi:

Zithunzi za TestMace. Kuyamba mwachangu

Komabe, ngati tiyesera kukwaniritsa pempholi, seva idzabwezera code 401 ndipo popanda chilolezo sitidzapeza kalikonse pa seva iyi. Chabwino, ambiri, monga momwe amayembekezera).

Kuwonjezera pempho lololeza

Monga tanenera kale, tili ndi POST endpoint /login, zomwe zimatengera json ngati fomu yofunsira: {"username": "<username>", "password": "<password>"}kumene username ΠΈ password (kachiwirinso, kuchokera mundime yoyambira pamwambapa) ali ndi matanthauzo admin ΠΈ password motsatana. Poyankha, mapeto awa amabwereranso json ngati {"token": "<token>"}. Tidzagwiritsa ntchito chilolezo. Tiyeni tipange Pemphani Gawo nodi ndi dzina Lowani muakaunti, adzakhala ngati kholo Project mfundo Pogwiritsa ntchito kukokera-ndi-kugwetsa, sunthani mfundo yomwe mwapatsidwa mumtengo pamwamba kuposa mfundo pangani positi. Tiyeni tiyike magawo otsatirawa ku pempho lomwe langopangidwa kumene:

Tiyeni tipereke pempho ndikulandila nambala ya mazana awiri ndi chizindikiro mu yankho. Chinachake chonga ichi:

Zithunzi za TestMace. Kuyamba mwachangu

Refactoring: kuchotsa kubwereza kwa madambwe

Mpaka pano zopemphazo sizinalumikizidwe kukhala script imodzi. Koma izi si zokhazo drawback. Mukayang'anitsitsa, muwona kuti gawolo likubwerezedwa pazopempha zonse ziwiri. Zosakhala bwino. Yakwana nthawi yoti tichitenso mbali iyi ya script yamtsogolo, ndipo zosintha zidzatithandiza pa izi.

Kuyerekeza koyamba, zosinthika zimagwira ntchito yofanana ndi zida zina zofananira ndi zilankhulo zamapulogalamu - kuchotsa kubwereza, kuwerengeka, ndi zina zambiri. Mutha kuwerenga zambiri zamitundu yosiyanasiyana mu zolemba zathu. Pankhaniyi, tidzafunika zosintha za ogwiritsa.

Tiyeni tifotokoze zosinthika pamlingo wa Project node domain ndi tanthauzo https://testmace-quick-start.herokuapp.com. Kwa ichi ndikofunikira

  • Tsegulani tabu ndi mfundoyi ndikudina chizindikiro cha calculator kumanja kumtunda
  • Dinani pa + Wonjezerani KUSINTHA
  • Lowetsani dzina losinthika ndi mtengo
    Kwa ife, kukambirana ndi kusintha kowonjezera kudzawoneka motere:

Zithunzi za TestMace. Kuyamba mwachangu

CHABWINO. Tsopano, chifukwa cha cholowa, titha kugwiritsa ntchito kusinthaku mu mbadwa za mulingo uliwonse wa zisa. M'malo athu awa ndi ma node Lowani muakaunti ΠΈ pangani positi. Kuti mugwiritse ntchito chosinthika pagawo lolemba, muyenera kulemba ${<variable_name>}. Mwachitsanzo, ulalo wolowera umasinthidwa kukhala ${domain}/login, motsatana za pangani positi node url idzawoneka ngati ${domain}/posts.

Chifukwa chake, motsogozedwa ndi mfundo ya DRY, tasintha pang'ono zomwe zikuchitika.

Sungani chizindikiro ku chosinthika

Popeza tikukamba za zosintha, tiyeni tiwonjezere pamutuwu pang'ono. Pakalipano, ngati tilowa bwino, timalandira chizindikiro chovomerezeka kuchokera kwa seva, chomwe tidzafunika pazopempha zotsatirazi. Tiyeni tisunge chizindikiro ichi muzosintha. Chifukwa mtengo wa kusinthika udzadziwika panthawi ya script, timagwiritsa ntchito njira yapadera ya izi - zosinthika zosinthika.

Choyamba, tiyeni tichite pempho lolowera. Mu tabu Kugawidwa Yankhani, sunthani cholozera pamwamba pa chizindikirocho ndi menyu yankhaniyo (yomwe imatchedwa ndi batani lakumanja la mbewa kapena podina batani ...) sankhani chinthucho. Perekani kusinthasintha. Kukambirana kudzawoneka ndi magawo otsatirawa:

  • Njira - ndi gawo liti la yankho lomwe latengedwa (kwa ife ndi body.token)
  • Mtengo wapano - ndi mtengo wanji womwe uli m'mphepete mwa Njira (kwa ife ichi ndi chizindikiro cha mtengo)
  • Mayina osintha - dzina la kusintha komwe Mtengo wapano zidzasungidwa. Kwa ife zidzakhala token
  • Node - m'makolo omwe kusinthaku kudzapangidwa Mayina osintha. Tiyeni tisankhe Project

Nkhani yomaliza ikuwoneka motere:

Zithunzi za TestMace. Kuyamba mwachangu

Tsopano nthawi iliyonse node ikuchitidwa Lowani muakaunti kusintha kosinthika token idzasinthidwa ndi mtengo watsopano kuchokera ku yankho. Ndipo kusintha uku kudzasungidwa mkati Project node ndipo, chifukwa cha cholowa, chidzapezeka kwa mbadwa.

Kuti mupeze ma dynamic variables, muyenera kugwiritsa ntchito kusintha kosinthika $dynamicVar. Mwachitsanzo, kuti mupeze chizindikiro chosungidwa, muyenera kuyimba ${$dynamicVar.token}.

Timatumiza chizindikiro chololeza pazopempha

M'masitepe am'mbuyomu tidalandira chizindikiro chololeza ndipo zomwe tikuyenera kuchita ndikuwonjezera mutu Authorization ndi tanthauzo Bearer <tokenValue> muzopempha zonse zomwe zimafuna chilolezo, kuphatikizapo pangani positi. Pali njira zingapo zochitira izi:

  1. Koperani chizindikirocho pamanja ndikuwonjezera mutu wololeza pazomwe mukufuna. Njirayi imagwira ntchito, koma kugwiritsidwa ntchito kwake kumangokhala pazopempha za mtundu "wopangidwa ndi kutayidwa". Sikoyenera kubwereza mobwerezabwereza zolemba
  2. Gwiritsani ntchito chilolezo.
  3. Gwiritsani ntchito mitu yosasintha

Kugwiritsa ntchito njira yachiwiri kumawoneka bwino, koma m'nkhani ino, njira iyi ndi ... yosasangalatsa. Chabwino, kwenikweni: njira yololeza kuphatikiza kuchotsera ndizodziwika kwa inu kuchokera ku zida zina (ngakhale tili ndi zinthu ngati chilolezo cholowa) ndipo sangafunse mafunso.

Chinthu chinanso ndi mitu yosasinthika! Mwachidule, mitu yokhazikika imatengera mitu ya HTTP yomwe imawonjezedwa ku pempho mwachisawawa pokhapokha ngati itayimitsidwa. Pogwiritsa ntchito izi, mutha, mwachitsanzo, kukhazikitsa zilolezo kapena kungochotsa kubwereza muzolemba. Tiyeni tigwiritse ntchito izi popereka chizindikiro pamitu.

M'mbuyomu, tidasunga mwanzeru chizindikirocho kuti chizisintha $dynamicVar.token pa mlingo wa Project node. Zomwe zatsala ndikuchita izi:

  1. Tanthauzirani mutu wokhazikika Authorization ndi tanthauzo Bearer ${$dynamicVar.token} pa mlingo wa Project node. Kuti muchite izi, mu mawonekedwe a Project ya node muyenera kutsegula zokambirana ndi mitu yokhazikika (batani Omutu pakona yakumanja) ndikuwonjezera mutu wofananira. Zokambirana zomwe zili ndi zikhalidwe zodzazidwa ziziwoneka motere:
    Zithunzi za TestMace. Kuyamba mwachangu
  2. Letsani mutuwu kuchokera pa pempho lolowera. Izi ndizomveka: panthawi yolowera, tilibe chizindikiro ndipo tidzachiyika ndi pempholi. Chifukwa chake, mu mawonekedwe olowera a pempho mu tabu Omutu mdera la CholoΕ΅a chotsani chizindikiro cha Authorization.

Ndizomwezo. Tsopano mutu wovomerezeka udzawonjezedwa ku zopempha zonse zomwe ndi ana a Project node, kupatula malo olowera. Zikuwonekeratu kuti pakadali pano tili kale ndi script yokonzeka ndipo zomwe tiyenera kuchita ndikuyambitsa. Mutha kuyendetsa script posankha Thamangani mumndandanda wazinthu za Project node.

Kuyang'ana kulondola kwa kupanga positi

Pakadali pano, script yathu imatha kulowa ndipo, pogwiritsa ntchito chizindikiro chololeza, pangani positi. Komabe, tiyenera kuonetsetsa kuti positi yomwe yangopangidwa kumene ili ndi dzina lolondola. Izi ndiye kuti, zomwe zatsala ndikuchita izi:

  • Tumizani pempho kuti mulandire positi ndi id,
  • Onetsetsani kuti dzina lomwe mwalandira kuchokera ku seva likufanana ndi dzina lomwe linatumizidwa popanga positi

Tiyeni tione sitepe yoyamba. Popeza mtengo wa id umatsimikiziridwa panthawi ya script, muyenera kupanga kusintha kosinthika (tiyeni titchule postId) kuchokera ku node pangani positi pa mlingo wa Project node. Tikudziwa kale momwe tingachitire izi, tangotchulani gawoli Sungani chizindikiro ku chosinthika. Zomwe zatsala ndikupanga pempho loti mulandire positi pogwiritsa ntchito id iyi. Kuti tichite izi, tiyeni tipange RequestStep pezani positi ndi izi:

  • Mtundu wofunsira: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Kuti tikwaniritse sitepe yachiwiri, tiyenera kuidziwa bwino Kunena zoona mfundo. Node ya Assertion ndi node yomwe imakulolani kuti mulembe macheke pazofunsira zina. Node iliyonse ya Assertion imatha kukhala ndi zonena zingapo (macheke). Mutha kuwerenga zambiri zamitundu yonse yazidziwitso kuchokera patsamba lathu zolemba. Tidzagwiritsa ntchito Compare kuyankhulana ndi opareshoni equal. Pali njira zingapo zopangira malingaliro:

  1. Wautali. Pangani pamanja mfundo ya Assertion kuchokera pazosankha za RequestStep node. Mu Assertion node yomwe idapangidwa, onjezani zonena za chidwi ndikudzaza minda.
  2. Mofulumira. Pangani mfundo ya Assertion pamodzi ndi chitsimikiziro kuchokera ku RequestStep node yankho pogwiritsa ntchito menyu

Tiyeni tigwiritse ntchito njira yachiwiri. Izi ndi momwe zidzawonekere pamlandu wathu.

Zithunzi za TestMace. Kuyamba mwachangu

Kwa omwe sakumvetsa, izi ndi zomwe zikuchitika:

  1. Pangani pempho mu node pezani positi
  2. Mu tabu Kugawidwa Yankhani, imbani menyu yankhani ndikusankha Pangani zonena -> Yerekezerani -> wofanana

Zabwino zonse, tapanga mayeso athu oyamba! Zosavuta, sichoncho? Tsopano mutha kuyendetsa script kwathunthu ndikusangalala ndi zotsatira zake. Chotsalira ndikuchikonzanso pang'ono ndikuchichotsa title m'malo osiyanasiyana. Koma tikusiyirani izi ngati homuweki)

Pomaliza

Mu bukhuli, tinapanga zochitika zonse ndipo nthawi yomweyo tinawonanso zina mwazogulitsa zathu. Zachidziwikire, sitinagwiritse ntchito magwiridwe antchito onse ndipo m'nkhani zotsatirazi tipereka tsatanetsatane wa kuthekera kwa TestMace. Dzimvetserani!

PS Kwa iwo omwe ali aulesi kwambiri kuti athe kuberekanso masitepe onse, talemba mwachifundo posungira ndi polojekiti kuchokera m'nkhaniyo. Mutha kutsegula ndi file -> Tsegulani polojekiti ndikusankha chikwatu cha Project.

Source: www.habr.com

Kuwonjezera ndemanga