ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

PĂ«rshĂ«ndetje tĂ« gjithĂ«ve, kĂ«tu TestMace! Ndoshta, shumĂ« prej jush na njihni nga tonat lajmeve tĂ« mĂ«parshme artikujsh. 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 Postman.

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 hapi i kĂ«rkesĂ«s nyje. DĂ«shiron tĂ« shkruash njĂ« skript? Ja ku je script nyje. TĂ« nevojiten teste? Po — Assertion nyje. Oh, po, ti gjithashtu mund ta mbĂ«shtjellĂ«sh kĂ«tĂ« nĂ« njĂ« folder 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Ă« testmace-cli, 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ë:

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

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 script 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:

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

Megjithatë, krijimi i testeve në redaktorin grafik nuk anullon mundësinë e shkruarjes së testeve në kod. Këtu janë të njëjtat biblioteka si në nyjën script, dhe chai për shkruarjen e testeve.

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

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

Sa i përket Postman, kërkesa për funksionalitetin e rishfrytëzimit të kërkesave ka qenë në diskutim që nga viti 2015, dhe duket se madje ka disa aludime, 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 tituj tĂ« trashĂ«guar, tĂ« cilĂ«t mund tĂ« pĂ«rshtaten automatikisht nĂ« kĂ«rkesat e fĂ«mijĂ«ve. NĂ« kĂ«tĂ« drejtim, Postman ka diskutime. detyra, dhe Ă«shtĂ« madje e mbyllur, por si zgjidhje propozohet
 tĂ« pĂ«rdoren skriptet. 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ë. Lista e tyre është mbresëlënëse 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ë.

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

Autocompletim i avancuar

Momentalisht, TestMace ka autocompletim standard, i cili duket si më poshtë:

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

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:

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

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

ÇfarĂ« e bĂ«n TestMace mĂ« tĂ« mirĂ« se Postman

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: https://testmace.com/roadmap.

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Ă« ProductHunt. 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

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster