Kāpēc TestMace ir labāks par Postman

Kāpēc TestMace ir labāks par Postman

Sveiki visiem, lÅ«k TestMace! Iespējams, daudzi cilvēki par mums zina no no mÅ«su iepriekŔējā raksti. Tiem, kas tikko pievienojuÅ”ies: mēs izstrādājam IDE darbam ar TestMace API. Visbiežāk uzdotais jautājums, salÄ«dzinot TestMace ar konkurējoÅ”iem produktiem, ir ā€œAr ko jÅ«s atŔķiraties no Postman?ā€ Mēs nolēmām, ka ir pienācis laiks sniegt detalizētu atbildi uz Å”o jautājumu. Zemāk mēs esam izklāstÄ«juÅ”i mÅ«su priekÅ”rocÄ«bas salÄ«dzinājumā ar Pastnieks.

SadalīŔana mezglos

Ja strādājat ar Postman, tad zināt, ka pieprasÄ«juma interfeiss satur visu nepiecieÅ”amo funkcionalitāti. Ir skripti, testi un faktiski paÅ”i vaicājumi. Tas atvieglo iesācējiem, taču lielākos scenārijos Ŕī pieeja nav elastÄ«ga. Ko darÄ«t, ja vēlaties izveidot vairākus vaicājumus un veikt to apkopoÅ”anu? Ko darÄ«t, ja vēlaties izpildÄ«t skriptu bez pieprasÄ«juma vai vairākus loÄ£iski atdalÄ«tus skriptus pēc kārtas? Galu galā bÅ«tu ieteicams atdalÄ«t testus no parastajiem utilÄ«ta skriptiem. Turklāt pieeja ā€œpievienot visu funkcionalitāti vienā mezglāā€ nav mērogojama - saskarne ātri kļūst pārslogota.

TestMace sākotnēji sadala visu funkcionalitāti dažāda veida mezglos. Vai vēlaties iesniegt pieprasÄ«jumu? Tas ir priekÅ” jums pieprasÄ«juma solis mezgls Vai vēlaties uzrakstÄ«t scenāriju? Tas ir priekÅ” jums scenārijs mezgls NepiecieÅ”ami testi? LÅ«dzu - Apgalvojums mezgls Ak, jā, jÅ«s joprojām varat ietÄ«t visu Å”o lietu mape mezgls Un to visu var viegli apvienot savā starpā. Šāda pieeja ir ne tikai ļoti elastÄ«ga, bet arÄ«, ievērojot vienotas atbildÄ«bas principu, ļauj izmantot tikai to, kas Å”obrÄ«d patieŔām ir nepiecieÅ”ams. Kāpēc man ir nepiecieÅ”ami skripti un testi, ja es tikai vēlos iesniegt pieprasÄ«jumu?

Cilvēkam lasāms projekta formāts

Pastāv konceptuāla atŔķirÄ«ba starp TestMace un Postman to glabāŔanas veidā. Programmā Postman visi pieprasÄ«jumi tiek glabāti kaut kur vietējā krātuvē. Ja ir nepiecieÅ”ams koplietot pieprasÄ«jumus starp vairākiem lietotājiem, jums ir jāizmanto iebÅ«vētā sinhronizācija. Faktiski Ŕī ir vispārpieņemta pieeja, taču ne bez trÅ«kumiem. Kā ar datu droŔību? Galu galā dažu uzņēmumu politika var neļaut uzglabāt datus treÅ”ajām personām. Tomēr mēs domājam, ka TestMace var piedāvāt kaut ko labāku! Un Ŕī uzlabojuma nosaukums ir ā€œcilvēkam lasāms projekta formātsā€.

Sāksim ar faktu, ka TestMace principā ir ā€œprojektaā€ entÄ«tija. Un sākotnēji lietojumprogramma tika izstrādāta, lai saglabātu projektus versiju kontroles sistēmās: projektu koks gandrÄ«z viens pret vienu tiek projicēts faila struktÅ«rā, yaml tiek izmantots kā uzglabāŔanas formāts (bez papildu iekavām un komatiem), un Katra mezgla faila attēlojums ir detalizēti aprakstÄ«ts dokumentācijā ar komentāriem. Taču vairumā gadÄ«jumu jÅ«s tur neieskatÄ«sieties ā€” visiem lauku nosaukumiem ir loÄ£iski nosaukumi.

Ko tas dod lietotājam? Tas ļauj ļoti elastÄ«gi mainÄ«t komandas darba plÅ«smu, izmantojot pazÄ«stamas pieejas. Piemēram, izstrādātāji var glabāt projektu tajā paŔā repozitorijā, kurā atrodas aizmugursistēma. Filiālēs papildus paÅ”as koda bāzes maiņai izstrādātājs var labot esoÅ”os vaicājumu skriptus un testus. Pēc izmaiņu veikÅ”anas repozitorijā (git, svn, mercurial ā€” tas, kas jums patÄ«k vislabāk), CI (jÅ«su iecienÄ«tākā, neviena neuzspiesta) palaiž mÅ«su konsoles utilÄ«tu. testmace-cli, un pēc izpildes saņemtā atskaite (piemēram, junit formātā, kas tiek atbalstÄ«ta arÄ« testmace-cli) tiek nosÅ«tÄ«ta uz atbilstoÅ”o sistēmu. Un iepriekÅ” minētā droŔības problēma vairs nav problēma.

Kā redzat, TestMace neuzspiež savu ekosistēmu un paradigmu. Tā vietā tas viegli iekļaujas noteiktos procesos.

Dinamiskie mainīgie

TestMace ievēro bezkoda koncepciju: ja problēmu var atrisināt, neizmantojot kodu, mēs cenÅ”amies nodroÅ”ināt Å”o iespēju. Darbs ar mainÄ«gajiem ir tieÅ”i tāda funkcionalitāte, kurā vairumā gadÄ«jumu var iztikt bez programmÄ“Å”anas.

Piemērs: mēs saņēmām atbildi no servera, un mēs vēlamies saglabāt daļu atbildes mainīgajā. Programmā Pastnieks testa skriptā (kas pats par sevi ir dīvaini) mēs rakstītu kaut ko līdzīgu:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Bet, mÅ«suprāt, skripta rakstÄ«Å”ana tik vienkārÅ”am un bieži izmantotam scenārijam Ŕķiet lieka. Tāpēc programmā TestMace ir iespējams pieŔķirt daļu atbildes mainÄ«gajam, izmantojot grafisko interfeisu. Paskaties, cik tas ir vienkārÅ”i:

Kāpēc TestMace ir labāks par Postman

Un tagad ar katru pieprasÄ«jumu Å”is dinamiskais mainÄ«gais tiks atjaunināts. Bet jÅ«s varat iebilst, apgalvojot, ka Pastnieka pieeja ir elastÄ«gāka un ļauj ne tikai veikt uzdevumu, bet arÄ« veikt kādu priekÅ”apstrādi. LÅ«k, kā mainÄ«t iepriekŔējo piemēru:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Å im nolÅ«kam TestMace ir scenārijs mezglu, kas aptver Å”o scenāriju. Lai reproducētu iepriekŔējo, bet TestMace jau izpildÄ«to gadÄ«jumu, pēc pieprasÄ«juma ir jāizveido skripta mezgls un kā skripts jāizmanto Ŕāds kods:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Kā redzat, arī Ŕeit labi kalpoja mezglu sastāvs. Un tik vienkārŔam gadījumam, kā aprakstīts iepriekŔ, varat vienkārŔi pieŔķirt izteiksmi ${crypto.MD5($response.data)} mainīgais, kas izveidots, izmantojot GUI!

Testu izveide, izmantojot GUI

Pastnieks ļauj izveidot testus, rakstot skriptus (Pastnieka gadÄ«jumā tas ir JavaScript). Å ai pieejai ir daudz priekÅ”rocÄ«bu ā€“ gandrÄ«z neierobežota elastÄ«ba, gatavu risinājumu pieejamÄ«ba utt.

Taču realitāte bieži ir tāda (mēs tādi neesam, dzÄ«ve ir tāda), ka testētājam nav programmÄ“Å”anas prasmju, bet viņŔ gribētu dot labumu komandai tieÅ”i tagad. Šādos gadÄ«jumos, ievērojot bezkoda koncepciju, TestMace ļauj izveidot vienkārÅ”us testus, izmantojot GUI, neizmantojot skriptu rakstÄ«Å”anu. Piemēram, lÅ«k, kā izskatās vienlÄ«dzÄ«bas vērtÄ«bu salÄ«dzināŔanas testa izveides process:

Kāpēc TestMace ir labāks par Postman

Tomēr testu izveide grafiskajā redaktorā neizslēdz iespēju kontroldarbu rakstÄ«Å”ana kodā. Å eit ir visas tās paÅ”as bibliotēkas kā skripta mezglā un chai kontroldarbu rakstÄ«Å”anai.

Bieži rodas situācijas, kad noteikts vaicājums vai pat viss skripts ir jāizpilda vairākas reizes dažādās projekta daļās. Šādu pieprasÄ«jumu piemērs varētu bÅ«t pielāgota vairākpakāpju autorizācija, vides pārvietoÅ”ana vēlamajā stāvoklÄ« utt. Kopumā, runājot par programmÄ“Å”anas valodām, mēs vēlētos, lai bÅ«tu funkcijas, kuras var atkārtoti izmantot dažādās lietojumprogrammas daļās. Programmā TestMace Å”o funkciju veic saite mezgls To ir ļoti viegli lietot:
1) izveidojiet vaicājumu vai skriptu
2) izveidojiet Link tipa mezglu
3) parametros norādiet saiti uz pirmajā solī izveidoto skriptu

Uzlabotā versijā varat norādÄ«t, kuri dinamiskie mainÄ«gie no skripta tiek nodoti augstākam lÄ«menim attiecÄ«bā pret saiti. Izklausās mulsinoÅ”i? Pieņemsim, ka esam izveidojuÅ”i mapi ar nosaukumu izveidot-post, kurā Å”im mezglam tiek pieŔķirts dinamisks mainÄ«gais postId. Tagad saites mezglā izveidot-izlikt-saiti varat skaidri norādÄ«t, ka mainÄ«gais postId pieŔķirts priekÅ”tecim izveidot-izlikt-saiti. Å o mehānismu (atkal programmÄ“Å”anas valodā) var izmantot, lai atgrieztu rezultātu no ā€œfunkcijasā€. Kopumā ir forÅ”i, DRY ir pilnā sparā un atkal netika sabojāta neviena koda rindiņa.

Kāpēc TestMace ir labāks par Postman

Kas attiecas uz Pastnieku, pieprasÄ«jumu atkārtotai izmantoÅ”anai ir funkcijas pieprasÄ«jums karājās kopÅ” 2015. gada, un Ŕķiet, ka ir pat daži padomika viņi strādā pie Ŕīs problēmas. PaÅ”reizējā formā Pastniekam, protams, ir iespēja mainÄ«t izpildes pavedienu, kas teorētiski, iespējams, ļauj Ä«stenot lÄ«dzÄ«gu uzvedÄ«bu, taču tas ir vairāk netÄ«rs uzlauzts, nevis patiesi strādājoÅ”a pieeja.

Citas atŔķirības

  • Lielāka kontrole pār mainÄ«go lielumu jomu. Mazākā joma, kurā mainÄ«go var definēt programmā Postman, ir kolekcija. TestMace ļauj definēt mainÄ«gos lielumus jebkuram vaicājumam vai mapei. Pakalpojumā Postman Share kolekcija ļauj eksportēt tikai kolekcijas, savukārt TestMace koplietoÅ”ana darbojas jebkurā mezglā
  • TestMace atbalsta mantojamas galvenes, ko pēc noklusējuma var aizstāt ar pakārtotajiem vaicājumiem. Pastniekam ir kaut kas par Å”o: izaicinājums, un tas ir pat slēgts, bet tas tiek piedāvāts kā risinājums... izmantot skriptus. Programmā TestMace tas viss ir konfigurēts, izmantojot GUI, un ir iespēja pēc izvēles atspējot mantotās galvenes noteiktos pēcnācējus.
  • Atsaukt/Atcelt. Darbojas ne tikai rediģējot mezglus, bet arÄ« veicot pārvietoÅ”anu, dzÄ“Å”anu, pārdēvÄ“Å”anu un citas darbÄ«bas, kas maina projekta struktÅ«ru
  • PieprasÄ«jumiem pievienotie faili kļūst par projekta daļu un tiek glabāti kopā ar to, vienlaikus lieliski sinhronizēti atŔķirÄ«bā no Postman. (Jā, jums vairs nav manuāli jāatlasa faili katru reizi, kad sākat tos un jāpārsÅ«ta kolēģiem arhÄ«vos)

Funkcijas, kas jau ir ceļā

Mēs nevarējām pretoties kārdinājumam pacelt noslēpuma plÄ«vuru nākamajos laidienos, it Ä«paÅ”i, ja funkcionalitāte ir ļoti garŔīga un jau tiek veikta pirmsizlaides pulÄ“Å”ana. Tātad, tiekamies.

Funkcijas

Kā zināms, Postman vērtÄ«bu Ä£enerÄ“Å”anai izmanto tā sauktos dinamiskos mainÄ«gos. To saraksts ir iespaidÄ«gs un lielākā daļa funkciju tiek izmantotas viltotu vērtÄ«bu Ä£enerÄ“Å”anai. Piemēram, lai Ä£enerētu nejauÅ”u e-pasta ziņojumu, jums jāraksta:

{{$randomEmail}}

Taču, tā kā tie ir mainīgie (kaut arī dinamiski), tos nevar izmantot kā funkcijas: tie nav parametrizējami, tāpēc no virknes nevarēs ņemt hash.

Mēs plānojam TestMace pievienot ā€œgodÄ«gasā€ funkcijas. TieÅ”i ${} iekÅ”pusē bÅ«s iespējams ne tikai piekļūt mainÄ«gajam, bet arÄ« izsaukt funkciju. Tie. ja jums bÅ«s jāģenerē bēdÄ«gi slavenais viltus e-pasts, mēs vienkārÅ”i uzrakstÄ«sim

${faker.internet.email()}

Papildus tam, ka tā ir funkcija, jūs ievērosiet, ka objektam ir iespējams izsaukt metodi. Un liela, plakana dinamisko mainīgo saraksta vietā mums ir loģiski grupētu objektu kopa.

Ko darīt, ja mēs vēlamies aprēķināt virknes hash? Viegli!

${crypto.MD5($dynamicVar.data)}

Jūs ievērosiet, ka jūs pat varat nodot mainīgos kā parametrus! Šajā brīdī zinātkāram lasītājam var rasties aizdomas, ka kaut kas nav kārtībā...

JavaScript izmantoÅ”ana izteiksmēs

... Un laba iemesla dēļ! Kad tika veidotas prasÄ«bas funkcijām, pēkŔņi nonācām pie secinājuma, ka izteiksmēs jāraksta derÄ«gs javascript. Tātad tagad jÅ«s varat brÄ«vi rakstÄ«t izteicienus, piemēram:

${1 + '' + crypto.MD5('asdf')}

Un tas viss bez skriptiem, tieŔi ievades laukos!

Kas attiecas uz Pastnieku, tad Å”eit var izmantot tikai mainÄ«gos, un, mēģinot uzrakstÄ«t vismazāko izteiksmi, validators lamājas un atsakās to aprēķināt.

Kāpēc TestMace ir labāks par Postman

Uzlabotā automātiskā pabeigŔana

PaŔlaik TestMace ir standarta automātiskā pabeigŔana, kas izskatās Ŕādi:

Kāpēc TestMace ir labāks par Postman

Å eit papildus automātiskās aizpildÄ«Å”anas rindai ir norādÄ«ts, kam Ŕī rinda pieder. Å is mehānisms darbojas tikai izteiksmēs, kuras ieskauj iekavas ${}.

Kā redzat, ir pievienoti vizuālie marÄ·ieri, kas norāda mainÄ«gā veidu (piemēram, virkne, skaitlis, masÄ«vs utt.). Varat arÄ« mainÄ«t automātiskās pabeigÅ”anas režīmus (piemēram, varat atlasÄ«t automātisko pabeigÅ”anu ar mainÄ«gajiem vai galvenēm). Bet pat tas nav svarÄ«gākais!

Pirmkārt, automātiskā pabeigÅ”ana darbojas pat izteiksmēs (ja iespējams). Tas izskatās Ŕādi:

Kāpēc TestMace ir labāks par Postman

Un, otrkārt, automātiskā pabeigŔana tagad ir pieejama skriptos. Apskatiet, kā tas darbojas!

Kāpēc TestMace ir labāks par Postman

Nav jēgas salÄ«dzināt Å”o funkcionalitāti ar Postman - automātiskā pabeigÅ”ana ir ierobežota tikai ar statiskiem mainÄ«go, galveņu un to vērtÄ«bu sarakstiem (labojiet mani, ja es kaut ko aizmirsu). Skripti netiek automātiski pabeigti :)

Secinājums

OktobrÄ« apritēja gads kopÅ” mÅ«su produktu izstrādes sākuma. Å ajā laikā mēs paspējām paveikt daudz lietu un dažos aspektos panākt konkurentus. Taču, lai kā arÄ« bÅ«tu, mÅ«su mērÄ·is ir izveidot patieŔām ērtu rÄ«ku darbam ar API. Mums vēl ir daudz darāmā, lÅ«k, aptuvens mÅ«su projekta attÄ«stÄ«bas plāns nākamajam gadam: https://testmace.com/roadmap.

JÅ«su atsauksmes ļaus mums labāk orientēties funkciju pārpilnÄ«bā, un jÅ«su atbalsts sniedz mums spēku un pārliecÄ«bu, ka mēs rÄ«kojamies pareizi. Tā sagadÄ«jies, ka Å”odien ir svarÄ«ga diena mÅ«su projektam ā€” diena, kurā tika publicēts TestMace ProductHunt. LÅ«dzu, atbalstiet mÅ«su projektu, tas mums ir ļoti svarÄ«gi. Turklāt Å”odien mÅ«su PH lapā ir pieejams vilinoÅ”s piedāvājums, un tas ir ierobežots

Avots: www.habr.com

Pievieno komentāru