TestMace. Pib nrawm

TestMace. Pib nrawm

Nyob zoo sawv daws. Peb maj mam tawm ntawm qhov ntxoov ntxoo thiab txuas ntxiv cov kab lus ntawm peb cov khoom. Tom qab yav dhau los tsab xov xwm tshuaj xyuas, peb tau txais ntau cov lus tawm tswv yim (feem ntau yog qhov zoo), cov lus qhia thiab cov lus ceeb toom kab mob. Hnub no peb yuav qhia TestMace nyob rau hauv kev txiav txim thiab koj yuav muaj peev xwm txaus siab rau ib co ntawm cov yam ntxwv ntawm peb daim ntawv thov. Txhawm rau kom nkag siab ntau ntxiv, kuv qhia koj kom xa mus rau peb cov ntaub ntawv ntawm http://docs-ru.testmace.com. Yog li, cia peb mus!

chaw

Cia peb pib nrog banality. Daim ntawv thov no muaj thiab tau sim rau peb lub platform - Linux, Windows, MacOS. Koj tuaj yeem rub tawm lub installer rau OS koj xav tau los ntawm peb lub vev xaib. Rau cov neeg siv Linux nws tuaj yeem nruab snap pob. Peb cia siab tias Microsoft Store thiab App Store yuav nyob ib puag ncig sai sai (Nws puas tsim nyog? Koj xav li cas?).

Kev sim scenario

Peb xaiv cov txheej txheem hauv qab no raws li peb qhov kev xeem:

  • Nkag mus: user - admin, password - password
  • ntxiv qhov nkag tshiab
  • Cia peb xyuas tias cov ntaub ntawv tau ntxiv lawm

Peb yuav sim rau https://testmace-quick-start.herokuapp.com/. Qhov no yog qhov qub json-server, zoo meej rau kev sim xws li kev siv. Peb nyuam qhuav ntxiv kev tso cai los ntawm token rau txhua txoj hauv kev json-server thiab tsim ib txoj hauv kev nkag mus kom tau txais cov token no. Peb yuav txav mus zuj zus, maj mam txhim kho peb qhov project.

Tsim ib qhov project thiab sim tsim ib qho chaw uas tsis muaj kev tso cai

Ua ntej, cia peb tsim ib qhov project tshiab (cov ntaub ntawv->Qhov dej num tshiab). Yog tias koj tab tom qhib daim ntawv thov thawj zaug, qhov project tshiab yuav qhib tau. Ua ntej, cia peb sim ua daim ntawv thov los tsim cov ntaub ntawv tshiab (yog tias tsim cov ntaub ntawv muaj nyob yam tsis muaj kev tso cai). Xaiv cov khoom los ntawm cov ntawv qhia zaub mov ntawm qhov project node Ntxiv node -> ThovStep. Teem lub npe node rau tsim-post. Raws li qhov tshwm sim, cov node tshiab yuav raug tsim nyob rau hauv tsob ntoo thiab ib lub tab rau node yuav qhib. Cia peb teev cov kev thov hauv qab no:

TestMace. Pib nrawm

Txawm li cas los xij, yog tias peb sim ua kom tiav qhov kev thov, tus neeg rau zaub mov yuav xa rov qab 401 code thiab tsis muaj kev tso cai peb yuav tsis tau txais dab tsi ntawm lub server no. Zoo, feem ntau, raws li xav tau).

Ntxiv ib daim ntawv thov kev tso cai

Raws li twb tau hais lawm, peb muaj POST kawg /login, uas siv json raws li lub cev thov ntawm daim ntawv: {"username": "<username>", "password": "<password>"}qhov twg username ΠΈ password (dua li, los ntawm cov nqe lus qhia saum toj no) muaj lub ntsiab lus admin ΠΈ password raws. Hauv kev teb, qhov kawg no rov qab json zoo li {"token": "<token>"}. Peb yuav siv nws rau kev tso cai. Wb tsim ThovStep node nrog npe ID nkag mus, yuav ua ib tug yawm txiv project node Siv luag-thiab-nco, txav ib qho chaw nyob rau hauv tsob ntoo siab tshaj qhov node tsim-post. Cia peb teeb tsa cov kev txwv hauv qab no rau qhov kev thov tsim tshiab:

Cia peb ua qhov kev thov thiab tau txais ob puas tus lej nrog lub token hauv cov lus teb. Ib yam li no:

TestMace. Pib nrawm

Refactoring: tshem tawm cov npe duplication

Txog tam sim no cov kev thov tsis txuas rau hauv ib tsab ntawv. Tab sis qhov no tsis yog qhov tsuas drawback. Yog tias koj saib ze, koj yuav pom tias yam tsawg kawg ntawm tus sau yog duplicated hauv ob qhov kev thov. Tsis zoo. Nws yog lub sij hawm los refactor no ib feem ntawm tsab ntawv yav tom ntej, thiab variables yuav pab tau peb nrog no.

Rau qhov kev kwv yees thawj zaug, cov kev hloov pauv ua haujlwm tib yam li hauv lwm cov cuab yeej zoo sib xws thiab cov lus programming - tshem tawm duplication, nce kev nyeem tau, thiab lwm yam. Koj tuaj yeem nyeem ntxiv txog kev hloov pauv hauv peb cov ntaub ntawv. Hauv qhov no, peb yuav xav tau cov neeg siv hloov pauv.

Cia peb txhais qhov sib txawv ntawm qhov Project node theem domain nrog lub ntsiab lus https://testmace-quick-start.herokuapp.comCov. Rau qhov no nws yog qhov tsim nyog

  • Qhib lub tab nrog node thiab nyem rau ntawm lub tshuab xam zauv icon nyob rau sab xis saum toj
  • Nyem rau + NTAU NTAU NTAU
  • Sau lub npe sib txawv thiab tus nqi
    Hauv peb qhov xwm txheej, kev sib tham nrog qhov sib txawv ntxiv yuav zoo li no:

TestMace. Pib nrawm

OK. Tam sim no, vim qhov qub txeeg qub teg, peb tuaj yeem siv qhov sib txawv no hauv cov xeeb leej xeeb ntxwv ntawm txhua qib zes. Hauv peb cov ntaub ntawv no yog cov nodes ID nkag mus ΠΈ tsim-post. Txhawm rau siv qhov sib txawv hauv cov ntawv sau, koj yuav tsum sau ${<variable_name>}. Piv txwv li, tus ID nkag mus url yog hloov dua siab tshiab rau ${domain}/login, feem rau tsim-post node url yuav zoo li ${domain}/posts.

Yog li, coj los ntawm DRY txoj cai, peb tau txhim kho qhov xwm txheej me ntsis.

Txuag lub token mus rau qhov sib txawv

Txij li thaum peb tab tom tham txog kev hloov pauv, cia peb nthuav dav ntawm cov ncauj lus no me ntsis. Tam sim no, nyob rau hauv cov ntaub ntawv ntawm kev ua tiav kev nkag mus, peb tau txais los ntawm tus neeg rau zaub mov ib qho kev tso cai token, uas peb yuav xav tau hauv kev thov tom ntej. Cia peb khaws qhov token no rau hauv qhov sib txawv. Vim tus nqi ntawm qhov sib txawv yuav raug txiav txim thaum lub sijhawm ua tiav tsab ntawv, peb siv lub tshuab tshwj xeeb rau qhov no - dynamic variables.

Ua ntej, cia peb ua daim ntawv thov nkag. Hauv tab Laj xeeb teb, txav tus cursor hla lub token thiab nyob rau hauv cov ntawv qhia zaub mov (uas yog hu ua nrog rau txoj cai nas khawm los yog nyem rau ntawm lub pob ...) xaiv cov khoom Muab rau qhov sib txawv. Ib lub dialog yuav tshwm sim nrog cov nram qab no:

  • Kab - Ib feem ntawm cov lus teb yog coj li cas (hauv peb rooj plaub nws yog body.token)
  • Tus nqi tam sim no - Tus nqi dab tsi nyob ntawm Txoj Kev (hauv peb qhov no yog tus nqi token)
  • Hloov lub npe - lub npe ntawm qhov sib txawv qhov twg Tus nqi tam sim no yuav khaws cia. Hauv peb qhov xwm txheej nws yuav yog token
  • Ntawm - nyob rau hauv uas cov poj koob yawm txwv qhov sib txawv yuav raug tsim Hloov lub npe. Cia peb xaiv qhov Project

Lub dialog ua tiav zoo li no:

TestMace. Pib nrawm

Tam sim no txhua zaus lub node raug tua ID nkag mus dynamic hloov pauv token yuav hloov kho nrog tus nqi tshiab los ntawm cov lus teb. Thiab qhov sib txawv no yuav muab khaws cia rau hauv project node thiab, ua tsaug rau qub txeeg qub teg, yuav muaj rau cov xeeb leej xeeb ntxwv.

Txhawm rau nkag mus rau dynamic variables, koj yuav tsum siv built-in variable $dynamicVar. Piv txwv li, txhawm rau nkag mus rau lub cim khaws cia, koj yuav tsum hu ${$dynamicVar.token}.

Peb dhau qhov kev tso cai token rau hauv kev thov

Hauv cov kauj ruam dhau los peb tau txais daim ntawv tso cai token thiab txhua yam peb yuav tsum tau ua yog ntxiv lub header Authorization nrog lub ntsiab lus Bearer <tokenValue> hauv txhua qhov kev thov uas xav tau kev tso cai, suav nrog tsim-post. Muaj ntau txoj hauv kev los ua qhov no:

  1. Manually luam lub token thiab ntxiv ib daim ntawv tso cai header rau qhov kev thov ntawm kev txaus siab. Txoj kev ua haujlwm, tab sis nws siv tsuas yog txwv rau kev thov ntawm "ua thiab pov tseg" hom. Tsis haum rau rov ua cov ntawv sau
  2. Siv cov kev ua haujlwm kev tso cai.
  3. Siv default headers

Siv txoj kev thib ob zoo li pom tseeb, tab sis nyob rau hauv cov ntsiab lus ntawm tsab xov xwm no, txoj hauv kev no yog ... uninteresting. Zoo, tiag tiag: qhov kev tso cai mechanism ntxiv rau qhov rho tawm yog paub rau koj los ntawm lwm yam cuab yeej (txawm tias peb muaj tej yam zoo li kev tso cai qub txeeg qub teg) thiab tsis zoo li yuav tsa cov lus nug.

Lwm yam yog lub neej ntawd headers! Nyob rau hauv ib lub ntsiab lus, default headers yog inherited HTTP headers uas tau ntxiv rau qhov kev thov los ntawm lub neej ntawd tshwj tsis yog tias muaj kev xiam oob qhab. Siv qhov kev ua haujlwm no, koj tuaj yeem, piv txwv li, ua raws li kev cai tso cai lossis tsuas yog tshem tawm cov ntawv luam tawm. Cia peb siv qhov tshwj xeeb no kom dhau lub token hauv cov headers.

Yav dhau los, peb ua tib zoo khaws lub token rau qhov sib txawv dynamic $dynamicVar.token nyob rau theem Project node. Txhua yam uas tseem tshuav yog ua raws li hauv qab no:

  1. Txhais lub npe default Authorization nrog lub ntsiab lus Bearer ${$dynamicVar.token} nyob rau theem Project node. Txhawm rau ua qhov no, nyob rau hauv qhov project interface ntawm node koj yuav tsum qhib lub dialog nrog default headings (khawm. Headers nyob rau sab xis saum toj kawg nkaus) thiab ntxiv cov npe sib xws. Lub dialog nrog cov nqi sau yuav zoo li no:
    TestMace. Pib nrawm
  2. Disable no header los ntawm tus ID nkag mus thov. Qhov no yog to taub: thaum lub sij hawm nkag mus, peb tseem tsis tau muaj ib tug token thiab peb yuav nruab nws nrog qhov kev thov no. Yog li ntawd, nyob rau hauv tus ID nkag mus interface ntawm qhov kev thov nyob rau hauv lub tab Headers hauv cheeb tsam ntawm Txais nyiaj uncheck qhov Authorization header.

Yog tag nrho. Tam sim no cov ntawv tso cai yuav muab ntxiv rau txhua qhov kev thov uas yog menyuam yaus ntawm Project node, tshwj tsis yog rau tus ID nkag mus. Nws hloov tawm tias nyob rau theem no peb twb muaj tsab ntawv npaj thiab txhua yam peb yuav tsum tau ua yog tso nws. Koj tuaj yeem khiav cov ntawv los ntawm kev xaiv khiav nyob rau hauv qhov Project node lub ntsiab lus teb zaub mov.

Tshawb xyuas qhov tseeb ntawm kev tsim cov ncej

Nyob rau theem no, peb tsab ntawv tuaj yeem nkag mus thiab, siv lub cim tso cai, tsim cov ntawv tshaj tawm. Txawm li cas los xij, peb yuav tsum xyuas kom meej tias qhov kev tshaj tawm tshiab tau tsim muaj lub npe raug. Ntawd yog, hauv qhov tseeb, txhua yam uas tseem tshuav yog ua cov hauv qab no:

  • Xa ib daim ntawv thov kom tau txais ib daim ntawv los ntawm id,
  • Xyuas kom meej tias lub npe tau txais los ntawm lub server sib phim lub npe xa thaum tsim cov ncej

Cia peb saib thawj kauj ruam. Txij li thaum tus nqi id yog txiav txim siab thaum ua tiav tsab ntawv, koj yuav tsum tsim kom muaj qhov hloov pauv hloov pauv (cia hu nws postId) los ntawm node tsim-post nyob rau theem Project node. Peb twb paub yuav ua li cas rau qhov no, cia li xa mus rau seem Txuag lub token mus rau qhov sib txawv. Txhua yam uas tseem tshuav yog tsim kom tau txais kev tshaj tawm siv tus ID no. Txhawm rau ua qhov no, cia peb tsim qhov RequestStep tau-post nrog rau cov nram qab no parameter:

  • Thov hom: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Txhawm rau ua qhov thib ob kauj ruam, peb yuav tsum tau paub txog Kev lees paub knot. Ib qho Assertion node yog ib qho uas tso cai rau koj sau cov tshev rau cov lus thov tshwj xeeb. Txhua qhov Assertion node tuaj yeem muaj ntau qhov kev lees paub (cov tshev). Koj tuaj yeem nyeem ntxiv txog txhua hom kev lees paub los ntawm peb cov ntaub ntawv. Peb yuav siv Compare kev lees paub nrog tus neeg teb xov tooj equal. Muaj ntau txoj hauv kev los tsim cov lus pom zoo:

  1. Ntev. Manually tsim ib qho Assertion node los ntawm cov ntawv qhia zaub mov ntawm RequestStep node. Hauv Assertion node tsim, ntxiv qhov kev lees paub ntawm kev txaus siab thiab sau rau hauv daim teb.
  2. Ceev ceev. Tsim ib qho Assertion node nrog rau kev lees paub los ntawm RequestStep node teb siv cov ntawv qhia zaub mov

Wb siv txoj kev thib ob. Qhov no yog qhov nws yuav zoo li rau peb rooj plaub.

TestMace. Pib nrawm

Rau cov neeg tsis nkag siab, ntawm no yog qhov tshwm sim:

  1. Ua ib qho kev thov hauv qhov node tau-post
  2. Hauv tab Laj xeeb teb, hu rau cov ntawv qhia zaub mov thiab xaiv Tsim kev lees paub -> Sib piv -> Vaj Huam Sib Luag

Pab kev zoo siab, peb tau tsim peb qhov kev sim thawj zaug! Yooj yim, tsis yog nws? Tam sim no koj tuaj yeem khiav cov ntawv tag nrho thiab txaus siab rau qhov tshwm sim. Txhua yam uas tseem tshuav yog kom rov kho nws me ntsis thiab muab nws tawm title mus rau hauv ib qho kev sib txawv. Tab sis peb yuav tso qhov no rau koj ua homework)

xaus

Nyob rau hauv phau ntawv qhia no, peb tsim ib tug tag nrho-fledged scenario thiab nyob rau tib lub sij hawm tshuaj xyuas ib co ntawm cov yam ntxwv ntawm peb cov khoom. Tau kawg, peb tsis tau siv tag nrho cov kev ua haujlwm thiab hauv cov lus hauv qab no peb yuav muab cov ncauj lus kom ntxaws txog cov peev txheej ntawm TestMace. Nyob twj ywm!

PS Rau cov neeg uas tub nkeeg dhau los ua kom rov ua dua txhua kauj ruam, peb tau ua siab zoo chaw cia khoom nrog qhov project los ntawm kab lus. Koj tuaj yeem qhib nws nrog cov ntaub ntawv -> Qhib qhov project thiab xaiv qhov Project folder.

Tau qhov twg los: www.hab.com

Ntxiv ib saib