TestMace. Rapida komenco

TestMace. Rapida komenco

Saluton al ĉiuj. Ni malrapide eliras el la ombroj kaj daŭrigas la serion de artikoloj pri nia produkto. Post antaŭa reviziartikolo, ni ricevis multajn reagojn (plejparte pozitivajn), sugestojn kaj cimraportojn. Hodiaŭ ni montros TestMace en ago kaj vi povos aprezi kelkajn el la funkcioj de nia aplikaĵo. Por pli kompleta mergo, mi konsilas vin raporti al nia dokumentaro ĉe http://docs-ru.testmace.com. Do, ni iru!

fikso

Ni komencu per la banaleco. La aplikaĵo estas disponebla kaj efektive provita sur tri platformoj - Linukso, Vindozo, MacOS. Vi povas elŝuti la instalilon por la OS, pri kiu vi interesiĝas nia retejo. Por uzantoj de Linukso eblas instali klaki pakon. Ni vere esperas, ke la Microsoft Store kaj la App Store baldaŭ atingos ĝin (Ĉu necesas? Kion vi pensas?).

Eksperimenta scenaro

Ni elektis la sekvan norman scenaron kiel nia testobjekto:

  • Ensalutu: uzanto - administranto, pasvorto - pasvorto
  • aldonu novan enskribon
  • Ni kontrolu, ke la registro estis ĝuste aldonita

Ni provos https://testmace-quick-start.herokuapp.com/. Ĉi tio estas normala json-servilo, perfekta por provi tiajn aplikojn. Ni ĵus aldonis rajtigon per ĵetono al ĉiuj json-servilaj itineroj kaj kreis ensalutan metodon por ricevi ĉi tiun ĵetonon. Ni moviĝos laŭgrade, iom post iom plibonigante nian projekton.

Kreante projekton kaj provante krei enton sen rajtigo

Unue, ni kreu novan projekton (dosiero->Nova projekto). Se vi lanĉas la aplikaĵon por la unua fojo, nova projekto malfermos aŭtomate. Unue, ni provu fari peton por krei novan rekordon (kaze kreado de rekordoj estas disponebla sen rajtigo). Elektu erojn el la kunteksta menuo de Projekta nodo Aldonu nodon -> PetoPaŝo. Agordu la nodnomon al krei-post. Kiel rezulto, nova nodo estos kreita en la arbo kaj langeto por ĉi tiu nodo malfermos. Ni agordu la sekvajn petajn parametrojn:

TestMace. Rapida komenco

Tamen, se ni provas plenumi la peton, la servilo resendos 401-kodon kaj sen rajtigo ni ricevos nenion sur ĉi tiu servilo. Nu, ĝenerale, kiel atendite).

Aldonante rajtigan peton

Kiel jam dirite, ni havas POST-finpunkton /login, kiu prenas json kiel petan korpon de la formo: {"username": "<username>", "password": "<password>"}kie username и password (denove, el la enkonduka alineo supre) havas signifojn admin и password respektive. En respondo, ĉi tiu finpunkto resendas json like {"token": "<token>"}. Ni uzos ĝin por rajtigo. Ni kreu PetoPaŝo nodo kun nomo Ensaluti, agos kiel praulo projekto nodo Uzante tren-kaj-faligi, movu donitan nodon en la arbo pli alten ol la nodo krei-post. Ni agordu la sekvajn parametrojn al la nove kreita peto:

Ni plenumu la peton kaj ricevu la ducentan kodon kun la ĵetono en la respondo. Io kiel ĉi tio:

TestMace. Rapida komenco

Refaktorado: forigo de domajna duobligo

Ĝis nun la petoj ne estas ligitaj en ununuran skripton. Sed ĉi tio ne estas la sola malavantaĝo. Se vi rigardas atente, vi rimarkos, ke almenaŭ la domajno estas duobligita en ambaŭ petoj. Ne bona. Estas tempo refaktori ĉi tiun parton de la estonta skripto, kaj variabloj helpos nin pri tio.

Al unua aproksimado, variabloj servas la saman rolon kiel en aliaj similaj iloj kaj programlingvoj - forigante duobligon, pliigante legeblecon, ktp. Vi povas legi pli pri variabloj en nia dokumentaro. En ĉi tiu kazo, ni bezonos uzantajn variablojn.

Ni difinu variablon ĉe la Projekta noda nivelo domain kun signifo https://testmace-quick-start.herokuapp.com. Por ĉi tio necesas

  • Malfermu la langeton kun ĉi tiu nodo kaj alklaku la kalkulilikonon supre dekstre
  • Alklaku + ALDONU VARIABON
  • Enigu variablonomon kaj valoron
    En nia kazo, la dialogo kun la aldonita variablo aspektos jene:

TestMace. Rapida komenco

BONE. Nun, pro heredo, ni povas uzi ĉi tiun variablon en posteuloj de iu ajn nesta nivelo. En nia kazo ĉi tiuj estas nodoj Ensaluti и krei-post. Por uzi variablon en teksta kampo, vi devas skribi ${<variable_name>}. Ekzemple, la ensaluta URL estas konvertita al ${domain}/login, respektive por krei-post nodo url aspektos kiel ${domain}/posts.

Tiel, gvidite de la DRY-principo, ni iomete plibonigis la scenaron.

Konservu la ĵetonon al variablo

Ĉar ni parolas pri variabloj, ni iomete plivastigu ĉi tiun temon. Nuntempe, en kazo de sukcesa ensaluto, ni ricevas de la servilo rajtigan signon, kiun ni bezonos en postaj petoj. Ni konservu ĉi tiun ĵetonon en variablon. Ĉar la valoro de la variablo estos determinita dum skripto-ekzekuto, ni uzas specialan mekanismon por tio - dinamikaj variabloj.

Unue, ni faru ensalutan peton. En la langeto Analizita respondo, movu la kursoron super la ĵetonon kaj en la kunteksta menuo (kiu nomiĝas aŭ per la dekstra musbutono aŭ klakante sur la butono ...) elektu la eron Asigni al variablo. Dialogo aperos kun la sekvaj kampoj:

  • vojo — kiu parto de la respondo estas prenita (en nia kazo ĝi estas body.token)
  • Nuna valoro — kia valoro kuŝas laŭ la Vojo (en nia kazo ĉi tio estas la simbola valoro)
  • Varia nomo — nomo de la variablo kie Nuna valoro estos konservita. En nia kazo estos token
  • nodo — en kiu el la prauloj la variablo estos kreita Varia nomo. Ni elektu Projekton

La finita dialogo aspektas jene:

TestMace. Rapida komenco

Nun ĉiufoje kiam la nodo estas ekzekutita Ensaluti dinamika variablo token estos ĝisdatigita kun la nova valoro de la respondo. Kaj ĉi tiu variablo estos konservita en projekto nodo kaj, dank' al heredo, estos disponebla por posteuloj.

Por aliri dinamikajn variablojn, vi devas uzi enkonstruita variablo $dynamicVar. Ekzemple, por aliri konservitan ĵetonon, vi devas voki ${$dynamicVar.token}.

Ni transdonas la rajtigan signon en petojn

En la antaŭaj paŝoj ni ricevis la rajtigan ĵetonon kaj ĉio, kion ni devas fari, estas aldoni kaplinion Authorization kun signifo Bearer <tokenValue> en ĉiuj petoj postulantaj rajtigon, inkluzive krei-post. Estas pluraj manieroj fari tion:

  1. Mane kopiu la ĵetonon kaj aldonu rajtigan kaplinion al la interespetoj. La metodo funkcias, sed ĝia uzo estas limigita nur al petoj de la tipo "farita kaj forĵetita". Ne taŭgas por ripeta ekzekuto de skriptoj
  2. Uzu la funkciojn rajtigo.
  3. Uzu defaŭltaj kaplinioj

Uzi la duan metodon ŝajnas evidenta, sed en la kunteksto de ĉi tiu artikolo, ĉi tiu aliro estas... neinteresa. Nu, vere: la rajtiga mekanismo plus minuso estas konata al vi de aliaj iloj (eĉ se ni havas aferojn kiel rajtigo heredo) kaj verŝajne ne starigos demandojn.

Alia afero estas la defaŭltaj kaplinioj! Resume, defaŭltaj kaplinioj estas hereditaj HTTP-kapoj kiuj estas aldonitaj al la peto defaŭlte krom se eksplicite malŝaltitaj. Uzante ĉi tiun funkcion, vi povas, ekzemple, efektivigi kutiman rajtigon aŭ simple forigi duobligon en skriptoj. Ni uzu ĉi tiun funkcion por pasi ĵetonon en la kapliniojn.

Antaŭe, ni prudente konservis la ĵetonon en dinamikan variablon $dynamicVar.token ĉe la Projekta noda nivelo. Restas nur fari la jenon:

  1. Difinu defaŭltan titolon Authorization kun signifo Bearer ${$dynamicVar.token} ĉe la Projekta noda nivelo. Por fari tion, en la Projekta interfaco de la nodo vi devas malfermi dialogon kun defaŭltaj titoloj (butono kaplinioj en la supra dekstra angulo) kaj aldonu respondan titolon. La dialogo kun la plenigitaj valoroj aspektos jene:
    TestMace. Rapida komenco
  2. Malebligu ĉi tiun kaplinion de la ensaluta peto. Ĉi tio estas komprenebla: en la momento de ensaluto, ni ankoraŭ ne havas ĵetonon kaj ni instalos ĝin kun ĉi tiu peto. Tial, en la ensaluta interfaco de la peto en la langeto kaplinioj en la areo de Heredita malmarku la kaplinion de Rajtigo.

Tio estas ĉio. Nun la rajtiga kaplinio estos aldonita al ĉiuj petoj, kiuj estas filoj de la Projekta nodo, krom la ensaluta nodo. Rezultas, ke en ĉi tiu etapo ni jam havas skripton preta kaj ĉio, kion ni devas fari, estas lanĉi ĝin. Vi povas ruli la skripton elektante Kuri en la kunteksta menuo de la Projekta nodo.

Kontrolante la ĝustecon de la post-kreo

En ĉi tiu etapo, nia skripto povas ensaluti kaj, uzante rajtigan signon, krei afiŝon. Tamen ni devas certigi, ke la nove kreita afiŝo havas la ĝustan nomon. Tio estas, esence, ĉio, kio restas, estas fari la jenon:

  • Sendu peton ricevi afiŝon per identigilo,
  • Kontrolu, ke la nomo ricevita de la servilo kongruas kun la nomo sendita dum kreado de la afiŝo

Ni rigardu la unuan paŝon. Ĉar la id-valoro estas determinita dum skripto-ekzekuto, vi devas krei dinamikan variablon (ni nomu ĝin postId) de nodo krei-post ĉe la Projekta nodonivelo. Ni jam scias kiel fari tion, nur raportu al la sekcio Konservu la ĵetonon al variablo. Restas nur krei peton ricevi afiŝon uzante ĉi tiun identigilon. Por fari tion, ni kreu RequestStep get-post kun la sekvaj parametroj:

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

Por efektivigi la duan paŝon, ni devas konatiĝi kun Aserto nodo. Aserta nodo estas nodo, kiu permesas vin skribi ĉekojn por specifaj petoj. Ĉiu Aserta-nodo povas enhavi plurajn asertojn (ĉekojn). Vi povas legi pli pri ĉiuj specoj de asertoj de nia dokumentado. Ni uzos Compare aserto kun operatoro equal. Estas pluraj manieroj krei asertojn:

  1. Longa. Mane kreu Asertion-nodon el la kunteksta menuo de la RequestStep-nodo. En la Asertion-nodo kreita, aldonu la interesan aserton kaj plenigu la kampojn.
  2. Rapide. Kreu Asertion-nodon kune kun aserto de la RequestStep-noda respondo uzante la kuntekstan menuon

Ni uzu la duan metodon. Jen kiel ĝi aspektos por nia kazo.

TestMace. Rapida komenco

Por tiuj, kiuj ne komprenas, jen kio okazas:

  1. Faru peton en la nodo get-post
  2. En la langeto Analizita respondu, voku la kuntekstan menuon kaj elektu Krei aserton -> kompari -> egalaj

Gratulon, ni kreis nian unuan teston! Simpla, ĉu ne? Nun vi povas plene ruli la skripton kaj ĝui la rezulton. Restas nur refaktorigi ĝin iomete kaj elpreni ĝin title en apartan variablon. Sed ni lasos ĉi tion por vi kiel hejmtaskon)

konkludo

En ĉi tiu gvidilo, ni kreis plenkreskan scenaron kaj samtempe reviziis kelkajn el la trajtoj de nia produkto. Kompreneble, ni ne uzis ĉiujn funkciojn kaj en la sekvaj artikoloj ni provizos detalan superrigardon pri la kapabloj de TestMace. Restu agordita!

PS Por tiuj, kiuj estas tro mallaboremaj por reprodukti ĉiujn paŝojn, ni afable registris deponejo kun la projekto el la artikolo. Vi povas malfermi ĝin per dosiero -> Malfermu projekton kaj elektu la Projektan dosierujon.

fonto: www.habr.com

Aldoni komenton