Ç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 TestMace! E mundshme, shumĂ« prej jush na njohin nga tonat informacioneve tĂ« kaluara artikull. PĂ«r ata qĂ« sapo u bashkuan: ne po zhvillojmĂ« njĂ« IDE pĂ«r tĂ« punuar me API TestMace. Pyetja mĂ« e shpeshtĂ« kur krahasojmĂ« TestMace me produktet konkuruese Ă«shtĂ« - «ÇfarĂ« ju diferencojnĂ« nga Postman?». Ne vendosĂ«m qĂ« Ă«shtĂ« koha t'i japim njĂ« pĂ«rgjigje tĂ« detajuar kĂ«saj pyetje. MĂ« poshtĂ«, kemi renditur pĂ«rfitimet tona pĂ«rpara 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. Ky Ă«shtĂ« skriptet, testet dhe vetĂ« kĂ«rkesat. Kjo e bĂ«n punĂ«n mĂ« tĂ« lehtĂ« pĂ«r fillestarĂ«t, megjithatĂ«, skenarĂ«t e mĂ«dhenj e bĂ«jnĂ« kĂ«tĂ« qasje jo fleksibile. ÇfarĂ« nĂ«se dĂ«shiron tĂ« krijosh disa kĂ«rkesa dhe tĂ« bĂ«sh agregim mbi to? ÇfarĂ« nĂ«se dĂ«shiron tĂ« ekzekutosh njĂ« skript pa kĂ«rkesĂ« ose disa skripte tĂ« ndara logjikisht njĂ«ri pas tjetrit? Fundja, do tĂ« ishte mirĂ« tĂ« ndaheshin testet nga skriptet e zakonshme utilitare. PĂ«rveç kĂ«saj, qasja e «shtimit tĂ« gjithĂ« funksionalitetit nĂ« njĂ« nyje» Ă«shtĂ« e pa shkallĂ«zuar - ndĂ«rfaqja shpejt bĂ«het e ngarkuar.

TestMace fillimisht ndan të gjithë funksionalitetin në tipa të ndryshëm nyjesh. Dëshiron të bësh një kërkesë? Ja një request step nyje. Dëshiron të shkruash një skript? Ja një script nyje. Këto janë testet? Ju lutemi - Assertion nyje. Ah, po, ju gjithashtu mund të mbështillni të gjithë këtë në një folder nyje. Dhe të gjithë këto kombinohen lehtë me njëri-tjetrin. Kjo qasje jo vetëm që është shumë fleksibile, por në përputhje me parimin e përgjegjësisë unike, lejon të përdoret vetëm ajo që ju nevojitet në këtë moment. Pse të jem i interesuar për skripte dhe teste, nëse thjesht dua të bëj një kërkesë?

Formati i lexueshëm për njeri

Mes TestMace dhe Postman ka njĂ« dallim konceptual nĂ« mĂ«nyrĂ«n e ruajtjes. NĂ« Postman tĂ« gjitha kĂ«rkesat ruhen diku nĂ« njĂ« depo lokale. NĂ«se ka nevojĂ« tĂ« ndahen kĂ«rkesat midis disa pĂ«rdoruesve, duhet tĂ« pĂ«rdorni sinkronizimin e integruar. NĂ« tĂ« vĂ«rtetĂ«, kjo Ă«shtĂ« njĂ« qasje e pranuar gjerĂ«sisht, por jo pa disavantazhe. ÇfarĂ« do tĂ« thotĂ« siguria e tĂ« dhĂ«nave? Politika e disa kompanive mund tĂ« mos lejojĂ« ruajtjen e tĂ« dhĂ«nave te palĂ«t e treta. MegjithatĂ«, ne besojmĂ« se TestMace mund tĂ« ofrojĂ« diçka mĂ« tĂ« mirĂ«! Dhe emri i kĂ«tij pĂ«rmirĂ«simi Ă«shtĂ« «formati i lexueshĂ«m pĂ«r projektin».

Le tĂ« fillojmĂ« me faktin se nĂ« TestMace ekziston njĂ« entitet "projekt". Dhe aplikacioni nga fillimi Ă«shtĂ« zhvilluar me qĂ«llim ruajtjen e projekteve nĂ« sistemet e kontrollit tĂ« versioneve: struktura e projektit projektohet praktikisht njĂ« nĂ« njĂ« nĂ« strukturĂ«n e skedarĂ«ve, formati i ruajtjes Ă«shtĂ« yaml (pa paranteza dhe presje tĂ« tepĂ«rta), dhe pĂ«rfaqĂ«simi i skedarĂ«ve tĂ« çdo nyje Ă«shtĂ« detajuar nĂ« dokumentacion me komente. Por nĂ« shumicĂ«n e rasteve ju nuk do tĂ« shikoni atje — tĂ« gjitha emrat e fushave kanĂ« emra logjikĂ«.

ÇfarĂ« i ofron kjo pĂ«rdoruesit? Kjo i lejon tĂ« ndryshojnĂ« shumĂ« fleksibĂ«l rrjedhĂ«n e punĂ«s sĂ« ekipit, duke pĂ«rdorur qasjet e zakonshme. PĂ«r shembull, zhvilluesit mund tĂ« ruajnĂ« projektin nĂ« tĂ« njĂ«jtin repository si backend. NĂ« degĂ«t, pĂ«rveç se tĂ« ndryshohet direkt baza e kodit, zhvilluesi mund tĂ« rregullojĂ« skenarĂ«t e kĂ«rkesave dhe testet ekzistuese. Pas regjistrimit tĂ« ndryshimeve nĂ« repository (git, svn, mercurial — çfarĂ«do qĂ« ju pĂ«lqen mĂ« shumĂ«) CI (e preferuara juaj, e cila nuk Ă«shtĂ« e impozume nga askush) nis utilitarin tonĂ« tĂ« konsolĂ«s 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. Edhe pyetja e lartpĂ«rmendur mbi sigurinĂ« tashmĂ« nuk pĂ«rbĂ«n njĂ« problem.

Siç e shihni, TestMace nuk imposon ekosistemin dhe parimin e saj. Në vend të kësaj, ajo lehtë integrohet në proceset tashmë të vendosura.

Variablat dinamikë

TestMace ndjek konceptin no-code: nëse problemi mund të zgjidhet pa përdorur kod, ne përpiqemi të ofrojmë një mundësi për këtë. Puna me variablat është pikërisht funksionaliteti ku në shumicën e rasteve mund të shkojmë pa programim.

Shembuj: na erdhi një përgjigje nga serveri, dhe ne duam të ruajmë një pjesë të përgjigjes në një variabël. Në Postman do të shkruanim diçka në scriptin e testit (që vetë është e çuditshme) diçka në frymën e:

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

Por sipas mendimit tonë, shkruajta e një skripti për një skenar kaq të thjeshtë dhe shumë të përdorur duket e tepërt. Prandaj në TestMace ka mundësi për t'i dhënë një variabli një copë përgjigjeje, duke përdorur ndërfaqen grafike. Shikoni sa e thjeshtë është:

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

Dhe tani, me çdo kërkesë, kjo variabël dinamike do të përditësohet. Por ju mund të kundërshtoni, argumentoni se qasja e Postman-it është më fleksible dhe lejon jo vetëm të bëni një caktim, por gjithashtu të kryeni disa përpunime paraprake. Ja se si mund të modifikoni shembullin e mëparshëm:

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

Mirë, për këtë në TestMace ka script një nyje, e cila mbulon këtë skenar. Për të riprodhuar rastin e mëparshëm, por tashmë në ekzekutimin e TestMace, është e nevojshme pas kërkesës të krijoni një nyje script dhe si skenar 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 nyjeve këtu ka ndihmuar shumë. Dhe për një rast të tillë të thjeshtë, siç është përshkruar më lart, mund të thjesht caktoni shprehjen ${crypto.MD5($response.data)} si një variabël, e krijuar përmes ndërfaqes grafike!

Krijimi i testeve përmes GUI

Postman lejon krijimin e testeve duke shkruar skenarë (në rastin e Postman-it, kjo është JavaScript). Ky qasje ka shumë përfitime - fleksibilitet praktikisht të pakufizuar, praninë e zgjidhjeve të gatshme, etj.

Megjithatë, realitetet shpesh janë të tilla (nuk jemi ne, është jeta e tillë), që testiuesi nuk ka aftësi programimi, dhe skuadra do të dëshironte që të kontribuante tashmë. Për këto raste, duke ndjekur konceptin e no-code, TestMace lejon krijimin e testeve të thjeshta përmes ndërfaqes grafike, pa nevojën për të shkruar skenarë. Ja si duket procesi i krijimit të një testi që krahasohet vlerat për barazim:

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

Megjithatë, krijimi i testeve në redaktorin grafik nuk e anullon mundësinë e shkruajtjes së testeve në kod. Këtu janë të njëjtat biblioteka si në nyjen script, dhe chai për shkruajtjen 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ë kërkesash mund të jetë autorizimi shumë-hapa i personalizuar, vendosja e mjedisit në gjendjen e nevojshme, etj. Në përgjithësi, nëse flasim në terminologjinë e gjuhëve të programimit, do të dëshironim të kishim funksione që mund të rishfrytëzohen në pjesë të ndryshme të aplikacionit. Në TestMace, kjo funksion ekzekutohet link Nod. E shumë e lehtë ta përdorësh:
1) krijo një kërkesë ose skenar
2) krijo një nod të tipit Link
3) në parametrat specifiko lidhjen me skenarin e krijuar në hapin e parë

Në një variant më të avancuar, mund të specifikosh se cilat variabla dinamike nga skenari të kalohen në nivelin më lart në lidhje me lidhjen. Tingëllon konfuz? Supozoni se kemi krijuar një Folder me emrin create-post, brenda të cilit përcaktohet një variabël dinamike postId. Tani në nodin Link create-post-link mund të specifikosh qartë që variabla postId të caktohet prindit create-post-link. Ky mekanizëm (përsëri, duke folur në mënyrë programore) mund të përdoret për të kthyer rezultatin nga "funksioni". Në përgjithësi, është ndryshe, DRY në gjithë shkallën dhe përsëri asnjë rresht kodi nuk ka pësuar dëme.

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

Sa i përket Postman, kërkesa për veçori për ripërdorimin e kërkesave është paraqitur që nga viti 2015, dhe duket se ka disa aludime, që ky problem po studiohet. Në formën aktuale, Postman sigurisht ka mundësinë për të ndryshuar rrjedhën e ekzekutimit, e cila, në teori, ndoshta lejon të realizohet një sjellje të tillë, por kjo është më shumë një mashtrim i papastër sesa një qasje e vërtetë.

Dallime të tjera

  • Kontroll mĂ« tĂ« madh mbi fushĂ«n e dukshmĂ«risĂ« sĂ« variablave. Skopeza mĂ« e vogĂ«l brenda sĂ« cilĂ«s mund tĂ« caktosh njĂ« variabĂ«l nĂ« Postman Ă«shtĂ« koleksioni. TestMace lejon tĂ« pĂ«rcaktosh variablat pĂ«r çdo kĂ«rkesĂ« ose dosje. NĂ« Postman, ndarja e koleksionit lejon eksportimin vetĂ«m tĂ« koleksioneve, ndĂ«rsa nĂ« TestMace, ndarja funksionon pĂ«r çdo nod.
  • TestMace mbĂ«shtet tituj trashĂ«gues, tĂ« cilat sipas parashikimit mund tĂ« futen nĂ« kĂ«rkesat fĂ«mijĂ«. NĂ« kĂ«tĂ« drejtim, Postman ka njĂ« detyrĂ«, dhe madje Ă«shtĂ« mbyllur, por si zgjidhje propozohet
 pĂ«rdorimi i skripteve. NĂ« TestMace, gjithçka konfigurohet pĂ«rmes GUI dhe ka mundĂ«sinĂ« e çaktivizimit opsional tĂ« titujve trashĂ«gues nĂ« trashĂ«gimtarĂ«t specifik.
  • Undo/Rredo. Funksionon jo vetĂ«m kur redaktohen nodet, por edhe kur lĂ«vizen, fshihen, rinjosen dhe nĂ« operacione tĂ« tjera qĂ« ndryshojnĂ« strukturĂ«n e projektit.
  • SkedarĂ«t e lidhur me kĂ«rkesat bĂ«hen pjesĂ« e projektit dhe ruhen sĂ« bashku me tĂ«, duke u sinkronizuar mirĂ«, pĂ«r dallim nga Postman. (Po, nuk Ă«shtĂ« mĂ« e nevojshme qĂ« çdo herĂ« tĂ« zgjedhĂ«sh skedarĂ« manualisht çdo herĂ« qĂ« starton dhe t’i kalosh kolegĂ«ve nĂ« arkiva).

Veçoritë që janë në rrugë

Nuk mundëm të qëndrojmë pa zbuluar disa detaje në lidhje me lansimet e ardhshme, veçanërisht kur funksionaliteti është shumë atraktiv dhe tashmë po kalon përpunimin para-lansimit. Pra, mirëseardhje.

Funksionet

Siç dihet, për të gjeneruar vlera në Postman përdoren variablat e ashtuquajtur dinamikë. Lista e tyre është e konsiderueshme dhe shumica e funksioneve shërbejnë për gjenerimin e vlerave false. Për shembull, për të gjeneruar një email rastësor, duhet të shkruhet:

{{$randomEmail}}

Megjithatë, sepse këto janë variabla (edhe pse dinamike), ato nuk mund të përdoren si funksione: ato nuk mund të parametrizohen, prandaj nuk mund të merret hash nga një string.

Në TestMace planifikojmë të shtojmë funksione "të ndershme". Brenda ${} do të jetë e mundur jo vetëm të referohesh në një variabël, por edhe të thërrasësh një funksion. Kështu, nëse nevojitet të gjenerojmë atë emailin e njohur fals, ne thjesht do të shkruajmë

${faker.internet.email()}

Për më tepër, kjo është një funksion, mund të vërehet se ka mundësinë e thirrjes së metodës së një objekti. Dhe në vend të një liste të madhe të planit të variablave dinamikë, ne kemi një grup objektesh që janë logjikisht të grumbulluara.

Po nëse duam të llogarisim hash nga një string? Lehtë!

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

Mund tĂ« vĂ«rehet se si parametra Ă«shtĂ« mundĂ«sia pĂ«r tĂ« kaluar edhe variabla! NĂ« kĂ«tĂ« pikĂ«, lexuesi kurioz mund tĂ« dyshojë 

Përdorimi i JavaScript në shprehje

... Dhe pa dyshim! Kur kërkesat për funksionet u formuluan, arritëm në përfundimin se në shprehje duhej të lejohej shkruajta JavaScript të vlefshëm. Prandaj tani jeni të lirë të shkruani shprehje në stilin e:

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

Dhe gjithë kjo pa skripta 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 ankohet dhe refuzon ta llogarisë atë.

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

Plotësimi i avancuar

Aktualisht, TestMace ka plotësimin standard që duket si më poshtë:

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

Këtu, përveç stringut të plotësuar, shikohet se për çfarë i përket ky string. Ky mekanizëm funksionon vetëm në shprehjet që janë rrethuar nga parentesat ${}.

Si mund të vëreni, janë shtuar shenjat vizuale që tregojnë llojin e variablit (p.sh., varg, numër, array, etj.). Gjithashtu, mund të ndryshoni modulet e autokompensimit (p.sh., mund të zgjidhni autokompensimin me variabla ose tituj). Por as kjo nuk është më e rëndësishmja!

Së pari, autokompensimi funksionon edhe në shprehje (ku është e mundur). Këtu është si duket:

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

Dhe së dyti, tani autokompensimi është i disponueshëm edhe në skriptet. Holloni vështrimin, si funksionon!

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

Nuk ka kuptim tĂ« krahasohet ky funksionalitet me Postman — atje autokompensimi kufizohet vetĂ«m nĂ« lista statike tĂ« variablave, titujve dhe vlerave tĂ« tyre (mĂ« korrigjoni nĂ«se kam harruar diçka). Skriptet nuk autokompensohen 🙁

Përfundim

Në tetor kaloi një vit nga fillimi i zhvillimit të produktit tonë. Gjatë kësaj kohe, kemi arritur të bëjmë shumë gjëra dhe në disa aspekte kemi arritur konkurrencën tonë. Por, siç ndodhi, qëllimi ynë është të krijojmë një mjet të vërtetë të përzgjedhur për punën me API. Na mbetet ende shumë punë, ja një plan afatgjatë për zhvillimin e projektit tonë në vitin e ardhshëm: https://testmace.com/roadmap.

PĂ«rvoja juaj do tĂ« na ndihmojĂ« tĂ« orientoheni mĂ« mirĂ« nĂ« shumicĂ«n e veçorive, dhe mbĂ«shtetja juaj na jep forcĂ« dhe besim nĂ« atĂ« qĂ« bĂ«jmĂ«. Siç doli, 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Ă«, kjo Ă«shtĂ« shumĂ« e rĂ«ndĂ«sishme pĂ«r ne. Sidomos tani qĂ« nĂ« faqen tonĂ« nĂ« PH ka njĂ« ofertĂ« tĂ«rheqĂ«se, e cila Ă«shtĂ« e kufizuar.

Burimi: habr.com

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