TestMace - një IDE e fuqishme për të punuar me API

Pershendetje te gjitheve! Sot duam t'i prezantojmë publikut të IT produktin tonë - një IDE për të punuar me API TestMace. Ndoshta disa prej jush tashmë e dinë për ne nga artikujt e mëparshëm. Megjithatë, nuk ka pasur një rishikim gjithëpërfshirës të mjetit, kështu që ne e adresojmë këtë mangësi fatkeqe.

TestMace - një IDE e fuqishme për të punuar me API

motivimi

Do të doja të filloja me mënyrën se si, në fakt, erdhëm në këtë jetë dhe vendosëm të krijonim mjetin tonë për punë të avancuar me API. Le të fillojmë me një listë të funksionaliteteve që duhet të ketë një produkt, për të cilin, sipas mendimit tonë, mund të themi se është një "IDE për të punuar me API":

  • Krijimi dhe ekzekutimi i pyetjeve dhe skripteve (sekuenca të pyetjeve)
  • Shkrimi i llojeve të ndryshme të testeve
  • Gjenerimi i testit
  • Puna me përshkrimet API, duke përfshirë importimin nga formate të tilla si Swagger, OpenAPI, WADL, etj.
  • Kërkesa tallëse
  • Mbështetje e mirë për një ose më shumë gjuhë për shkrimin e skripteve, duke përfshirë integrimin me bibliotekat e njohura
  • etj

Lista mund të zgjerohet për t'iu përshtatur shijes tuaj. Për më tepër, është e rëndësishme të krijohet jo vetëm vetë IDE, por edhe një infrastrukturë e caktuar, si sinkronizimi i cloud, mjetet e linjës së komandës, shërbimi i monitorimit në internet, etj. Në fund, tendencat e viteve të fundit na diktojnë jo vetëm funksionalitetin e fuqishëm të aplikacionit, por edhe ndërfaqen e tij të këndshme.

Kush ka nevojë për një mjet të tillë? Natyrisht, të gjithë ata që janë të paktën disi të lidhur me zhvillimin dhe testimin e API-ve janë zhvillues dhe testues =). Për më tepër, nëse për të parët shpesh mjafton të ekzekutohen pyetje të vetme dhe skripta të thjeshtë, atëherë për testuesit ky është një nga mjetet kryesore, i cili, ndër të tjera, duhet të përfshijë një mekanizëm të fuqishëm për të shkruar teste me aftësinë për t'i ekzekutuar ato në CI.

Pra, duke ndjekur këto udhëzime, ne filluam të krijojmë produktin tonë. Le të shohim se çfarë kemi arritur në këtë fazë.

Fillimi i shpejtë

Le të fillojmë me një njohje të parë me aplikacionin. Mund ta shkarkoni në faqen tonë të internetit. Për momentin, të 3 platformat kryesore janë të mbështetura - Windows, Linux, MacOS. Shkarkoni, instaloni, nisni. Kur e nisni për herë të parë, mund të shihni dritaren e mëposhtme:

TestMace - një IDE e fuqishme për të punuar me API

Klikoni në shenjën plus në krye të zonës së përmbajtjes për të krijuar kërkesën tuaj të parë. Skeda e pyetjeve duket si kjo:

TestMace - një IDE e fuqishme për të punuar me API

Le ta shohim më në detaje. Ndërfaqja e kërkesës është shumë e ngjashme me ndërfaqen e klientëve të njohur të pushimit, gjë që e bën më të lehtë migrimin nga mjete të ngjashme. Le të bëjmë kërkesën e parë në url https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - një IDE e fuqishme për të punuar me API

Në përgjithësi, në shikim të parë, paneli i përgjigjes gjithashtu nuk sjell ndonjë surprizë. Sidoqoftë, dëshiroj të tërheq vëmendjen tuaj në disa pika:

  1. Trupi i përgjigjes paraqitet në formën e një peme, e cila së pari shton përmbajtje informacioni dhe së dyti ju lejon të shtoni disa veçori interesante për të cilat më poshtë
  2. Ekziston një skedë Pohime, e cila shfaq një listë të testeve për një kërkesë të caktuar

Siç mund ta shihni, mjeti ynë mund të përdoret si një klient i përshtatshëm pushimi. Megjithatë, ne nuk do të ishim këtu nëse aftësitë e tij do të kufizoheshin vetëm në dërgimin e kërkesave. Më pas, unë do të përshkruaj konceptet bazë dhe funksionalitetin e TestMace.

Konceptet dhe veçoritë themelore

nyjë

Funksionaliteti TestMace ndahet në lloje të ndryshme nyjesh. Në shembullin e mësipërm, ne demonstruam funksionimin e nyjes RequestStep. Sidoqoftë, llojet e mëposhtme të nyjeve tani janë gjithashtu të disponueshme në aplikacion:

  • Hapi i kërkesës. Kjo është nyja përmes së cilës mund të krijoni një kërkesë. Mund të ketë vetëm një nyje Pohimi si element fëmijë.
  • Pohimi. Nyja përdoret për të shkruar teste. Mund të jetë vetëm një nyje fëmijë e nyjes RequestStep.
  • Dosja. Ju lejon të gruponi nyjet Folder dhe RequestStep brenda tyre.
  • Projekti. Kjo është nyja rrënjë, e krijuar automatikisht kur krijohet projekti. Përndryshe, ai përsërit funksionalitetin e nyjës Folder.
  • Lidhje. Lidhja me nyjen Folder ose RequestStep. Ju lejon të ripërdorni pyetjet dhe skriptet.
  • etj

Nyjet janë të vendosura në gërvishtje (paneli në pjesën e poshtme majtas, përdoret për krijimin e shpejtë të pyetjeve "të njëhershme") dhe në projekte (paneli lart majtas), për të cilat do të ndalemi më në detaje.

Projekt

Kur nisni aplikacionin, mund të vini re një linjë të vetme Projekti në këndin e sipërm majtas. Kjo është rrënja e pemës së projektit. Kur filloni një projekt, krijohet një projekt i përkohshëm, rruga drejt të cilit varet nga sistemi juaj operativ. Në çdo kohë mund ta zhvendosni projektin në një vend të përshtatshëm për ju.

Qëllimi kryesor i projektit është aftësia për të ruajtur zhvillimet në sistemin e skedarëve dhe për t'i sinkronizuar më tej ato përmes sistemeve të kontrollit të versioneve, ekzekutimin e skripteve në CI, rishikimin e ndryshimeve, etj.

variabla

Variablat janë një nga mekanizmat kyç të një aplikacioni. Ata prej jush që punojnë me mjete si TestMace mund ta kenë tashmë një ide se për çfarë po flasim. Pra, variablat janë një mënyrë për të ruajtur të dhënat e zakonshme dhe për të komunikuar midis nyjeve. Një analog, për shembull, janë variablat e mjedisit në Postman ose Insomnia. Megjithatë, ne shkuam më tej dhe e zhvilluam temën. Në TestMace, variablat mund të vendosen në nivelin e nyjeve. Çdo. Ekziston gjithashtu një mekanizëm për trashëgimin e variablave nga paraardhësit dhe mbivendosjen e variablave tek pasardhësit. Përveç kësaj, ka një numër variablash të integruar, emrat e variablave të integruar fillojnë me $. Ja disa prej tyre:

  • $prevStep — lidhje me variablat e nyjës së mëparshme
  • $nextStep — lidhje me variablat e nyjës së ardhshme
  • $parent - e njëjta gjë, por vetëm për paraardhësin
  • $response - përgjigje nga serveri
  • $env - variablat aktualë të mjedisit
  • $dynamicVar - variabla dinamike të krijuara gjatë ekzekutimit të skriptit ose pyetjes

$env - këto janë në thelb variabla të zakonshëm të nivelit të nyjes së projektit, megjithatë, grupi i variablave të mjedisit ndryshon në varësi të mjedisit të zgjedhur.

Ndryshorja aksesohet nëpërmjet ${variable_name}
Vlera e një ndryshoreje mund të jetë një variabël tjetër, apo edhe një shprehje e tërë. Për shembull, ndryshorja url mund të jetë një shprehje si
http://${host}:${port}/${endpoint}.

Më vete, vlen të përmendet mundësia e caktimit të variablave gjatë ekzekutimit të skriptit. Për shembull, shpesh ekziston nevoja për të ruajtur të dhënat e autorizimit (një shenjë ose i gjithë titulli) që erdhën nga serveri pas një hyrje të suksesshme. TestMace ju lejon të ruani të dhëna të tilla në variabla dinamike të një prej paraardhësve. Për të shmangur përplasjet me variablat ekzistuese "statike", variablat dinamike vendosen në një objekt të veçantë. $dynamicVar.

Skenarët

Duke përdorur të gjitha veçoritë e mësipërme, mund të ekzekutoni të gjithë skriptet e pyetjeve. Për shembull, krijimi i një entiteti -> kërkimi i një entiteti -> fshirja e një entiteti. Në këtë rast, për shembull, mund të përdorni nyjen Folder për të grupuar disa nyje RequestStep.

Plotësimi automatik dhe theksimi i shprehjes

Për punë të përshtatshme me variabla (dhe jo vetëm) është i nevojshëm plotësimi automatik. Dhe sigurisht, duke theksuar vlerën e një shprehjeje për ta bërë më të lehtë dhe më të përshtatshëm për të sqaruar se me çfarë është e barabartë një ndryshore e veçantë. Ky është pikërisht rasti kur është më mirë të shohësh një herë sesa të dëgjosh njëqind herë:

TestMace - një IDE e fuqishme për të punuar me API

Vlen të përmendet se plotësimi automatik zbatohet jo vetëm për variablat, por gjithashtu, për shembull, për titujt, vlerat e titujve të caktuar (për shembull, plotësimi automatik për kokën e llojit të përmbajtjes), protokollet dhe shumë më tepër. Lista përditësohet vazhdimisht ndërsa aplikacioni rritet.

Zhbër/ribëj

Zhbërja/ribërja e ndryshimeve është një gjë shumë e përshtatshme, por për disa arsye nuk zbatohet kudo (dhe mjetet për të punuar me API nuk bëjnë përjashtim). Por ne nuk jemi një nga ata!) Ne kemi zbatuar zhbërje/ribërje gjatë gjithë projektit, gjë që ju lejon të zhbëni jo vetëm redaktimin e një nyje specifike, por edhe krijimin, fshirjen, lëvizjen e saj, etj. Operacionet më kritike kërkojnë konfirmim.

Krijimi i testeve

Nyja e pohimit është përgjegjëse për krijimin e testeve. Një nga veçoritë kryesore është aftësia për të krijuar teste pa programim, duke përdorur redaktues të integruar.

Një nyje Pohimi përbëhet nga një grup pohimesh. Çdo pohim ka llojin e vet; për momentin ka disa lloje pohimesh

  1. Krahasoni vlerat - thjesht krahasoni 2 vlera. Ekzistojnë disa operatorë krahasimi: i barabartë, jo i barabartë, më i madh se, më i madh ose i barabartë me, më i vogël se, më i vogël ose i barabartë me.

  2. Përmban vlerë - kontrollon shfaqjen e një nënvargu në një varg.

  3. XPath - kontrollon që zgjedhësi në XML përmban një vlerë të caktuar.

  4. Pohimi i JavaScript është një skrip arbitrar javascript që kthen true në rast të suksesit dhe false në dështim.

Vërej se vetëm i fundit kërkon aftësi programimi nga përdoruesi, 3 pohimet e tjera krijohen duke përdorur një ndërfaqe grafike. Këtu, për shembull, është se si duket dialogu për krijimin e një deklarimi krahasues të vlerave:

TestMace - një IDE e fuqishme për të punuar me API

Qershia mbi tortë është krijimi i shpejtë i pohimeve nga përgjigjet, vetëm shikoni!

TestMace - një IDE e fuqishme për të punuar me API

Megjithatë, pohime të tilla kanë kufizime të dukshme, të cilat ju mund të dëshironi të përdorni një pohim javascript për t'i kapërcyer. Dhe këtu TestMace ofron gjithashtu një mjedis të rehatshëm me plotësim automatik, theksim sintaksor dhe madje edhe një analizues statik.

Përshkrimi i API

TestMace ju lejon jo vetëm të përdorni API, por edhe ta dokumentoni atë. Për më tepër, vetë përshkrimi ka gjithashtu një strukturë hierarkike dhe përshtatet organikisht në pjesën tjetër të projektit. Përveç kësaj, aktualisht është e mundur të importohen përshkrime API nga formatet Swagger 2.0 / OpenAPI 3.0. Vetë përshkrimi nuk është vetëm një peshë e vdekur, por është e integruar ngushtë me pjesën tjetër të projektit, në veçanti, plotësimi automatik i URL-ve, titujve HTTP, parametrave të pyetjeve, etj. është i disponueshëm, dhe në të ardhmen ne planifikojmë të shtojmë teste për përputhjen e përgjigjes me përshkrimin e API.

Nyja e ndarjes

Rasti: dëshironi të ndani një kërkesë problematike apo edhe një skenar të tërë me një koleg ose thjesht t'ia bashkëngjitni një gabimi. TestMace mbulon edhe këtë rast: aplikacioni ju lejon të serializoni çdo nyje dhe madje edhe një nënpemë në një URL. Copy-paste dhe lehtë mund ta transferoni kërkesën në një makinë ose projekt tjetër.

Formati i ruajtjes së projektit i lexueshëm nga njeriu

Për momentin, çdo nyje ruhet në një skedar të veçantë me ekstensionin yml (siç është rasti me nyjen Assertion), ose në një dosje me emrin e nyjes dhe skedarin index.yml në të.
Për shembull, kjo është se si duket skedari i kërkesës që kemi bërë në shqyrtimin e mësipërm:

indeks.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

Siç mund ta shihni, gjithçka është shumë e qartë. Nëse dëshironi, ky format mund të modifikohet lehtësisht me dorë.

Hierarkia e dosjeve në sistemin e skedarëve përsërit plotësisht hierarkinë e nyjeve në projekt. Për shembull, një skenar si:

TestMace - një IDE e fuqishme për të punuar me API

Harton sistemin e skedarëve në strukturën e mëposhtme (shfaqet vetëm hierarkia e dosjeve, por thelbi është i qartë)

TestMace - një IDE e fuqishme për të punuar me API

Kjo e bën më të lehtë procesin e rishikimit të projektit.

Importi nga Postier

Pas leximit të të gjitha sa më sipër, disa përdorues do të duan të provojnë (apo?) një produkt të ri ose (çfarë dreqin nuk po talleni!) ta përdorin plotësisht në projektin e tyre. Megjithatë, migrimi mund të ndalet nga një numër i madh zhvillimesh në të njëjtin Postier. Për raste të tilla, TestMace mbështet importimin e koleksioneve nga Postman. Për momentin mbështeten importet pa teste, por nuk përjashtojmë mbështetjen e tyre në të ardhmen.

Planet

Shpresoj që shumë prej atyre që kanë lexuar deri në këtë pikë të kenë pëlqyer produktin tonë. Megjithatë, kjo nuk është e gjitha! Puna për produktin është në lëvizje të plotë dhe këtu janë disa veçori që planifikojmë t'i shtojmë së shpejti.

Облачная синхронизација

Një nga karakteristikat më të kërkuara. Për momentin, ne propozojmë përdorimin e sistemeve të kontrollit të versioneve për sinkronizim, për të cilat po e bëjmë formatin më miqësor për këtë lloj ruajtjeje. Sidoqoftë, kjo rrjedhë pune nuk është e përshtatshme për të gjithë, kështu që ne planifikojmë të shtojmë një mekanizëm sinkronizimi të njohur për shumë njerëz përmes serverëve tanë.

CLI

Siç u përmend më lart, produktet e nivelit IDE nuk mund të bëjnë pa të gjitha llojet e integrimeve me aplikacionet ekzistuese ose rrjedhat e punës. CLI është pikërisht ajo që nevojitet për të integruar testet e shkruara në TestMace në procesin e integrimit të vazhdueshëm. Puna në CLI është në lëvizje të plotë; versionet e hershme do ta nisin projektin me një raport të thjeshtë konsole. Në të ardhmen ne planifikojmë të shtojmë daljen e raportit në formatin JUnit.

Sistemi i shtojcave

Me gjithë fuqinë e mjetit tonë, grupi i rasteve që kërkojnë zgjidhje është i pakufishëm. Në fund të fundit, ka detyra që janë specifike për një projekt të caktuar. Kjo është arsyeja pse në të ardhmen ne planifikojmë të shtojmë një SDK për zhvillimin e shtojcave dhe secili zhvillues do të jetë në gjendje të shtojë funksionalitet sipas dëshirës së tij.

Zgjerimi i gamës së llojeve të nyjeve

Ky grup nyjesh nuk mbulon të gjitha rastet e kërkuara nga përdoruesi. Nyjet që planifikohen të shtohen:

  • Nyja e skriptit - konverton dhe vendos të dhënat duke përdorur js dhe API-në përkatëse. Duke përdorur këtë lloj nyje, mund të bëni gjëra të tilla si skriptet para-kërkesës dhe pas kërkesës në Postman.
  • Node GraphQL - mbështetje graphql
  • Nyja e pohimit të personalizuar - do t'ju lejojë të zgjeroni grupin e pohimeve ekzistuese në projekt
    Natyrisht, kjo nuk është një listë përfundimtare; ajo do të përditësohet vazhdimisht për shkak të, ndër të tjera, komenteve tuaja.

FAQ

Si ndryshoni nga Postieri?

  1. Koncepti i nyjeve, i cili ju lejon të shkallëzoni pothuajse pafundësisht funksionalitetin e projektit
  2. Formati i projektit i lexueshëm nga njeriu me ruajtjen e tij në një sistem skedari, i cili thjeshton punën duke përdorur sistemet e kontrollit të versioneve
  3. Aftësia për të krijuar teste pa programim dhe mbështetje më të avancuar js në redaktorin e testit (përfundim automatik, analizues statik)
  4. Plotësim automatik i avancuar dhe nënvizim i vlerës aktuale të variablave

A është ky një produkt me burim të hapur?

Jo, për momentin burimet janë të mbyllura, por në të ardhmen po shqyrtojmë mundësinë e hapjes së burimeve

Nga çfarë jetoni?)

Së bashku me versionin falas, ne planifikojmë të lëshojmë një version me pagesë të produktit. Ai do të përfshijë kryesisht gjëra që kërkojnë një anë të serverit, për shembull, sinkronizimin.

Përfundim

Projekti ynë po ecën me hapa të mëdhenj drejt një lëshimi të qëndrueshëm. Megjithatë, produkti tashmë mund të përdoret, dhe reagimet pozitive nga përdoruesit tanë të hershëm janë provë e kësaj. Ne mbledhim në mënyrë aktive reagime, sepse pa bashkëpunim të ngushtë me komunitetin është e pamundur të ndërtohet një mjet i mirë. Mund të na gjeni këtu:

Faqja zyrtare

Telegram

I plogët

Facebook

Gjurmuesi i çështjeve

Presim dëshirat dhe sugjerimet tuaja!

Burimi: www.habr.com

Shto një koment