
Tere kĂ”igile, siin on ! VĂ”imalik, et paljud teavad meid lĂ€bi . Neile, kes just liitusid: arendame IDE-d API-dele TestMace töötamiseks. KĂ”ige sagedamini esitatav kĂŒsimus TestMace'i vĂ”rdlemisel konkurentide toodetega on: âKuidas te Postmanist erinevate?â Otsustasime, et on aeg anda sellele kĂŒsimusele pĂ”hjalik vastus. Allpool oleme punktide kaupa vĂ€lja toonud meie eelised .
Ahnude jaotamine
Kui kasutate Postmanit, siis teate, et pĂ€ringu liides sisaldab kogu vajalikku funktsionaalsust. Siin on skriptid, testid ja ise pĂ€ringud. See lihtsustab algajate tööd, kuid suurte stsenaariumide puhul ei ole lĂ€henemine paindlik. Mis siis, kui soovite luua mitu pĂ€ringut ja teha nende pĂ”hjal kogumisi? Mis siis, kui soovite skripti kĂ€ivitada ilma pĂ€ringuta vĂ”i mitu loogiliselt eraldatud skripti jĂ€rjest? LĂ”ppude lĂ”puks oleks hea, kui testid ja tavalised utiliitskripti oleks eraldatud. Lisaks on lĂ€henemine, et âlisame kogu funktsionaalsuse ĂŒhte punktiâ, mitte skaleeritav â liides muutub kiiresti ĂŒlekoormatuks.
TestMace jaotab kogu funktsionaalsuse algselt erinevate tĂŒĂŒpide sĂ”lmedeks. Sa tahad teha pĂ€ringu? Siin on sĂ”lm. Kas soovid skripti kirjutada? Siin see on sĂ”lm. Kas vajate teste? Palun â sĂ”lm. Ahjaa, sa saad nende kĂ”ike keerata ka sĂ”lm. Ja kĂ”ik see sobitub omavahel lihtsalt. Selline lĂ€henemine on mitte ainult vĂ€ga paindlik, vaid ka vastutuse ĂŒhtsuse pĂ”himĂ”tte kohaselt vĂ”imaldab kasutada ainult seda, mis sul hetkel tĂ”eliselt vajalik on. Miks mul on vaja skripte ja teste, kui tahan lihtsalt teha taotlust?
Inimesele arusaadav projekti formaat
TestMace ja Postmani vahel on kontseptuaalne erinevus hoidmisviisis. Postmanis hoitakse kĂ”ik taotlused kuskil kohalikus salvestuses. Kui on vaja jagada taotlusi mitme kasutaja vahel, tuleb kasutada sisseehitatud sĂŒnkroonimist. Tegelikult on see levinud lĂ€henemine, millel on oma puudused. Kuidas on andmete turvalisusega? LĂ”ppude lĂ”puks vĂ”ib mĂ”nede ettevĂ”tete poliitika keelata andmete hoidmise kolmandate isikute juures. KĂŒll aga usume, et TestMace vĂ”ib pakkuda midagi paremat! Ja selle tĂ€iustuse nimi on âinimesele arusaadav projekti formaatâ.
Alustuseks on TestMace'is olemas mĂ”isted "projekt". Rakendus on algselt vĂ€lja töötatud projektide sĂ€ilitamiseks versioonihaldussĂŒsteemides: projekti struktuur peaaegu tĂ€pselt kattub failistruktuuriga, salvestusvorminguks on kasutatud yaml (ilma liigsete sulgudeta ja koma), ja iga sĂ”lme failiesitust on detailidokumentatsioonis kirjeldatud koos kommentaaridega. Enamasti ei pea te sinna sisse vaatama â kĂ”ik vĂ€ljade nimed on loogilised.
Mida see kasutajale annab? See vĂ”imaldab vĂ€ga paindlikult muuta meeskonna töövooge, kasutades tuttavaid lĂ€henemisi. NĂ€iteks vĂ”ivad arendajad salvestada projekti samas repository's, mis on backend. Harudes, peale koodi baasistruktuuri muutmise, saab arendaja parandada olemasolevaid pĂ€ringu stsenaariume ja teste. PĂ€rast muudatuste fikseerimist repository's (git, svn, mercurial â mis teile rohkem meeldib) kĂ€ivitab CI ( teie lemmik, kellegi peale ei surutud) meie konsooli utiliiti. , ja pĂ€rast aruande koostamist (nt junit formaadis, mida testmace-cli ka toetab) saadetakse see vastavasse sĂŒsteemi. Ja ĂŒlaltoodud turvakĂŒsimus ei ole enam probleem.
Nagu nĂ€ha, ei suru TestMace oma ökosĂŒsteemi ja paradigma peale. Selle asemel integreerub see hĂ”lpsasti juba kehtestatud protsessidesse.
DĂŒnaamilised muutujad
TestMace jĂ€rgib no-code kontseptsiooni: kui probleemi saab lahendada ilma koodita, pĂŒĂŒame seda vĂ”imalust pakkuda. Töö muutujatega on just see funktsioon, kus enamikul juhtudel saab hakkama ilma programmeerimiseta.
NĂ€ide: saime serverilt vastuse ja tahame salvestada osa vastusest muutuja. Postmanis kirjutaksime testskriptis (mis iseenesest on kummaline) midagi sellist:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);Kuid meie arvates tundub skripti kirjutamine nii lihtsa ja sageli kasutatava stsenaariumi jaoks liigsete tegemistena. SeetĂ”ttu on TestMace'is vĂ”imalik asignida muutuja tĂŒkk vastusest, kasutades graafilist kasutajaliidest. Vaadake, kui lihtne see on:

Ja nĂŒĂŒd iga pĂ€ringu korral vĂ€rskendatakse seda dĂŒnaamilist muutujat. Ent vĂ”ib kĂŒsida, et Postmani lĂ€henemine on paindlikum ning vĂ”imaldab mitte ainult mÀÀramist, vaid ka eelprotsessimist. Siin on, kuidas saab eelnevat nĂ€idet muuta:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));Noh, selle jaoks on TestMace'is plokk, mis katab seda stsenaariumi. Eelmise juhtumi kordamiseks, kuid juba TestMace'i kaudu, tuleb pÀrast pÀringut luua script plokk ja kasutada skriptina jÀrgmist koodi:
const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));Nagu nĂ€ete, on plokkide kooste ka siin head teenust osutatud. Ja nii lihtsa juhtumi puhul, nagu ĂŒlaltoodud, vĂ”ite isegi lihtsalt mÀÀrata vĂ€ljendi ${crypto.MD5($response.data)} graafilise kasutajaliidese kaudu loodud muutujale!
Testide loomine lÀbi GUI
Postman vÔimaldab testide loomiseks skripte kirjutada (Postmanis on see JavaScript). Selle lÀhenemise plussid on abiga praktiliselt piiramatu paindlikkus, olemasolevad lahendused jne.
Kuid reaalsus on sageli selline (me pole sellised, elu on selline), et testijatel pole programmeerimise oskusi, ja meeskonnale tahaks juba praegu kasu tuua. Selliste juhtumite jaoks, jÀrgides no-code kontseptsiooni, vÔimaldab TestMace luua lihtsaid teste graafilise liidese kaudu, ilma skriptide kirjutamiseta. NÀiteks nÀeb testimise loomise protsess vÀlja selline, mis vÔrrelda vÀÀrtusi vÔrdsuseks:

Kuid testide loomine graafilises redaktoris ei vÀlista vÔimalust . Siin on kÔik samad raamatukogud, mis on script sÔlmes, ja testide kirjutamiseks.
VÔimalus kÀivitada juba olemasolev stsenaarium lingi kaudu (Link sÔlm)
Tihti esinevad olukorrad, kus mĂ”ni pĂ€ring vĂ”i isegi terve stsenaarium tuleb tĂ€ita mitu korda projekti erinevates osades. NĂ€iteks vĂ”ivad sellised pĂ€ringud olla kohandatud mitmeastmelised autentimised, keskkonna viimine soovitud seisundisse jne. Ăldiselt, kui rÀÀkida programmeerimiskeeltest, siis on soov, et oleks funktsioonid, mida saab rakendada erinevates rakenduse osades. TestMace'is tĂ€idab seda funktsiooni moodul. Selle kasutamine on vĂ€ga lihtne:
1) looge pÀring vÔi stsenaarium
2) looge Link tĂŒĂŒpi moodul
3) mÀÀrake parameetrites link esimesel sammul loodud stsenaariumile
EeltĂ€iendatud variandi puhul vĂ”ite mÀÀrata, milliseid dĂŒnaamilisi muutujaid stsenaariumist edastada kĂ”rgemale tasemele seoses lingiga. KĂ”lab segaselt? Oletame, et oleme loonud kausta nimega create-post, mille sees mÀÀratakse sellele moodulile dĂŒnaamiline muutuja postId. NĂŒĂŒd Link moodulis create-post-link vĂ”ite selgelt mÀÀrata, et muutuja postId mÀÀratakse eelkĂ€ijale create-post-link. Antud mehhanismi (uuesti, kasutades programmeerimiskeelt) saab kasutada funktsiooni tulemuse tagastamiseks. Ăldiselt on see suurepĂ€rane, DRY tĂ€ies hiilguses ja ĂŒkski koodirida pole kannatama pidanud.

Mis puutub Postmani, siis funktsioonisoov pÀringute taaskasutamiseks , ja tundub, et on isegi , et selle probleemiga töötatakse. Praegusel kujul vÔimaldab Postman loomulikult muuta tÀitmisvoogu, mis teoorias vÔimaldab sellist kÀitumist rakendada, kuid see on pigem must nipp kui tÔeliselt toimiv lÀhenemine.
Muud erinevused
- Rohkem kontrolli muutujate ulatuse ĂŒle. Postmanis on vĂ€ikseim ulatus, kus saab muutuja mÀÀrata, kogumine. TestMace vĂ”imaldab mÀÀratleda muutujaid igasuguste pĂ€ringute vĂ”i kaustade jaoks. Postmanis vĂ”imaldab jagamise funktsioon eksportida ainult kogumisi, samas kui TestMace'i jagamine töötab igasuguste sĂ”lmede jaoks.
- TestMace toetab , mis vĂ”ivad vaikimisi aluseks olla alampĂ€ringutes. Postmanil on selle kohta , ja see on isegi suletud, kuid lahendusena pakutakse⊠. TestMace'is kĂ”ik konfigureeritav GUI kaudu ja on vĂ”imalus konkreetsetes jĂ€rglastes pĂ€ritud pĂ€iseid valikuliselt vĂ€lja lĂŒlitada.
- VĂ”ta tagasi / Korda. See töötab mitte ainult sĂ”lmede redigeerimisel, vaid ka liikumise, kustutamise, ĂŒmbernimetamise ja muude toimingute korral, mis muudavad projekti struktuuri.
- Failid, mis on seotud pĂ€ringutega, muutuvad projekti osaks ja salvestatakse koos sellega, ning sĂŒnkroniseeruvad suurepĂ€raselt, erinevalt Postman'ist. (Jah, ei ole enam vaja igal korral manuaalselt faile valida ja kolleegidele arhiivides edastada.)
Funktsioonid, mis on juba teel.
Me ei suutnud ahvatlusele vastu panna ja avasime natuke saladuseloori jĂ€rgmiste versioonide ĂŒle, eriti kui funktsionaalsus on vĂ€ga maitsev ja juba lĂ€bi pre-releas'i lihvimise. Niisiis, tervitame.
Funktsioonid
Nagu teada, kasutatakse Postman'is vÀÀrtuste genereerimiseks nn dĂŒnaamilisi muutujaid. ja absoluutne enamus funktsioone teenivad vale vÀÀrtuste genereerimist. NĂ€iteks, et genereerida juhuslikku e-posti, tuleb kirjutada:
{{$randomEmail}}Kuid kuna need on muutujad (kuigi dĂŒnaamilised), ei saa neid funktsioonidena kasutada: need ei ole parameetriseeritavad, seetĂ”ttu ei saa stringilt rĂ€sida.
TestMace'is kavatseme lisada âausadâ funktsioonid. Otse ${} sees saab mitte ainult viidata muutujale, vaid ka funktsiooni kutsuda. St. kui peame genereerima kuulsat vale e-posti aadressi, kirjutame lihtsalt
${faker.internet.email()}Peale selle, et see on funktsioon, vĂ”ib mĂ€rgata, et objekti meetodi kutsumise vĂ”imalus on olemas. Ja suures tasapinnalises nimekirjas dĂŒnaamilistest muutujatest on meil loogiliselt rĂŒhmitatud objektide kogum.
Aga mis siis, kui me soovime stringilt rÀsida? Lihtne!
${crypto.MD5($dynamicVar.data)}VĂ”ib mĂ€rgata, et parameetritena saab isegi muutujaid edastada! Sel hetkel vĂ”ib peene mĂ€rkaja kahtlustada kahtlustâŠ
JavaScripti kasutamine vÀljendites
⊠Ja mitte asjata! kui nĂ”uded funktsioonidele koostati, tulime Ă€kki jĂ€reldusele, et vĂ€ljendites tuleb lubada kirjutada kehtivat javascripti. SeetĂ”ttu vĂ”ite nĂŒĂŒd vĂ€ljendeid kirjutada vaimus:
${1 + '' + crypto.MD5('asdf')}Ja kogu see ilma skriptideta otse sisestusvÀljadest!
Postmani osas saab kasutada ainult muutujaid, ning kui proovite kirjutada mingit vÀhest vÀljendit, siis valideerija nuriseb ja keeldub seda arvutama.
![]()
TÀiustatud automaatne tÀiendamine
Praegu on TestMace'il tavaline automaatne tÀiendamine, mis nÀeb vÀlja jÀrgmine:

Siin, lisaks automaatse tĂ€iendamise reale, on nĂ€idatud, kellele see rida kuulub. See mehhanism töötab ainult vĂ€ljendites, mis on ĂŒmbritsetud sulgudega ${}.
Kuidas mĂ€rgata, on lisandunud visuaalsed markerid, mis nĂ€itavad muutuja tĂŒĂŒpi (nt string, number, massiiv jne). Samuti saab muuta automaatse tĂ€iendamise reĆŸiime (nt saab valida muutujaid vĂ”i pĂ€iseid). Kuid isegi see ei ole kĂ”ige tĂ€htsam!
Esiteks töötab automaatne tÀiendamine isegi vÀljendites (kus 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!

Selle funktsionaalsuse vĂ”rdlemine Postmaniga ei ole mĂ”tet â seal on automaatne tĂ€iendamine piiratud ainult staatiliste muutujate, pĂ€iste ja nende vÀÀrtuste nimekirjadega (palun parandage mind, kui ma midagi unustasin). Skripte ei automaattĂ€iendata đ
KokkuvÔte
Oktoobris möödus aasta meie toote arendamisest. Selle aja jooksul oleme suutnud teha palju ja mÔnedes parameetrites jÔudsime oma konkurentidega samale tasemele. Kuidas iganes, meie eesmÀrk on luua tÔeliselt mugav tööriist API-dega töötamiseks. Meil on veel palju teha, siin on meie projekti arendamise umbkaudne kava jÀrgmiseks aastaks: .
Teie tagasiside aitab meil paremini orienteeruda funktsioonide rohkusest, samas kui teie toetamine annab meile jĂ”udu ja usku, et teeme Ă”iget asja. TĂ€na on meie projekti jaoks oluline pĂ€ev â TestMace'i publikatsiooni pĂ€ev . Palun toetage meie projekti, see on meile vĂ€ga oluline. Eriti, kuna meie PH lehel on tĂ€na ahvatlev pakkumine, ja see on piiratud.
Allikas: habr.com
