
PĂ«rshĂ«ndetje tĂ« gjithĂ«ve, kĂ«tu ! Ndoshta, shumĂ« prej jush na njihni nga . PĂ«r ata qĂ« sapo u lidhĂ«n: ne po zhvillojmĂ« njĂ« IDE pĂ«r tĂ« punuar me API TestMace. Pyetja mĂ« e shpeshtĂ« kur krahasohet TestMace me produktet konkurrente Ă«shtĂ« â «ĂfarĂ« ju dallon nga Postman?». Ne menduam se ishte koha tĂ« jepnim njĂ« pĂ«rgjigje tĂ« detajuar pĂ«r kĂ«tĂ« pyetje. MĂ« poshtĂ« ne kemi renditur pĂ«rparĂ«sitĂ« tona nĂ« krahasim me .
Ndarja në nyje
NĂ«se punoni me Postman, e dini se ndĂ«rfaqja e kĂ«rkesĂ«s pĂ«rmban tĂ« gjitha funksionalitetet e nevojshme. KĂ«tu ka skripte, teste dhe, nĂ« fakt, vetĂ« kĂ«rkesat. Kjo e thjeshton punĂ«n pĂ«r fillestarĂ«t, megjithatĂ« nĂ« skenarĂ«t e mĂ«dhenj ky qasje nuk Ă«shtĂ« fleksibĂ«l. ĂfarĂ« nĂ«se do tĂ« krijonit disa kĂ«rkesa dhe do tĂ« bĂ«nit njĂ« agregim mbi to? ĂfarĂ« nĂ«se dĂ«shironi tĂ« ekzekutoni njĂ« skript pa kĂ«rkesĂ« ose disa skripte logjikisht tĂ« ndara me radhĂ«? NĂ« fund tĂ« fundit, do tĂ« ishte mirĂ« tĂ« ndaheshin testet nga skriptet e zakonshme utilitare. PĂ«r mĂ« tepĂ«r, qasja «shtojmĂ« tĂ« gjithĂ« funksionalitetin nĂ« njĂ« nyje» Ă«shtĂ« e patrajtuar pĂ«r shkak se ndĂ«rfaqja shpejt bĂ«het e ngarkuar.
TestMace fillimisht ndan tĂ« gjithĂ« funksionalitetin nĂ« lloje tĂ« ndryshme nyjesh. DĂ«shiron tĂ« bĂ«sh njĂ« kĂ«rkesĂ«? Ja ku je nyje. DĂ«shiron tĂ« shkruash njĂ« skript? Ja ku je nyje. TĂ« nevojiten teste? Po â nyje. Oh, po, ti gjithashtu mund ta mbĂ«shtjellĂ«sh kĂ«tĂ« nĂ« njĂ« nyje. Dhe e gjithĂ« kjo lehtĂ« kombinon me njĂ«ra-tjetrĂ«n. Kjo qasje jo vetĂ«m qĂ« Ă«shtĂ« shumĂ« fleksibĂ«l, por edhe, nĂ« pĂ«rputhje me parimin e pĂ«rgjegjĂ«sisĂ« unike, lejon tĂ« pĂ«rdoret vetĂ«m ajo qĂ« tĂ« nevojitet vĂ«rtet nĂ« atĂ« moment. Pse tĂ« mĂ« duhen skripte dhe teste, nĂ«se thjesht dua tĂ« bĂ«j njĂ« kĂ«rkesĂ«?
Formati i lexueshëm për njeriun i projektit
Mes TestMace dhe Postman ka një dallim konceptual në mënyrën e ruajtjes. Në Postman të gjitha kërkesat ruhen diku në memorien lokale. Nëse ka nevojë për të ndarë kërkesat mes disa përdoruesve, duhet të përdorni sinkronizimin e integruar. Në të vërtetë, ky është një qasje e zakonshme, e cila nuk është pa disavantazhe. Si qëndron çështja e sigurisë së të dhënave? Sepse politika e disa kompanive mund të mos lejojë ruajtjen e të dhënave nga palë të treta. Megjithatë, ne besojmë se TestMace mund të ofrojë diçka më të mirë! Dhe emri i këtij përmirësimi është «forma e lexueshme për njeriun e projektit».
Le tĂ« fillojmĂ« me faktin se nĂ« TestMace ka nĂ« thelb entitetin âprojektâ. Dhe aplikacioni Ă«shtĂ« zhvilluar nĂ« parim pĂ«r ruajtjen e projekteve nĂ« sistemet e kontrollit tĂ« versioneve: struktura e projektit pothuajse projektohet njĂ« nĂ« njĂ« me strukturĂ«n e skedarĂ«ve, formati i ruajtjes pĂ«rdor yaml (pa shenjĂ« tĂ« panevojshme dhe presje), dhe paraqitja e skedarĂ«ve tĂ« çdo nyje pĂ«rshkruhet nĂ« detaje nĂ« dokumentacion me komentet. Por nĂ« shumicĂ«n e rasteve nuk do tĂ« keni nevojĂ« tĂ« shikoni atje â tĂ« gjitha emrat e fushave kanĂ« emra tĂ« arsyeshĂ«m.
ĂfarĂ« i sjell pĂ«rdoruesit? Kjo lejon tĂ« ndryshoni shumĂ« fleksibĂ«l rrjedhĂ«n e punĂ«s sĂ« ekipit duke pĂ«rdorur qasje tĂ« njohura. PĂ«r shembull, zhvilluesit mund tĂ« ruajnĂ« projektin nĂ« tĂ« njĂ«jtin depo si backend. NĂ« degĂ«, pĂ«rveç ndryshimit tĂ« bazĂ«s sĂ« kodit, zhvilluesi mund tĂ« rregullojĂ« skenarĂ«t ekzistues tĂ« kĂ«rkesave dhe testet. Pas regjistrimit tĂ« ndryshimeve nĂ« depo (git, svn, mercurial â çfarĂ«do qĂ« ju pĂ«lqen) CI (e preferuara juaj, e cila s'iu Ă«shtĂ« imponuar) aktivizon mjetin tonĂ« konsolĂ« , dhe raporti i marrĂ« pas ekzekutimit (pĂ«r shembull, nĂ« formatin junit, i cili gjithashtu mbĂ«shtetet nĂ« testmace-cli) dĂ«rgohet nĂ« sistemin pĂ«rkatĂ«s. Dhe, pyetja e pĂ«rmendur mĂ« lart pĂ«r sigurinĂ« tashmĂ« s'Ă«shtĂ« problem.
Siç shihni, TestMace nuk imponon ekosistemin dhe paradigmën e saj. Në vend të kësaj, ajo lehtë integrohet në proceset e themeluara.
Variablat dinamike
TestMace ndjek konceptin no-code: nëse problemi mund të zgjidhet pa përdorimin e kodit, ne përpiqemi të ofrojmë këtë mundësi. Puna me variablat është pikërisht funksionaliteti ku në shumicën e rasteve mund të kaloni pa programim.
Shembuj: morëm një përgjigje nga serveri dhe duam të ruajmë një pjesë të përgjigjes në një variabël. Në Postman do të shkruanim në skenarin e testit (çka vetë është e çuditshme) diçka si:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);Por sipas mendimit tonë, shkruarja e një skripti për një skenar kaq të thjeshtë dhe të përdorur shpesh duket e tepruar. Prandaj në TestMace ka mundësinë për të caktuar një pjesë të përgjigjes një variabli duke përdorur ndërfaqen grafike. Shihni sa e thjeshtë është:

Dhe tani, me çdo kërkesë, ky variabël dinamik do të përditësohet. Por ju mund të kundërshtoni, duke argumentuar se qasja e Postman është më fleksibile dhe lejon të bëni jo vetëm caktimin, por gjithashtu të kryeni një përpunim paraprak. Ja si mund të modifikoni shembullin e mëparshëm:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));Epo, për këtë në TestMace ka një nod, i cili mbulon këtë skenar. Për të riprodhuar rastin e mëparshëm, por tashmë në implementimin e TestMace, është e nevojshme pas kërkesës të krijoni një nod script dhe si skript të përdorni kodin e mëposhtëm:
const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));Siç e shihni, kompozita e node-ve këtu ka shërbyer mirë. Dhe për një rast kaq të thjeshtë, siç është përshkruar më sipër, ju madje mund të përcaktoni thjesht shprehjen ${crypto.MD5($response.data)} për një variabël, e cila krijohet përmes ndërfaqes grafike!
Krijimi i testeve përmes GUI
Postman lejon krijimin e testeve pĂ«rmes shkruarjes sĂ« skripteve (nĂ« rastin e Postman Ă«shtĂ« JavaScript). Ky qasje ka vetĂ«m avantazhe â fleksibilitet tĂ« pakufizuar, zgjidhje tĂ« gatshme, etj.
Megjithatë, realitetet shpesh janë të tilla (nuk jemi ne kështu, është kështu jeta), që testuesi nuk ka aftësi programimi, ndërsa do të donte të kontribuonte në ekip që tani. Për këto raste, duke ndjekur konceptin no-code, TestMace lejon krijimin e testeve të thjeshta përmes një ndërfaqe grafike, pa u nevojitur të shkruani skripte. Ja si duket procesi i krijimit të një testi që krahason vlerat për barazim:

Megjithatë, krijimi i testeve në redaktorin grafik nuk anullon mundësinë . Këtu janë të njëjtat biblioteka si në nyjën script, dhe për shkruarjen e testeve.
Mundësia për të nisur një skenar ekzistues përmes lidhjes (nyja Link)
Shpesh ndodhin situata të tilla, kur një kërkesë ose madje një skenar i tërë duhet të ekzekutohet disa herë në pjesë të ndryshme të projektit. Një shembull i tillë për kërkesat mund të jetë autorizimi personal i shumë hapave, përshtatja e mjedisit në gjendjen e duhur etj. Në përgjithësi, në terma të gjuhëve të programimit, do të doja të kisha funksione që mund të rishfrytëzohen në pjesë të ndryshme të aplikacionit. Në TestMace, kjo funksion kryhet nga nyja. Ta përdorësh atë është shumë e thjeshtë:
1) krijoni një kërkesë ose skenar
2) krijoni një nyje të tipit Link
3) në parametrat specifikoni lidhjen me skenarin që u krijua në hapin e parë
Në një variant më të avancuar, mund të shkruani cilat variabla dinamike nga skenari duhet të kalohen në nivelin e sipërm në lidhje me lidhjen. Duket e komplikuar? Le të themi se ne kemi krijuar një Folder me emrin create-post, brenda të cilit i caktohet një variablë dinamike postId. Tani në nyjën Link create-post-link mund të specifikoni qartë që variabla postId të caktohej paraardhësit create-post-link. Ky mekanizëm (sërish, duke folur në gjuhën e programuesve) mund të përdoret për të kthyer rezultatin nga «funksioni». Në përgjithësi është e shkëlqyer, DRY në maksimum dhe përsëri asnjë rresht i vetëm kodi nuk u prek.

Sa i përket Postman, kërkesa për funksionalitetin e rishfrytëzimit të kërkesave , dhe duket se madje ka , që kjo problematikë po punohet. Në formën e tanishme, Postman sigurisht ka mundësinë e ndryshimit të rrjedhës së ekzekutimit, e cila teorikisht, ndoshta, lejon realizimin e një sjelljeje të tillë, por kjo është më shumë një hack i papastër, sesa një qasje e vërtetë funksionale.
Dallime të tjera
- Kontroll më të madh mbi fushën e dukshmërisë së variablave. Fushë më e vogël, brenda së cilës mund të përcaktohet një variablë në Postman, është koleksioni. TestMace lejon përcaktimin e variablave për çdo kërkesë ose folder. Në Postman, Share collection lejon eksportimin vetëm të koleksioneve, ndërsa në TestMace ndarja funksionon për çdo nyje.
- TestMace mbështet , të cilët mund të përshtaten automatikisht në kërkesat e fëmijëve. Në këtë drejtim, Postman ka diskutime. , dhe është madje e mbyllur, por si zgjidhje propozohet⊠. Në TestMace, gjithçka konfigurohet përmes GUI dhe ka mundësinë për të çaktivizuar titujt e trashëguar në pasardhësit e caktuar
- Undo/Redo. Funksionon jo vetëm gjatë redaktimit të nodëve, por edhe gjatë lëvizjes, fshirjes, rinrenimit dhe operacioneve të tjera që ndryshojnë strukturën e projektit
- Skedarët e bashkangjitur me kërkesat bëhen pjesë e projektit dhe ruhen së bashku me të, dhe sinkronizohen në mënyrë perfekte, ndryshe nga Postman. (Po, më nuk është nevoja që çdo herë të zgjidhni skedarët manualisht gjatë çdo ekzekutimi dhe t'i dërgoni kolegëve në arkiva)
Karakteristika që tashmë janë në prag
Nuk mundëm t'i rezistojmë tundimit për të hapur pak perden e misterit mbi versionet e ardhshme, sidomos kur funksionaliteti është shumë tërheqës dhe tashmë po kalon në shkëlqimin para lëshimit. Pra, mirëseardhje.
Funksionet
Siç dihet, për të gjeneruar vlera në Postman përdoren variablat dinamikë. dhe shumica dërrmuese e funksioneve shërbejnë për të gjeneruar vlera të rreme. Për shembull, për të gjeneruar një email të rastësishëm duhet të shkruhet:
{{$randomEmail}}Megjithatë, pasi që këto janë variabla (edhe pse dinamikë), nuk mund të përdoren si funksione: ato nuk janë parametrizueshme, për pasojë nuk mund të merrni hash nga një varg.
Në TestMace ne planifikojmë të shtojmë funksione «të ndershme». Drejt në brendësi të ${} do të jetë e mundur jo vetëm të aksesoni një variabël, por gjithashtu të thërrisni një funksion. Që do të thotë, nëse kemi nevojë të gjenerojmë një email të famshëm të rremë, ne thjesht do të shkruajmë
${faker.internet.email()}Përveç faktit që është një funksion, mund të vërehet se ka mundësinë e thirrjes së metodës së objektit. Dhe në vend të një liste të madhe të planifikat e dinamikëve, kemi një grup objektesh të organizuara logjikisht.
E çfarë nëse duam të llogarisim hashin e një vargu? Lehtë!
${crypto.MD5($dynamicVar.data)}Vërehet se si parametra mund të kalohen edhe variabla! Në këtë pikë, lexuesi kureshtar mund të dyshojë për diçka që nuk shkon...
Përdorimi i JavaScript në shprehje
... Dhe jo pa arsye! Kur u formuluan kërkesat për funksionet, ne papritur arritëm në përfundimin se në shprehje duhej të lejohej shkrimi i JavaScript valid. Prandaj tani jeni të lirë të shkruani shprehje në frymën e:
${1 + '' + crypto.MD5('asdf')}Dhe gjithçka pa skripte direkt në fushat e hyrjes!
Sa i përket Postman, këtu mund të përdoren vetëm variablat, dhe, kur përpiqeni të shkruani një shprehje të vogël, validuesi proteston dhe refuzon ta llogarisë atë.
![]()
Autocompletim i avancuar
Momentalisht, TestMace ka autocompletim standard, i cili duket si më poshtë:

Këtu, përveç vargjes autocompletive, tregohet se çfarë i përket ky varg. Ky mekanizëm funksionon vetëm në shprehjet e rrethuar me kllapa ${}.
Si mund ta vini re, janë shtuar tregues vizualë që tregojnë llojin e variablit (për shembull, varg, numër, masë, etj.). Po ashtu, ka mundësi për të ndryshuar modet e sugjerimit automatik (për shembull, mund të zgjidhni sugjerimin me variabla ose tituj). Por as kjo nuk është më e rëndësishmja!
Së pari, sugjerimi automatik funksionon edhe në shprehje (ku është e mundur). Kështu e shikoni:

Dhe së dyti, tani sugjerimi automatik është në dispozicion edhe në skriptet. Shihni se si funksionon!

Nuk ka kuptim ta krahasosh kĂ«tĂ« funksionalitet me Postman â aty sugjerimi automatik Ă«shtĂ« i kufizuar vetĂ«m nĂ« lista statike variablash, titujsh dhe vlerash tĂ« tyre (mĂ« korigjoni nĂ«se kam harruar diçka). Skriptet nuk plotĂ«sohen automatikisht đ
Përfundimi
Në tetor u mbush një vit që nga fillimi i zhvillimit të produktit tonë. Gjatë kësaj periudhe ne arritëm të bëjmë shumë gjëra dhe në disa parameter arritëm të rivalizojmë me konkurrentët tanë. Por siç është, qëllimi ynë është të krijojmë një mjet v realmente të leverdishëm për punë me API. Na pret shumë punë, këtu është një plan i përafërt për zhvillimin e projektit tonë për vitin e ardhshëm: .
Feedback-u juaj do tĂ« na ndihmojĂ« tĂ« orientohemi mĂ« mirĂ« nĂ« morinĂ« e tipareve, dhe mbĂ«shtetja juaj na jep forcĂ« dhe besim se po bĂ«jmĂ« diçka tĂ« drejtĂ«. KĂ«shtu ndodhi qĂ« sot Ă«shtĂ« njĂ« ditĂ« e rĂ«ndĂ«sishme pĂ«r projektin tonĂ« â dita e publikimit tĂ« TestMace nĂ« . Ju lutemi, mbĂ«shtetni projektin tonĂ«, Ă«shtĂ« shumĂ« e rĂ«ndĂ«sishme pĂ«r ne. Sidomos tani qĂ« nĂ« faqen tonĂ« nĂ« PH ekziston njĂ« ofertĂ« tĂ«rheqĂ«se dhe ajo Ă«shtĂ« e kufizuar.
Burimi: habr.com
