TestMace. Cychwyn cyflym

TestMace. Cychwyn cyflym

Helo i gyd. Rydym yn araf yn dod allan o'r cysgodion ac yn parhau â'r gyfres o erthyglau am ein cynnyrch. Wedi blaenorol erthygl adolygu, cawsom lawer o adborth (cadarnhaol yn bennaf), awgrymiadau ac adroddiadau bygiau. Heddiw byddwn yn dangos TestMace ar waith a byddwch yn gallu gwerthfawrogi rhai o nodweddion ein cais. Am drochiad mwy cyflawn, fe'ch cynghoraf i gyfeirio at ein dogfennaeth yn http://docs-ru.testmace.com. Felly, gadewch i ni fynd!

Gosod

Gadewch i ni ddechrau gyda'r banality. Mae'r cymhwysiad ar gael ac wedi'i brofi mewn gwirionedd ar dri llwyfan - Linux, Windows, MacOS. Gallwch chi lawrlwytho'r gosodwr ar gyfer yr OS y mae gennych ddiddordeb ynddo ein gwefan. Ar gyfer defnyddwyr Linux mae'n bosibl gosod pecyn snap. Rydyn ni'n mawr obeithio y bydd Microsoft Store a'r App Store yn cyrraedd ato cyn bo hir (A yw'n angenrheidiol? Beth yw eich barn chi?).

Senario arbrofol

Fe wnaethom ddewis y senario safonol canlynol fel ein pwnc prawf:

  • Mewngofnodi: defnyddiwr - gweinyddwr, cyfrinair - cyfrinair
  • ychwanegu cofnod newydd
  • Gadewch i ni wirio bod y cofnod wedi'i ychwanegu'n gywir

Byddwn yn profi ar https://testmace-quick-start.herokuapp.com/. Mae hyn yn normal json-gweinydd, perffaith ar gyfer profi ceisiadau o'r fath. Rydym newydd ychwanegu awdurdodiad trwy docyn i holl lwybrau gweinydd json a chreu dull mewngofnodi i dderbyn y tocyn hwn. Byddwn yn symud yn gynyddol, gan wella ein prosiect yn raddol.

Creu prosiect a cheisio creu endid heb awdurdodiad

Yn gyntaf, gadewch i ni greu prosiect newydd (Ffeil->Prosiect newydd). Os ydych chi'n lansio'r cais am y tro cyntaf, bydd prosiect newydd yn agor yn awtomatig. Yn gyntaf, gadewch i ni geisio gwneud cais i greu cofnod newydd (rhag ofn y bydd creu cofnodion ar gael heb awdurdodiad). Dewiswch eitemau o ddewislen cyd-destun nod y Prosiect Ychwanegu nod -> Cais Cam. Gosodwch enw'r nod i creu-bost. O ganlyniad, bydd nod newydd yn cael ei greu yn y goeden a bydd tab ar gyfer y nod hwn yn agor. Gadewch i ni osod y paramedrau cais canlynol:

TestMace. Cychwyn cyflym

Fodd bynnag, os byddwn yn ceisio cyflawni'r cais, bydd y gweinydd yn dychwelyd cod 401 a heb awdurdodiad ni fyddwn yn cael unrhyw beth ar y gweinydd hwn. Wel, yn gyffredinol, yn ôl y disgwyl).

Ychwanegu cais am awdurdodiad

Fel y dywedwyd eisoes, mae gennym ddiweddbwynt POST /login, sy'n cymryd json fel corff cais y ffurflen: {"username": "<username>", "password": "<password>"}lle username и password (eto, o'r paragraff rhagarweiniol uchod) ystyron admin и password yn y drefn honno. Mewn ymateb, mae'r diweddbwynt hwn yn dychwelyd json like {"token": "<token>"}. Byddwn yn ei ddefnyddio ar gyfer awdurdodiad. Gadewch i ni greu Cais Cam nod ag enw Mewngofnodi, Bydd yn gweithredu fel hynafiad Prosiect nôd Gan ddefnyddio llusgo a gollwng, symudwch nod penodol yn y goeden yn uwch na'r nod creu-bost. Gadewch i ni osod y paramedrau canlynol i'r cais newydd ei greu:

Gadewch i ni weithredu'r cais a derbyn y ddau ganfed cod gyda'r tocyn yn yr ymateb. Rhywbeth fel hyn:

TestMace. Cychwyn cyflym

Ailffactorio: dileu dyblygu parth

Hyd yn hyn nid yw'r ceisiadau wedi'u cysylltu ag un sgript. Ond nid dyma'r unig anfantais. Os edrychwch yn ofalus, fe sylwch fod o leiaf y parth yn cael ei ddyblygu yn y ddau gais. Ddim yn dda. Mae'n bryd ail-ffactorio'r rhan hon o sgript y dyfodol, a bydd newidynnau yn ein helpu gyda hyn.

I frasamcan cyntaf, mae newidynnau yn cyflawni'r un rôl ag mewn offer tebyg ac ieithoedd rhaglennu - gan ddileu dyblygu, cynyddu darllenadwyedd, ac ati. Gallwch ddarllen mwy am newidynnau yn ein dogfennaeth. Yn yr achos hwn, bydd angen newidynnau defnyddiwr arnom.

Gadewch i ni ddiffinio newidyn ar lefel nod y Prosiect domain gydag ystyr https://testmace-quick-start.herokuapp.com. Ar gyfer hyn mae'n angenrheidiol

  • Agorwch y tab gyda'r nod hwn a chliciwch ar yr eicon cyfrifiannell ar y dde uchaf
  • Cliciwch ar + YCHWANEGU AMRYWIOL
  • Rhowch enw a gwerth amrywiol
    Yn ein hachos ni, bydd yr ymgom gyda'r newidyn ychwanegol yn edrych fel hyn:

TestMace. Cychwyn cyflym

IAWN. Nawr, oherwydd etifeddiaeth, gallwn ddefnyddio'r newidyn hwn mewn disgynyddion o unrhyw lefel nythu. Yn ein hachos ni, nodau yw'r rhain Mewngofnodi и creu-bost. Er mwyn defnyddio newidyn mewn maes testun, mae angen i chi ysgrifennu ${<variable_name>}. Er enghraifft, mae'r url mewngofnodi yn cael ei drawsnewid i ${domain}/login, yn y drefn honno ar gyfer creu-bost Bydd url nod yn edrych fel ${domain}/posts.

Felly, dan arweiniad yr egwyddor SYCH, rydym wedi gwella'r senario ychydig.

Arbedwch y tocyn i newidyn

Gan ein bod yn sôn am newidynnau, gadewch i ni ymhelaethu ar y pwnc hwn ychydig. Ar hyn o bryd, rhag ofn y bydd mewngofnodi llwyddiannus, rydym yn derbyn tocyn awdurdodi gan y gweinydd, y bydd ei angen arnom mewn ceisiadau dilynol. Gadewch i ni arbed y tocyn hwn yn newidyn. Achos bydd gwerth y newidyn yn cael ei bennu yn ystod gweithredu sgript, rydym yn defnyddio mecanwaith arbennig ar gyfer hyn - newidynnau deinamig.

Yn gyntaf, gadewch i ni berfformio cais mewngofnodi. Yn y tab Wedi'i ddosrannu ateb, symudwch y cyrchwr dros y tocyn ac yn y ddewislen cyd-destun (a elwir naill ai gyda botwm de'r llygoden neu drwy glicio ar y botwm ...) dewiswch yr eitem Aseinio i newidyn. Bydd deialog yn ymddangos gyda'r meysydd canlynol:

  • Llwybr — pa ran o'r atebiad a gymerir (yn ein hachos ni ydyw body.token)
  • Gwerth cyfredol — pa werth sydd ar hyd y Llwybr (dyma'r gwerth tocyn yn ein hachos ni)
  • Enw amrywiol — enw'r newidyn lle Gwerth cyfredol bydd yn cael ei gadw. Yn ein hachos ni bydd token
  • Nôd — ym mha un o'r hynafiaid y bydd y newidyn yn cael ei greu Enw amrywiol. Gadewch i ni ddewis Prosiect

Mae'r deialog gorffenedig yn edrych fel hyn:

TestMace. Cychwyn cyflym

Nawr bob tro y nod yn cael ei weithredu Mewngofnodi newidyn deinamig token yn cael ei ddiweddaru gyda'r gwerth newydd o'r ymateb. A bydd y newidyn hwn yn cael ei storio i mewn Prosiect nod a, diolch i etifeddiaeth, bydd ar gael i ddisgynyddion.

I gael mynediad at newidynnau deinamig, rhaid i chi ddefnyddio adeiledig yn newidyn $dynamicVar. Er enghraifft, i gael mynediad at docyn sydd wedi'i storio, mae angen i chi ffonio ${$dynamicVar.token}.

Rydym yn trosglwyddo'r tocyn awdurdodi i geisiadau

Yn y camau blaenorol cawsom y tocyn awdurdodi a'r cyfan sydd angen i ni ei wneud yw ychwanegu pennawd Authorization ag ystyr Bearer <tokenValue> ym mhob cais sydd angen awdurdodiad, gan gynnwys creu-bost. Mae sawl ffordd o wneud hyn:

  1. Copïwch y tocyn â llaw ac ychwanegwch bennawd awdurdodiad at y ceisiadau o ddiddordeb. Mae'r dull yn gweithio, ond mae ei ddefnydd yn gyfyngedig i geisiadau o'r math “gwneud a thaflu i ffwrdd” yn unig. Ddim yn addas ar gyfer cyflawni sgriptiau dro ar ôl tro
  2. Defnyddiwch y swyddogaeth awdurdodiad.
  3. Defnyddio penawdau rhagosodedig

Mae defnyddio'r ail ddull yn ymddangos yn amlwg, ond yng nghyd-destun yr erthygl hon, mae'r dull hwn yn ... anniddorol. Wel, mewn gwirionedd: mae'r mecanwaith awdurdodi ynghyd â minws yn gyfarwydd i chi o offer eraill (hyd yn oed os oes gennym ni bethau tebyg etifeddiaeth awdurdodi) ac mae'n annhebygol o godi cwestiynau.

Peth arall yw'r penawdau rhagosodedig! Yn gryno, mae penawdau rhagosodedig yn benawdau HTTP etifeddol sy'n cael eu hychwanegu at y cais yn ddiofyn oni bai eu bod wedi'u hanalluogi'n benodol. Gan ddefnyddio'r swyddogaeth hon, gallwch, er enghraifft, weithredu awdurdodiad personol neu gael gwared ar ddyblygu mewn sgriptiau. Gadewch i ni ddefnyddio'r nodwedd hon i basio tocyn yn y penawdau.

Yn flaenorol, fe wnaethom arbed y tocyn yn ddarbodus yn newidyn deinamig $dynamicVar.token ar lefel nod y Prosiect. Y cyfan sydd ar ôl yw gwneud y canlynol:

  1. Diffinio teitl diofyn Authorization gydag ystyr Bearer ${$dynamicVar.token} ar lefel nod y Prosiect. I wneud hyn, yn rhyngwyneb Prosiect y nod mae angen i chi agor deialog gyda phenawdau rhagosodedig (botwm Penawdau yn y gornel dde uchaf) ac ychwanegu teitl cyfatebol. Bydd yr ymgom gyda'r gwerthoedd wedi'u llenwi yn edrych fel hyn:
    TestMace. Cychwyn cyflym
  2. Analluogi'r pennawd hwn o'r cais mewngofnodi. Mae hyn yn ddealladwy: ar adeg mewngofnodi, nid oes gennym docyn eto a byddwn yn ei osod gyda'r cais hwn. Felly, yn y rhyngwyneb mewngofnodi y cais yn y tab Penawdau yn ardal Etifeddol dad-diciwch y pennawd Awdurdodiad.

Dyna i gyd. Nawr bydd y pennawd awdurdodiad yn cael ei ychwanegu at bob cais sy'n blant i nod y Prosiect, ac eithrio'r nod mewngofnodi. Mae'n ymddangos bod gennym ni sgript yn barod ar hyn o bryd a'r cyfan sy'n rhaid i ni ei wneud yw ei lansio. Gallwch chi redeg y sgript trwy ddewis Run yn newislen cyd-destun nod y Prosiect.

Gwirio cywirdeb creu'r post

Ar y cam hwn, gall ein sgript fewngofnodi a, gan ddefnyddio tocyn awdurdodi, greu post. Fodd bynnag, mae angen i ni wneud yn siŵr bod gan y post sydd newydd ei greu yr enw cywir. Dyna, yn ei hanfod, y cyfan sydd ar ôl yw gwneud y canlynol:

  • Anfon cais i dderbyn post trwy id,
  • Gwiriwch fod yr enw a dderbyniwyd gan y gweinydd yn cyfateb i'r enw a anfonwyd wrth greu'r post

Gadewch i ni edrych ar y cam cyntaf. Gan fod y gwerth id yn cael ei bennu yn ystod gweithredu'r sgript, mae angen i chi greu newidyn deinamig (gadewch i ni ei alw postId) o nôd creu-bost ar lefel nod y Prosiect. Rydym eisoes yn gwybod sut i wneud hyn, dim ond cyfeirio at yr adran Arbedwch y tocyn i newidyn. Y cyfan sydd ar ôl yw creu cais i dderbyn post gan ddefnyddio'r ID hwn. I wneud hyn, gadewch i ni greu RequestStep cael-post gyda'r paramedrau canlynol:

  • Math o gais: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Er mwyn gweithredu'r ail gam, mae angen inni ddod yn gyfarwydd ag ef Cadarnhad cwlwm. Mae nod honiad yn nod sy'n eich galluogi i ysgrifennu sieciau ar gyfer ceisiadau penodol. Gall pob nod Honiad gynnwys nifer o haeriadau (gwiriadau). Gallwch ddarllen mwy am bob math o honiadau o'n dogfennaeth. Byddwn yn defnyddio Compare honiad gyda gweithredwr equal. Mae sawl ffordd o greu honiadau:

  1. Hir. Creu nod Honiad â llaw o ddewislen cyd-destun y nod RequestStep. Yn y nod Honiad a grëwyd, ychwanegwch y datganiad o ddiddordeb a llenwch y meysydd.
  2. Cyflym. Creu nod Honiad ynghyd â honiad o'r ymateb nod RequestStep gan ddefnyddio'r ddewislen cyd-destun

Gadewch i ni ddefnyddio'r ail ddull. Dyma sut olwg fydd arno ar gyfer ein hachos.

TestMace. Cychwyn cyflym

I'r rhai nad ydyn nhw'n deall, dyma beth sy'n digwydd:

  1. Gwnewch gais yn y nod cael-post
  2. Yn y tab Wedi'i ddosrannu ateb, ffoniwch y ddewislen cyd-destun a dewiswch Creu honiad -> cymharu -> cyfartal

Llongyfarchiadau, rydym wedi creu ein prawf cyntaf! Syml, ynte? Nawr gallwch chi redeg y sgript yn gyfan gwbl a mwynhau'r canlyniad. Y cyfan sydd ar ôl yw ei ailffactorio ychydig a'i dynnu allan title i mewn i newidyn ar wahân. Ond byddwn yn gadael hwn i chi fel gwaith cartref)

Casgliad

Yn y canllaw hwn, fe wnaethom greu senario llawn ac ar yr un pryd adolygu rhai o nodweddion ein cynnyrch. Wrth gwrs, ni wnaethom ddefnyddio'r holl swyddogaethau ac yn yr erthyglau canlynol byddwn yn darparu trosolwg manwl o alluoedd TestMace. Aros diwnio!

PS I'r rhai sy'n rhy ddiog i atgynhyrchu'r holl gamau, rydym wedi bod yn garedig iawn ystorfa gyda'r prosiect o'r erthygl. Gallwch ei agor gyda Ffeil -> Prosiect agored a dewiswch y ffolder Prosiect.

Ffynhonnell: hab.com

Ychwanegu sylw