
Tere kĂ”ik, siin on ! VĂ”ib-olla teavad paljud meist . Neile, kes just liitusid: me arendame IDE-d API-dega töötamiseks TestMace'i jaoks. KĂ”ige sagedamini esitatav kĂŒsimus TestMace'i ja konkurentide toodete vĂ”rdlemisel on - âMilles te Postmanist erinevate?â Otsustasime, et on aeg anda pĂ”hjalik vastus sellele kĂŒsimusele. JĂ€rgnevalt oleme punkthaaval kirja pannud meie eelised vĂ”rreldes .
SÔlmedeks jagamine
Kui töötate Postmaniga, siis teate, et pĂ€ringu liides sisaldab kogu vajalikku funktsionaalsust. Seal on skriptid, testid ja ise pĂ€ringud. See lihtsustab uustulnukate tööd, kuid suurte stsenaariumide puhul ei ole selline lĂ€henemine paindlik. Mis siis, kui soovite luua mitmeid pĂ€ringuid ja teha nende pealt agregatsiooni? Mis siis, kui soovite kĂ€ivitada skripti ilma pĂ€ringuta vĂ”i mitu loogiliselt eraldatud skripti jĂ€rjest? LĂ”ppude lĂ”puks oleks tore eraldada testid tavalistest utilitaarsetest skriptidest. Peale selle on lĂ€henemine âkĂ”ik funktsionaalsus ĂŒhte sĂ”lmeâ mitteskaleeritav - liides muutub kiiresti ĂŒlekoormatud.
TestMace jagab algselt kogu funktsionaalsuse erinevate tĂŒĂŒpidega sĂ”lmedeks. Soovid teha pĂ€ringu? Siin on sĂ”lm. Soovid kirjutada skripti? Siin on sĂ”lm. Vajad teste? Palun - sĂ”lm. Ah jaa, sa saad selle kĂ”ik keerata sĂ”lme. Ja kĂ”ik see on lihtsalt omavahel kombineeritav. Selline lĂ€henemine on mitte ainult vĂ€ga paindlik, vaid ka kooskĂ”las vastutuse jaotamise pĂ”himĂ”ttega, lubades kasutada ainult seda, mis on tĂ”eliselt vajalik hetkel. Miks mul on skripte ja teste vaja, kui ma tahan lihtsalt pĂ€ringut teha?
Inimesele arusaadav projekti formaat
TestMace'i ja Postmani vahel on kontseptuaalne erinevus salvestusmeetodis. Postmanis salvestatakse kĂ”ik pĂ€ringud kuskil kohalikus salvestuses. Kui on vajadus jagada pĂ€ringuid mitme kasutaja vahel, tuleb kasutada sisseehitatud sĂŒnkroniseerimist. Tegelikult on see ĂŒldaktsepteeritud lĂ€henemine, mis ei ole ilma puudusteta. Kuidas on andmete turvalisusega? LĂ”ppude lĂ”puks ei pruugi paljude ettevĂ”tete poliitika lubada andmete hoidmist kolmandatel isikutel. KĂŒll aga usume, et TestMace suudab pakkuda midagi paremat! Selle parenduse nimi on âinimesele arusaadav projekti formaatâ.
Alustame sellest, et TestMace's on pĂ”himĂ”tteliselt olemas âprojektâ mĂ”iste. Rakendus arendati algselt silmas pidades projektide salvestamist versioonihalduse sĂŒsteemides: projekti struktuur peegeldab praktiliselt tĂ€pselt failistruktuuri, salvestusformaadina kasutatakse yaml'i (ilma liigsete sulgude ja komadeeta), ning iga sĂ”lme failiesitus on dokumentatsioonis pĂ”hjalikult kirjeldatud. Ent enamikul juhtudel te ei pea sinna vaatama â kĂ”ik vĂ€ljade nimed on loogiliselt nimetatud.
Mis kasu see kasutajale annab? See vĂ”imaldab vĂ€ga paindlikult muuta meeskonna töövoogu, kasutades tuttavaid lĂ€henemisi. NĂ€iteks saavad arendajad hoida projekti samas hoidlas nagu backend. Harudes, peale koodi baasi otsese muutmise, saab arendaja parandada olemasolevaid pĂ€ringuskeeme ja teste. PĂ€rast muudatuste salvestamist hoidlas (git, svn, mercurial â mis teile rohkem meeldib) CI (teie lemmik, mitte kellelegi pealesurutud) kĂ€ivitab meie kĂ€surea utiliidi , ja pĂ€rast tĂ€itmist saadud aruanne (nt junit formaadis, mida testmace-cli samuti toetab) saadetakse vastavasse sĂŒsteemi. Ja eelpool mainitud turvalisuse kĂŒsimus ei ole enam probleem.
Kuidas nĂ€ete, TestMace ei kehtesta oma ökosĂŒsteemi ja paradigma. Selle asemel integreerub see lihtsalt juba vĂ€ljakujunenud protsessidesse.
DĂŒnaamilised muutujad
TestMace jĂ€rgib no-code kontseptsiooni: kui probleemi on vĂ”imalik lahendada ilma koodi kasutamata, pĂŒĂŒame anda selle vĂ”imaluse. Töö muutujaitega on just see funktsionaalsus, kus enamikul juhtudel suudetakse ilma programmeerimiseta hakkama.
NĂ€ide: saime serverilt vastuse ja tahame salvestada osa vastusest muutujasse. Postmanis kirjutaksime testskriptis (mis iseenesest on kummaline) midagi taolist:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);Kuid meie arvates tundub skripti kirjutamine nii lihtsa ja sageli kasutatava stsenaariumi jaoks ĂŒlemÀÀrane. SeetĂ”ttu on TestMace'is vĂ”imalik mÀÀrata muutuja tĂŒkk vastusest, kasutades graafilist liidest. Vaadake, kui lihtne see on:

Ja ja nĂŒĂŒd igas pĂ€ringus uuendatakse seda dĂŒnaamilist muutujat. Kuid vĂ”ite vĂ€ita, et Postmani lĂ€henemine on paindlikum ning see vĂ”imaldab mitte ainult mÀÀrata vÀÀrtust, vaid sooritada ka teatud eelprotsessimist. Nii saate eelmist nĂ€idet muuta:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));Noh, selleks on TestMace'is moodul, mis katab selle stsenaariumi. Eelmise juhtumi kordamiseks TestMace'is tuleb pÀringu jÀrel luua script moodul ja kasutada jÀrgmist koodi skripti jaoks:
const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));Nagu nÀete, on moodulite koostamine ka siin hÀsti toimiv. Ja sellise lihtsa juhtumi puhul, nagu eespool kirjeldatud, saate isegi lihtsalt mÀÀrata vÀljendi ${crypto.MD5($response.data)} muutujaks, mis luuakse graafilise liidese kaudu!
Testide loomine lÀbi GUI
Postman vĂ”imaldab testide loomist skriptide kirjutamise kaudu (Postmani puhul on see JavaScript). Sellel lĂ€henemisel on palju eeliseid â praktiliselt piiramatud vĂ”imalused, valmislahenduste olemasolu jne.
Kuid reaalsus on sageli selline (me ei ole sellised, elu on selline), et testijatel ei ole programmeerimisoskusi, kuid sooviks oleks juba praegu meeskonnale kasu tuua. Selliste juhtumite jaoks, jÀrgides no-code kontseptsiooni, vÔimaldab TestMace luua lihtsaid teste lÀbi graafilise liidese, ilma skriptide kirjutamiseta. NÀiteks, kuidas nÀeb vÀlja testimise loomise protsess, mis vÔrdleb vÀÀrtusi vÔrdsuse osas:

Kuid testide loomine graafilises redaktoris ei vÀlista . Siin on kÔik samad raamatukogud, mis on script moodulis, ja testide kirjutamiseks.
VÔimalus kÀivitada juba olemasolev stsenaarium lingi kaudu (Link moodul)
Sageli tekivad olukorrad, kus teatud pĂ€ringut vĂ”i isegi tervet stsenaariumi tuleb mitu korda teostada erinevates projektiosades. NĂ€iteks vĂ”ivad sellised pĂ€ringud olla kohandatud mitmeastmelised autentimised, keskkonna viimine soovitud olekusse jne. Ăldiselt, kui rÀÀkida programmeerimiskeelte terminoloogias, siis tahaks omada funktsioone, mida saab taaskasutada erinevates rakenduse osades. TestMace'is tĂ€idab seda funktsiooni solm. Kasutamine on vĂ€ga lihtne:
1) loo pÀring vÔi skript
2) loo Link tĂŒĂŒpi solm
3) mÀÀra parameetrites skripti link, mille lÔid esimesel sammul
EdasijĂ”udnud variandis saad mÀÀrata, milliseid dĂŒnaamilisi muutujaid skriptist tĂ”sta kĂ”rgemal seoses lingiga. KĂ”lab segaselt? Oletame, et oleme loonud kausta nimega create-post, mille sees mÀÀratakse antud solmi dĂŒnaamiline muutuja postId. NĂŒĂŒd saad Link solmis create-post-link selgesĂ”naliselt mÀÀrata, et muutuja postId mÀÀra vanemale create-post-link. See mehhanism (taas, rÀÀkides programmeerimisekeeles) on kasutatav âfunktsioonistâ tulemuse tagastamiseks. Ăsna Ă€ge, DRY tĂ€ies mahus ja jĂ€lle ĂŒkski koodirea ei kannatanud.

Postmani osas on funktsiooninÔue pÀringute taaskasutamiseks , ja tundub, et isegi on , et selle probleemiga tegeletakse. Praeguses vormis on Postmanil muidugi vÔimalus tÀitmise voogu muuta, mis teoorias vÔimaldab sellist kÀitumist rakendada, kuid see on pigem rÀpane nipp kui tÔeliselt toimiv lÀhenemine.
Muud erinevused
- Suurem kontroll muutujate nĂ€htavuse ĂŒle. Postmanis saab muutuja mÀÀrata kĂ”ige vĂ€iksemasse ulatusse, mis on kogum. TestMace vĂ”imaldab mÀÀrata muutujaid iga pĂ€ringu vĂ”i kausta jaoks. Postman Share kogum vĂ”imaldab eksportida ainult kogusid, samas kui TestMace jagamine töötab iga solmi jaoks.
- TestMace toetab , mis vĂ”ivad vaikimisi alla laadida lastesse pĂ€ringutesse. Postmanil on selle kohta olemas , ja see on isegi suletud, kuid lahenduseks pakutakse⊠. TestMace'is konfigureeritakse see kĂ”ik GUI kaudu ja on vĂ”imalus valikuline pĂ€randipealkirjade vĂ€ljalĂŒlitamine konkreetsetes jĂ€reltulijates.
- Tagasi/edasi. See töötab mitte ainult solmade redigeerimisel, vaid ka liigutamisel, kustutamisel, ĂŒmbernimetamisel ja muudel toimingutel, mis muudavad projekti struktuuri.
- PĂ€ringutele kinnitatud failid muutuvad projekti osaks ja salvestatakse koos sellega, samas kui need sĂŒnkroonitakse suurepĂ€raselt erinevalt Postmanist. (Jah, pole enam vaja igal korral kĂ€sitsi faile valida iga kĂ€ivitamise ajal ja edastada kolleegidele arhive.)
VÔimalused, mis juba ukse ees
Me ei suutnud vastu panna kiusatusel pÀeva valgele tuua vÀikene saladus jÀrgmiste vÀljalasetega, eriti kuna funktsionaalsus on vÀga meeldiv ja on juba eelvÀljaande lihvimise faasis. Nii et, tervitame.
Funktsioonid
Nagu teada, kasutatakse Postmanis vÀÀrtuste genereerimiseks nn dĂŒnaamilisi muutujaid. ja enamik funktsioone teenib valeandmete genereerimise eesmĂ€rki. NĂ€iteks, et genereerida juhuslikku e-posti aadressi, tuleb kirjutada:
{{$randomEmail}}Kuid kuna need on muutujad (kuigi dĂŒnaamilised), ei saa neid kasutada nagu funktsioone: need ei ole parametriseeritavad, seega ei saa stringilt rĂ€sida.
TestMace'is plaanime lisada «ausad» funktsioonid. Otse ${} sees saab mitte ainult viidata muutujaile, vaid ka funktsiooni kutsuda. See tÀhendab, et kui on vaja genereerida kuulus vale e-posti aadress, kirjutame lihtsalt
${faker.internet.email()}Lisaks sellele, et see on funktsioon, on mĂ€rgata, et on vĂ”imalik kutsuda objekti meetodit. Ja suurte tasapindade dĂŒnaamiliste muutujate loendi asemel on meil loogiliselt rĂŒhmitatud objektide kogum.
Ent mis saab siis, kui tahame arvutada stringi rÀsida? Lihtne!
${crypto.MD5($dynamicVar.data)}On mÀrgata, et parametriks vÔib isegi edastada muutujaid! Siin vÔib uudishimu lugeja kahtlustada midagi kahtlast...
JavaScripti kasutamine vÀljendites
... ja mitte ilmaasjata! Kui funktsioonide nĂ”uded sĂŒndisid, jĂ”udsime Ă€kki arusaamisele, et vĂ€ljendites on vaja lubada kehtiv JavaScript. Seega on nĂŒĂŒd teil vabadus kirjutada vĂ€ljendeid stiilis:
${1 + '' + crypto.MD5('asdf')}Ja kÔik see ilma skriptideta otse sisestusvÀljade sees!
Mis puudutab Postmanit, siis siin saab kasutada ainult muutujaid ja pĂŒĂŒdes kirjutada vĂ€himatki vĂ€ljendit, protestib validatsioon ja keelab selle arvutamise.
![]()
TÀpne automaatne tÀiendamine
Praegu sisaldab TestMace standardset automaatset tÀiendamist, mis nÀeb vÀlja jÀrgmiselt:

Siin on lisaks automaatselt tĂ€iendatavale reale nĂ€idatud, kellele see rida kuulub. See mehhanism töötab ainult vĂ€ljendites, mis on ĂŒmbritsetud sulgudega ${}.
Nagu mĂ€rkida vĂ”ib, on lisandunud visuaalsed mĂ€rgid, mis osutavad muutujate tĂŒĂŒbile (nĂ€iteks string, number, massiiv jne). Samuti on vĂ”imalik muuta automaatse tĂ€iendamise reĆŸiime (nĂ€iteks saab valida automaatse tĂ€iendamise muutujate vĂ”i pealkirjade jĂ€rgi). Kuid isegi see ei ole veel kĂ”ige tĂ€htsam!
Esiteks, automaatne tÀiendamine töötab isegi vÀljendites (kui see on vÔimalik). Nii see vÀlja nÀeb:

Ja teiseks, nĂŒĂŒd on automaatne tĂ€iendamine saadaval ka skriptides. Vaadake, kuidas see töötab!

Seda funktsionaalsust ei ole mĂ”tet Postmaniga vĂ”rrelda â seal on automaatne tĂ€iendamine piiratud ainult staatiliste muutujate, pealkirjade ja nende vÀÀrtuste loetelu (parandage mind, kui ma midagi unustasin). Skripte ei automaattĂ€iendata đ
KokkuvÔte
Oktoobris möödus aasta meie toote arendamisest. Selle aja jooksul oleme teinud palju ja mÔningates parameetrites oleme jÀÀnud konkurentide tasemele. Kuid meie eesmÀrk on luua tÔeliselt mugav tööriist API-dega töötamiseks. Meil on veel palju tööd ees, siin on meie projekti arendusplaan jÀrgmiseks aastaks: .
Teie tagasiside aitab meil paremini orienteeruda funktsioonide rohkusest, samas kui teie toetus toetab meid ja annab kindlust, et teeme vajalikku tööd. Juhtus nii, et tĂ€na on meie projekti jaoks tĂ€htis pĂ€ev â TestMace avaldamise pĂ€ev . Palun toetage meie projekti, see on meile vĂ€ga oluline. Eriti arvestades, et meie PH lehelt on tĂ€na ahvatlev pakkumine ja see on piiratud
Allikas: habr.com
