Sveiki visiem! Å odien mÄs vÄlamies iepazÄ«stinÄt IT sabiedrÄ«bu ar mÅ«su produktu - IDE darbam ar API
MotivÄcija
Es vÄlÄtos sÄkt ar to, kÄ mÄs patiesÄ«bÄ nonÄcÄm Å”ajÄ dzÄ«vÄ un nolÄmÄm izveidot savu rÄ«ku progresÄ«vam darbam ar API. SÄksim ar funkcionalitÄtes sarakstu, kurai vajadzÄtu bÅ«t produktam, par kuru, mÅ«suprÄt, mÄs varam teikt, ka tas ir āIDE darbam ar APIā:
- VaicÄjumu un skriptu (vaicÄjumu secÄ«bu) izveide un izpilde
- DažÄda veida kontroldarbu rakstÄ«Å”ana
- Testa paaudze
- Darbs ar API aprakstiem, tostarp importÄÅ”ana no tÄdiem formÄtiem kÄ Swagger, OpenAPI, WADL utt.
- IzsmejoŔi lūgumi
- Labs atbalsts vienai vai vairÄkÄm valodÄm skriptu rakstÄ«Å”anai, tostarp integrÄcijai ar populÄrÄm bibliotÄkÄm
- uc
Sarakstu var paplaÅ”inÄt, lai tas atbilstu jÅ«su gaumei. TurklÄt ir svarÄ«gi izveidot ne tikai paÅ”u IDE, bet arÄ« noteiktu infrastruktÅ«ru, piemÄram, mÄkoÅa sinhronizÄciju, komandrindas rÄ«kus, tieÅ”saistes uzraudzÄ«bas pakalpojumu utt. Galu galÄ pÄdÄjo gadu tendences mums nosaka ne tikai lietojumprogrammas jaudÄ«go funkcionalitÄti, bet arÄ« patÄ«kamo saskarni.
Kam vajadzÄ«gs Å”Äds rÄ«ks? AcÄ«mredzot visi tie, kas vismaz kaut kÄ ir saistÄ«ti ar API izstrÄdi un testÄÅ”anu, ir izstrÄdÄtÄji un testÄtÄji =). TurklÄt, ja pirmajiem bieži vien pietiek ar atseviŔķu vaicÄjumu un vienkÄrÅ”u skriptu izpildi, tad testÄtÄjiem tas ir viens no galvenajiem rÄ«kiem, kurÄ cita starpÄ jÄiekļauj spÄcÄ«gs testu rakstÄ«Å”anas mehÄnisms ar iespÄju tos palaist CI.
TÄtad, ievÄrojot Ŕīs vadlÄ«nijas, mÄs sÄkÄm veidot savu produktu. PaskatÄ«simies, ko esam sasnieguÅ”i Å”ajÄ posmÄ.
Ätrs sÄkums
SÄksim ar pirmo iepazÄ«Å”anos ar aplikÄciju. JÅ«s varat to lejupielÄdÄt
NoklikŔķiniet uz pluszÄ«mes satura apgabala augÅ”daļÄ, lai izveidotu savu pirmo pieprasÄ«jumu. VaicÄjuma cilne izskatÄs Å”Ädi:
ApskatÄ«sim to sÄ«kÄk. PieprasÄ«juma saskarne ir ļoti lÄ«dzÄ«ga populÄro atpÅ«tas klientu saskarnei, kas atvieglo migrÄciju no lÄ«dzÄ«giem rÄ«kiem. Iesniegsim pirmo pieprasÄ«jumu url
KopumÄ no pirmÄ acu uzmetiena atbildes panelis arÄ« nesagÄdÄ nekÄdus pÄrsteigumus. TomÄr es vÄlos vÄrst jÅ«su uzmanÄ«bu uz dažiem punktiem:
- Atbildes pamatteksts ir attÄlots koka formÄ, kas, pirmkÄrt, pievieno informÄcijas saturu un, otrkÄrt, ļauj pievienot dažas interesantas funkcijas, par kurÄm zemÄk
- Ir cilne Apgalvojumi, kurÄ tiek parÄdÄ«ts konkrÄta pieprasÄ«juma testu saraksts
KÄ redzat, mÅ«su rÄ«ku var izmantot kÄ Ärtu atpÅ«tas klientu. TomÄr mÄs nebÅ«tu Å”eit, ja tÄ iespÄjas bÅ«tu ierobežotas tikai ar pieprasÄ«jumu nosÅ«tÄ«Å”anu. TÄlÄk es izklÄstÄ«Å”u TestMace pamatjÄdzienus un funkcionalitÄti.
PamatjÄdzieni un funkcijas
Mezgls
TestMace funkcionalitÄte ir sadalÄ«ta dažÄda veida mezglos. IepriekÅ” minÄtajÄ piemÄrÄ mÄs demonstrÄjÄm RequestStep mezgla darbÄ«bu. TomÄr tagad lietojumprogrammÄ ir pieejami arÄ« Å”Ädi mezglu veidi:
- PieprasÄ«juma darbÄ«ba. Å is ir mezgls, caur kuru varat izveidot pieprasÄ«jumu. Tam var bÅ«t tikai viens apgalvojuma mezgls kÄ bÄrnelements.
- Apgalvojums. Mezgls tiek izmantots testu rakstÄ«Å”anai. Var bÅ«t tikai RequestStep mezgla atvasinÄtais mezgls.
- Mape. Ä»auj grupÄt mapes un RequestStep mezglus sevÄ«.
- Projekts. Å is ir saknes mezgls, kas tiek izveidots automÄtiski, kad projekts tiek izveidots. PretÄjÄ gadÄ«jumÄ tas atkÄrto mapes mezgla funkcionalitÄti.
- Saite. Saite uz mapi vai RequestStep mezglu. Ä»auj atkÄrtoti izmantot vaicÄjumus un skriptus.
- uc
Mezgli atrodas skrÄpÄjumos (panelis apakÅ”ÄjÄ kreisajÄ stÅ«rÄ«, tiek izmantots, lai Ätri izveidotu āvienreizÄjusā vaicÄjumus) un projektos (panelis augÅ”ÄjÄ kreisajÄ stÅ«rÄ«), pie kuriem mÄs pakavÄsimies sÄ«kÄk.
Projekts
Palaižot lietojumprogrammu, augÅ”ÄjÄ kreisajÄ stÅ«rÄ« var pamanÄ«t vientuļu Project rindiÅu. Å Ä« ir projekta koka sakne. UzsÄkot projektu, tiek izveidots pagaidu projekts, kura ceļŔ ir atkarÄ«gs no jÅ«su operÄtÄjsistÄmas. JebkurÄ laikÄ jÅ«s varat pÄrvietot projektu uz jums Ärtu vietu.
Projekta galvenais mÄrÄ·is ir iespÄja saglabÄt izstrÄdnes failu sistÄmÄ un tÄlÄk sinhronizÄt tÄs caur versiju kontroles sistÄmÄm, palaist skriptus CI, pÄrskatÄ«t izmaiÅas utt.
Mainīgie
MainÄ«gie lielumi ir viens no galvenajiem lietojumprogrammas mehÄnismiem. Tiem no jums, kas strÄdÄ ar tÄdiem rÄ«kiem kÄ TestMace, iespÄjams, jau ir priekÅ”stats par to, par ko mÄs runÄjam. TÄtad mainÄ«gie ir veids, kÄ uzglabÄt kopÄ«gus datus un sazinÄties starp mezgliem. PiemÄram, analogi ir vides mainÄ«gie programmÄ Pastnieks vai Insomnia. TomÄr mÄs gÄjÄm tÄlÄk un attÄ«stÄ«jÄm tÄmu. ProgrammÄ TestMace mainÄ«gos var iestatÄ«t mezgla lÄ«menÄ«. JebkurÅ”. PastÄv arÄ« mehÄnisms mainÄ«go lielumu pÄrmantoÅ”anai no priekÅ”teÄiem un mainÄ«go lielumu pÄrklÄÅ”anÄs pÄcnÄcÄjiem. TurklÄt ir vairÄki iebÅ«vÄti mainÄ«gie, iebÅ«vÄto mainÄ«go nosaukumi sÄkas ar $
. Šeit ir daži no tiem:
$prevStep
ā saite uz iepriekÅ”ÄjÄ mezgla mainÄ«gajiem$nextStep
ā saite uz nÄkamÄ mezgla mainÄ«gajiem$parent
- tas pats, bet tikai priekŔtecim$response
- atbilde no servera$env
- paÅ”reizÄjie vides mainÄ«gie$dynamicVar
- dinamiskie mainÄ«gie, kas izveidoti skripta vai vaicÄjuma izpildes laikÄ
$env
- tie bÅ«tÄ«bÄ ir parastie Project node lÄ«meÅa mainÄ«gie, tomÄr vides mainÄ«go kopa mainÄs atkarÄ«bÄ no izvÄlÄtÄs vides.
Mainīgajam var piekļūt, izmantojot ${variable_name}
MainÄ«gÄ vÄrtÄ«ba var bÅ«t cits mainÄ«gais vai pat visa izteiksme. PiemÄram, url mainÄ«gais var bÅ«t tÄda izteiksme kÄ
http://${host}:${port}/${endpoint}
.
AtseviŔķi ir vÄrts atzÄ«mÄt iespÄju skripta izpildes laikÄ pieŔķirt mainÄ«gos. PiemÄram, bieži vien ir jÄsaglabÄ autorizÄcijas dati (marÄ·ieris vai visa galvene), kas nÄca no servera pÄc veiksmÄ«gas pieteikÅ”anÄs. TestMace ļauj saglabÄt Å”Ädus datus viena senÄu dinamiskajos mainÄ«gajos. Lai izvairÄ«tos no sadursmÄm ar jau esoÅ”ajiem āstatiskajiemā mainÄ«gajiem, dinamiskie mainÄ«gie tiek ievietoti atseviÅ”Ä·Ä objektÄ $dynamicVar
.
ScenÄriji
Izmantojot visas iepriekÅ” minÄtÄs funkcijas, varat palaist visus vaicÄjuma skriptus. PiemÄram, entÄ«tijas izveide -> entÄ«tijas vaicÄÅ”ana -> entÄ«tijas dzÄÅ”ana. Å ÄdÄ gadÄ«jumÄ, piemÄram, varat izmantot Mapes mezglu, lai grupÄtu vairÄkus RequestStep mezglus.
AutomÄtiskÄ pabeigÅ”ana un izteiksmes izcelÅ”ana
Ärtam darbam ar mainÄ«gajiem (un ne tikai) ir nepiecieÅ”ama automÄtiskÄ pabeigÅ”ana. Un, protams, izceļot izteiksmes vÄrtÄ«bu, lai bÅ«tu vieglÄk un ÄrtÄk noskaidrot, ar ko konkrÄts mainÄ«gais ir vienÄds. Tas ir tieÅ”i tas gadÄ«jums, kad labÄk vienu reizi redzÄt, nekÄ simts reizes dzirdÄt:
Ir vÄrts atzÄ«mÄt, ka automÄtiskÄ pabeigÅ”ana tiek ieviesta ne tikai mainÄ«gajiem, bet arÄ«, piemÄram, galvenÄm, noteiktu galveÅu vÄrtÄ«bÄm (piemÄram, satura tipa galvenes automÄtiskÄ pabeigÅ”ana), protokoliem un daudz ko citu. Saraksts tiek pastÄvÄ«gi atjauninÄts, lietojumprogrammai augot.
Atsaukt/pÄrtaisÄ«t
IzmaiÅu atsaukÅ”ana/pÄrtaisÄ«Å”ana ir ļoti Ärta lieta, taÄu nez kÄpÄc ne visur tiek ieviesta (un rÄ«ki darbam ar API nav izÅÄmums). Bet mÄs neesam no tiem!) Visa projekta garumÄ esam ieviesuÅ”i atsaukÅ”anu/pÄrtaisÄ«Å”anu, kas ļauj atsaukt ne tikai konkrÄta mezgla rediÄ£ÄÅ”anu, bet arÄ« tÄ izveidi, dzÄÅ”anu, pÄrvietoÅ”anu utt. VissvarÄ«gÄkajÄm darbÄ«bÄm ir nepiecieÅ”ams apstiprinÄjums.
Testu veidoŔana
Apgalvojuma mezgls ir atbildÄ«gs par testu izveidi. Viena no galvenajÄm iezÄ«mÄm ir iespÄja izveidot testus bez programmÄÅ”anas, izmantojot iebÅ«vÄtos redaktorus.
Apgalvojumu mezgls sastÄv no apgalvojumu kopas. Katram apgalvojumam ir savs veids, Å”obrÄ«d ir vairÄki apgalvojumu veidi
-
SalÄ«dzinÄt vÄrtÄ«bas - vienkÄrÅ”i salÄ«dzina 2 vÄrtÄ«bas. Ir vairÄki salÄ«dzinÄÅ”anas operatori: vienÄds, nav vienÄds, lielÄks par, lielÄks vai vienÄds ar, mazÄks par, mazÄks vai vienÄds ar.
-
Satur vÄrtÄ«bu ā pÄrbauda apakÅ”virknes raÅ”anos virknÄ.
-
XPath ā pÄrbauda, āāvai XML atlasÄ«tÄjs satur noteiktu vÄrtÄ«bu.
-
JavaScript apgalvojums ir patvaļīgs JavaScript skripts, kas atgriež patiesu veiksmes gadÄ«jumÄ un nepatiesu, ja tas neizdodas.
Es atzÄ«mÄju, ka tikai pÄdÄjais no lietotÄja prasa programmÄÅ”anas prasmes, pÄrÄjie 3 apgalvojumi tiek veidoti, izmantojot grafisko interfeisu. PiemÄram, Å”Ädi izskatÄs dialoglodziÅÅ” vÄrtÄ«bu salÄ«dzinÄÅ”anas apgalvojuma izveidei:
KukurÅ«za uz kÅ«kas ir Ätra apgalvojumu radÄ«Å”ana no atbildÄm, paskatieties uz to!
TomÄr Å”Ädiem apgalvojumiem ir acÄ«mredzami ierobežojumi, kuru pÄrvarÄÅ”anai, iespÄjams, vÄlÄsities izmantot javascript apgalvojumu. Un Å”eit TestMace nodroÅ”ina arÄ« Ärtu vidi ar automÄtisko pabeigÅ”anu, sintakses izcelÅ”anu un pat statisku analizatoru.
API apraksts
TestMace ļauj ne tikai izmantot API, bet arÄ« to dokumentÄt. TurklÄt paÅ”am aprakstam ir arÄ« hierarhiska struktÅ«ra un tas organiski iekļaujas pÄrÄjÄ projekta daļÄ. TurklÄt paÅ”laik ir iespÄjams importÄt API aprakstus no Swagger 2.0 / OpenAPI 3.0 formÄtiem. Pats apraksts ir ne tikai pilnvÄrtÄ«gs, bet ir cieÅ”i integrÄts ar pÄrÄjo projektu, jo Ä«paÅ”i ir pieejama URL automÄtiskÄ pabeigÅ”ana, HTTP galvenes, vaicÄjuma parametri utt., un nÄkotnÄ mÄs plÄnojam pievienot testus. par atbildes atbilstÄ«bu API aprakstam.
KoplietoŔanas mezgls
GadÄ«jums: vÄlaties kopÄ«got problemÄtisku pieprasÄ«jumu vai pat visu skriptu ar kolÄÄ£i vai vienkÄrÅ”i pievienot to kļūdai. TestMace aptver arÄ« Å”o gadÄ«jumu: lietojumprogramma ļauj serializÄt jebkuru mezglu un pat apakÅ”koku URL. KopÄjiet un ielÄ«mÄjiet, un jÅ«s varat viegli pÄrsÅ«tÄ«t pieprasÄ«jumu uz citu iekÄrtu vai projektu.
CilvÄkam lasÄms projektu uzglabÄÅ”anas formÄts
Å obrÄ«d katrs mezgls tiek glabÄts atseviÅ”Ä·Ä failÄ ar yml paplaÅ”inÄjumu (kÄ tas ir ar Assertion node) vai mapÄ ar mezgla nosaukumu un tajÄ esoÅ”o failu index.yml.
PiemÄram, Å”Ädi izskatÄs pieprasÄ«juma fails, ko izveidojÄm iepriekÅ” minÄtajÄ pÄrskatÄ:
index.yml
children: []
variables: {}
type: RequestStep
assignVariables: []
requestData:
request:
method: GET
url: 'https://next.json-generator.com/api/json/get/NJv-NT-U8'
headers: []
disabledInheritedHeaders: []
params: []
body:
type: Json
jsonBody: ''
xmlBody: ''
textBody: ''
formData: []
file: ''
formURLEncoded: []
strictSSL: Inherit
authData:
type: inherit
name: Scratch 1
KÄ redzat, viss ir ļoti skaidrs. Ja vÄlaties, Å”o formÄtu var viegli rediÄ£Ät manuÄli.
Failu sistÄmas mapju hierarhija pilnÄ«bÄ atkÄrto projekta mezglu hierarhiju. PiemÄram, skripts, piemÄram:
SakÄrto failu sistÄmu ar Å”Ädu struktÅ«ru (tiek rÄdÄ«ta tikai mapju hierarhija, bet bÅ«tÄ«ba ir skaidra)
Tas atvieglo projekta izskatīŔanas procesu.
ImportÄt no Pastnieka
Izlasot visu iepriekÅ” minÄto, daži lietotÄji vÄlÄsies izmÄÄ£inÄt (vai ne?) jaunu produktu vai (kas gan nav joks!) pilnÄ«bÄ izmantot to savÄ projektÄ. TaÄu migrÄciju var apturÄt liela daļa notikumu tajÄ paÅ”Ä PastniekÄ. Å Ädos gadÄ«jumos TestMace atbalsta kolekciju importÄÅ”anu no Postman. Å obrÄ«d imports bez testiem tiek atbalstÄ«ts, taÄu neizslÄdzam to atbalstÄ«Å”anu arÄ« turpmÄk.
PlÄni
Es ceru, ka daudziem no tiem, kas ir izlasÄ«juÅ”i lÄ«dz Å”im brÄ«dim, mÅ«su produkts ir iepaticies. TomÄr tas vÄl nav viss! Darbs pie produkta rit pilnÄ sparÄ, un Å”eit ir dažas funkcijas, kuras plÄnojam drÄ«zumÄ pievienot.
MÄkoÅu sinhronizÄcija
Viena no pieprasÄ«tÄkajÄm funkcijÄm. Å obrÄ«d mÄs piedÄvÄjam sinhronizÄcijai izmantot versiju kontroles sistÄmas, kurÄm mÄs padarÄm formÄtu draudzÄ«gÄku Å”Äda veida glabÄÅ”anai. TomÄr Ŕī darbplÅ«sma nav piemÄrota visiem, tÄpÄc mÄs plÄnojam pievienot sinhronizÄcijas mehÄnismu, kas pazÄ«stams daudziem, izmantojot mÅ«su serverus.
CLI
KÄ minÄts iepriekÅ”, IDE lÄ«meÅa produkti nevar iztikt bez visa veida integrÄcijas ar esoÅ”ajÄm lietojumprogrammÄm vai darbplÅ«smÄm. CLI ir tieÅ”i tas, kas nepiecieÅ”ams, lai programmÄ TestMace rakstÄ«tos testus integrÄtu nepÄrtrauktÄ integrÄcijas procesÄ. Darbs pie CLI rit pilnÄ sparÄ; sÄkotnÄjÄs versijas uzsÄks projektu ar vienkÄrÅ”u konsoles pÄrskatu. NÄkotnÄ plÄnojam pievienot atskaites izvadi JUnit formÄtÄ.
SpraudÅu sistÄma
Neskatoties uz visu mÅ«su rÄ«ka jaudu, gadÄ«jumu kopums, kuriem nepiecieÅ”ami risinÄjumi, ir neierobežots. Galu galÄ ir uzdevumi, kas ir raksturÄ«gi konkrÄtam projektam. TÄpÄc nÄkotnÄ mÄs plÄnojam pievienot SDK spraudÅu izstrÄdei un katrs izstrÄdÄtÄjs varÄs pievienot funkcionalitÄti pÄc savas patikas.
Mezglu veidu klÄsta paplaÅ”inÄÅ”ana
Å Ä« mezglu kopa neaptver visus lietotÄja pieprasÄ«tos gadÄ«jumus. Mezgli, kurus plÄnots pievienot:
- Skripta mezgls - pÄrveido un ievieto datus, izmantojot js un atbilstoÅ”o API. Izmantojot Å”Äda veida mezglus, pakalpojumÄ Postman varat veikt tÄdas darbÄ«bas kÄ pirmspieprasÄ«juma un pÄcpieprasÄ«juma skripti.
- GraphQL mezgls - graphql atbalsts
- PielÄgots apgalvojumu mezgls ā ļaus paplaÅ”inÄt projektÄ esoÅ”o apgalvojumu kopu
Protams, Å”is nav galÄ«gais saraksts; tas tiks pastÄvÄ«gi atjauninÄts, cita starpÄ, pateicoties jÅ«su atsauksmÄm.
FAQ
Ar ko tu atŔķiries no Pastnieka?
- Mezglu jÄdziens, kas ļauj gandrÄ«z bezgalÄ«gi mÄrogot projekta funkcionalitÄti
- CilvÄkam lasÄms projekta formÄts ar saglabÄÅ”anu failu sistÄmÄ, kas atvieglo darbu, izmantojot versiju kontroles sistÄmas
- IespÄja izveidot testus bez programmÄÅ”anas un uzlabots js atbalsts testa redaktorÄ (automÄtiskÄ pabeigÅ”ana, statiskais analizators)
- Uzlabota automÄtiskÄ pabeigÅ”ana un mainÄ«go paÅ”reizÄjÄs vÄrtÄ«bas izcelÅ”ana
Vai Å”is ir atvÄrtÄ pirmkoda produkts?
NÄ, Å”obrÄ«d avoti ir slÄgti, bet nÄkotnÄ apsveram iespÄju avotus atvÄrt
No kÄ tu dzÄ«vo?)
KopÄ ar bezmaksas versiju mÄs plÄnojam izlaist produkta maksas versiju. Tas galvenokÄrt ietvers lietas, kurÄm nepiecieÅ”ama servera puse, piemÄram, sinhronizÄcija.
SecinÄjums
MÅ«su projekts ar lÄcieniem virzÄs uz stabilu izlaiÅ”anu. TomÄr produktu jau var izmantot, un pozitÄ«vÄs atsauksmes no mÅ«su agrÄ«najiem lietotÄjiem ir pierÄdÄ«jums tam. MÄs aktÄ«vi apkopojam atsauksmes, jo bez cieÅ”as sadarbÄ«bas ar sabiedrÄ«bu nav iespÄjams izveidot labu rÄ«ku. MÅ«s varat atrast Å”eit:
GaidÄ«sim JÅ«su vÄlmes un ieteikumus!
Avots: www.habr.com