Għaliex TestMace huwa aħjar minn Postman

Għaliex TestMace huwa aħjar minn Postman

Hello lil kulħadd, hawn int TestMace! Forsi ħafna nies jafu dwarna minn ta ’tagħna preċedenti artikoli. Għal dawk li għadhom kif ingħaqdu: qed niżviluppaw IDE biex naħdmu mal-API TestMace. L-iktar mistoqsija li ssir ta' spiss meta tqabbel TestMace ma' prodotti li jikkompetu hija "Kif int differenti minn Postman?" Iddeċidejna li kien wasal iż-żmien li nagħtu tweġiba dettaljata għal din il-mistoqsija. Hawn taħt aħna ddeskrivejna l-vantaġġi tagħna fuq Postier.

Qsim f'nodi

Jekk taħdem ma' Postman, allura taf li l-interface tat-talba fiha l-funzjonalità kollha meħtieġa. Hemm skripts, testijiet, u, fil-fatt, il-mistoqsijiet infushom. Dan jagħmilha aktar faċli għal dawk li jibdew, iżda f'xenarji kbar dan l-approċċ mhuwiex flessibbli. X'jiġri jekk trid toħloq diversi mistoqsijiet u twettaq aggregazzjoni fuqhom? X'jiġri jekk trid tesegwixxi skript mingħajr talba jew diversi skripts separati loġikament wara xulxin? Wara kollox, hija idea tajba li tissepara t-testijiet minn skripts ta 'utilità regolari. Barra minn hekk, l-approċċ "żid il-funzjonalità kollha f'node wieħed" mhuwiex skalabbli - l-interface malajr isir mgħobbi żżejjed.

TestMace inizjalment jaqsam il-funzjonalità kollha f'tipi differenti ta 'nodi. Tixtieq tagħmel talba? Huwa għalik talba pass nodu Trid tikteb skript? Huwa għalik iskrittura nodu Għandek bżonn testijiet? Jekk jogħġbok - Dikjarazzjoni nodu Oh iva, xorta tista’ tkebbeb din il-ħaġa kollha fiha folder nodu U dan kollu jista 'jiġi kkombinat faċilment ma' xulxin. Dan l-approċċ mhux biss huwa flessibbli ħafna, iżda wkoll, skont il-prinċipju ta 'responsabbiltà unika, jippermettilek tuża biss dak li verament għandek bżonn bħalissa. Għaliex għandi bżonn skripts u testijiet jekk irrid biss nagħmel talba?

Format tal-proġett li jinqara mill-bniedem

Hemm differenza kunċettwali bejn TestMace u Postman fil-mod kif huma maħżuna. Fil Postman, it-talbiet kollha huma maħżuna x'imkien fil-ħażna lokali. Jekk ikun hemm bżonn li taqsam it-talbiet bejn diversi utenti, allura għandek bżonn tuża s-sinkronizzazzjoni integrata. Fil-fatt, dan huwa approċċ ġeneralment aċċettat, iżda mhux mingħajr l-iżvantaġġi tiegħu. Xi ngħidu dwar is-sigurtà tad-dejta? Wara kollox, il-politika ta 'xi kumpaniji tista' ma tippermettix il-ħażna tad-dejta ma 'partijiet terzi. Madankollu, naħsbu li TestMace għandu xi ħaġa aħjar x'joffri! U l-isem ta 'dan it-titjib huwa "format ta' proġett li jinqara mill-bniedem."

Nibdew bil-fatt li f'TestMace, fil-prinċipju, hemm entità "proġett". U l-applikazzjoni kienet inizjalment żviluppata b'għajnejha għall-ħażna ta 'proġetti f'sistemi ta' kontroll tal-verżjoni: is-siġra tal-proġett hija kważi waħda fuq waħda proġettata fuq l-istruttura tal-fajl, yaml jintuża bħala l-format tal-ħażna (mingħajr parentesi u virgoli żejda), u l- rappreżentazzjoni tal-fajl ta 'kull node hija deskritta fid-dettall fid-dokumentazzjoni bil-kummenti. Iżda fil-biċċa l-kbira tal-każijiet mhux se tħares hemm - l-ismijiet tal-kampijiet kollha għandhom ismijiet loġiċi.

X'jagħti dan lill-utent? Dan jippermettilek tibdel il-fluss tax-xogħol tat-tim b'mod flessibbli ħafna, billi tuża approċċi familjari. Pereżempju, l-iżviluppaturi jistgħu jaħżnu proġett fl-istess repożitorju bħall-backend. Fil-fergħat, minbarra li jibdel il-bażi tal-kodiċi nnifisha, l-iżviluppatur jista 'jikkoreġi skripts ta' mistoqsijiet u testijiet eżistenti. Wara li twettaq bidliet fir-repożitorju (git, svn, mercurial - tkun xi tkun l-iktar li tixtieq), CI (favorit tiegħek, mhux impost minn ħadd) iniedi l-utilità tal-console tagħna testmace-cli, u r-rapport riċevut wara l-eżekuzzjoni (per eżempju, f'format junit, li huwa wkoll appoġġjat f'testmace-cli) jintbagħat lis-sistema xierqa. U l-kwistjoni tas-sigurtà msemmija hawn fuq m'għadhiex problema.

Kif tistgħu taraw, TestMace ma jimponix l-ekosistema u l-paradigma tiegħu. Minflok, tidħol faċilment fi proċessi stabbiliti.

Varjabbli Dinamika

TestMace isegwi l-kunċett tal-ebda kodiċi: jekk problema tista 'tiġi solvuta mingħajr l-użu tal-kodiċi, nippruvaw nipprovdu din l-opportunità. Il-ħidma ma 'varjabbli hija eżattament it-tip ta' funzjonalità fejn f'ħafna każijiet tista 'tagħmel mingħajr programmazzjoni.

Eżempju: irċevejna tweġiba mis-server, u rridu nsalvaw parti mir-rispons f'varjabbli. Fil Postman, fi skript tat-test (li huwa stramb fih innifsu) aħna niktbu xi ħaġa bħal:

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

Iżda fl-opinjoni tagħna, il-kitba ta 'kitba għal xenarju daqshekk sempliċi u użat ta' spiss tidher żejda. Għalhekk, f'TestMace huwa possibbli li tiġi assenjata biċċa mit-tweġiba għal varjabbli billi tuża l-interface grafika. Ara kemm hu sempliċi:

Għaliex TestMace huwa aħjar minn Postman

U issa ma' kull talba din il-varjabbli dinamika se tiġi aġġornata. Imma tista 'toġġezzjona, billi targumenta li l-approċċ ta' Postman huwa aktar flessibbli u jippermettilek mhux biss li tagħmel assenjazzjoni, iżda wkoll li twettaq xi proċessar minn qabel. Hawn kif timmodifika l-eżempju preċedenti:

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

Ukoll, għal dan il-għan TestMace għandu iskrittura node, li jkopri dan ix-xenarju. Sabiex tirriproduċi l-każ preċedenti, iżda diġà eżegwit minn TestMace, għandek bżonn toħloq node ta 'skript wara t-talba u tuża l-kodiċi li ġej bħala skript:

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

Kif tistgħu taraw, il-kompożizzjoni tan-nodi serviet tajjeb hawn ukoll. U għal każ sempliċi bħal dan kif deskritt hawn fuq, tista 'sempliċement tassenja l-espressjoni ${crypto.MD5($response.data)} varjabbli maħluqa permezz tal-GUI!

Ħolqien ta' testijiet permezz ta' GUI

Postman jippermettilek li toħloq testijiet billi tikteb skripts (fil-każ ta' Postman, dan huwa JavaScript). Dan l-approċċ għandu ħafna vantaġġi - flessibilità kważi illimitata, disponibbiltà ta 'soluzzjonijiet lesti, eċċ.

Madankollu, ir-realtà ħafna drabi hija tali (m'aħniex hekk, il-ħajja hija hekk) li tester m'għandux ħiliet ta 'programmar, iżda jixtieq iġib benefiċċju lit-tim issa. Għal każijiet bħal dawn, wara l-kunċett tal-ebda kodiċi, TestMace jippermettilek toħloq testijiet sempliċi permezz ta 'GUI mingħajr ma tirrikorri għall-kitba ta' skripts. Hawn, pereżempju, huwa kif jidher il-proċess tal-ħolqien ta' test li jqabbel il-valuri għall-ugwaljanza:

Għaliex TestMace huwa aħjar minn Postman

Madankollu, il-ħolqien ta 'testijiet f'editur grafiku ma jeliminax il-possibbiltà kitba ta' testijiet fil-kodiċi. L-istess libreriji kollha huma hawn bħal fin-node tal-iskrittura, u Chai għat-testijiet tal-kitba.

Sitwazzjonijiet spiss jinqalgħu meta ċerta mistoqsija jew saħansitra b'kitba sħiħa jeħtieġ li tiġi eżegwita diversi drabi f'partijiet differenti tal-proġett. Eżempju ta’ talbiet bħal dawn jista’ jkun awtorizzazzjoni personalizzata f’diversi stadji, li ġġib l-ambjent fl-istat mixtieq, eċċ. B'mod ġenerali, billi nitkellmu f'termini ta 'lingwi ta' programmar, nixtiequ li jkollna funzjonijiet li jistgħu jerġgħu jintużaw f'partijiet differenti tal-applikazzjoni. F'TestMace din il-funzjoni titwettaq minn rabta nodu Huwa faċli ħafna biex tużah:
1) toħloq mistoqsija jew skript
2) toħloq node tat-tip Link
3) fil-parametri, speċifika link għall-iskrittura maħluqa fl-ewwel pass

F'verżjoni aktar avvanzata, tista 'tispeċifika liema varjabbli dinamiċi mill-iskrittura jiġu mgħoddija għal livell ogħla relattiv għall-link. Ħoss konfuż? Ejja ngħidu li ħloqna Folder bl-isem toħloq-post, li fih varjabbli dinamiku hija assenjata lil dan in-node postId. Issa fil-Link node toħloq-post-link inti tista espliċitament tispeċifika li l-varjabbli postId assenjat lil antenat toħloq-post-link. Dan il-mekkaniżmu (għal darb'oħra, fil-lingwa ta 'programmar) jista' jintuża biex jirritorna riżultat minn "funzjoni". B'mod ġenerali, huwa frisk, DRY huwa fl-aqwa tiegħu u għal darb'oħra ma saritx ħsara linja waħda ta 'kodiċi.

Għaliex TestMace huwa aħjar minn Postman

Fir-rigward ta' Postman, hemm talba ta' karatteristika għal talbiet għall-użu mill-ġdid mdendlin mill-2015, u jidher li hemm anke xi ħjielli qed jaħdmu fuq din il-problema. Fil-forma attwali tiegħu, Postman, ovvjament, għandu l-abbiltà li jibdel il-ħajt ta 'eżekuzzjoni, li fit-teorija probabbilment jagħmilha possibbli li tiġi implimentata mġieba simili, iżda dan huwa aktar ta' hack maħmuġ milli approċċ tassew ta 'ħidma.

Differenzi oħra

  • Kontroll akbar fuq l-ambitu tal-varjabbli. L-iżgħar ambitu li fih varjabbli jista' jiġi definit f'Postiera huwa l-ġbir. TestMace jippermettilek tiddefinixxi varjabbli għal kwalunkwe mistoqsija jew folder. Fil-ġbir Postman Share jippermettilek tesporta kollezzjonijiet biss, filwaqt li f'TestMace il-qsim jaħdem għal kwalunkwe node
  • TestMace jappoġġja headers li jintirtu, li jistgħu jiġu sostitwiti f'mistoqsijiet tfal b'mod awtomatiku. Postman għandu xi ħaġa dwar dan: il-kompitu, u huwa saħansitra magħluq, iżda huwa offrut bħala soluzzjoni... uża skripts. F'TestMace, dan kollu huwa kkonfigurat permezz tal-GUI u hemm għażla li tiddiżattiva b'mod fakultattiv headers li jintirtu f'dixxendenti speċifiċi
  • Ħoll/Redo. Jaħdem mhux biss meta teditja n-nodi, iżda wkoll meta tiċċaqlaq, tħassar, tibdel l-isem u operazzjonijiet oħra li jbiddlu l-istruttura tal-proġett
  • Fajls mehmuża mat-talbiet isiru parti mill-proġett u jinħażnu miegħu, filwaqt li jkunu perfettament sinkronizzati, b'differenza Postman. (Iva, m'għadx għandek bżonn tagħżel manwalment fajls kull darba li tibda u tittrasferihom lill-kollegi fl-arkivji)

Karatteristiċi li huma diġà fit-triq

Ma stajniex nirreżistu t-tentazzjoni li nneħħu l-velu tas-segretezza fuq ir-rilaxxi li jmiss, speċjalment meta l-funzjonalità hija fit-togħma ħafna u diġà għaddejja minn illustrar ta 'qabel ir-rilaxx. Allura, ejja niltaqgħu.

Funzjonijiet

Kif tafu, Postman juża l-hekk imsejħa varjabbli dinamiċi biex jiġġenera valuri. Il-lista tagħhom hija impressjonanti u l-maġġoranza l-kbira tal-funzjonijiet jintużaw biex jiġġeneraw valuri foloz. Pereżempju, biex tiġġenera email każwali trid tikteb:

{{$randomEmail}}

Madankollu, peress li dawn huma varjabbli (għalkemm dinamiċi), ma jistgħux jintużaw bħala funzjonijiet: mhumiex parametrizzabbli, għalhekk mhux se jkun possibbli li tieħu hash minn string.

Qed nippjanaw li nżidu funzjonijiet "onesti" ma' TestMace. Eżatt ġewwa ${} se jkun possibbli mhux biss li taċċessa varjabbli, iżda wkoll li tissejjaħ funzjoni. Dawk. jekk għandek bżonn tiġġenera l-email foloz notorji, aħna sempliċiment niktbu

${faker.internet.email()}

Minbarra l-fatt li hija funzjoni, tinduna li huwa possibbli li ssejjaħ metodu fuq oġġett. U minflok lista ċatta kbira ta 'varjabbli dinamiċi, għandna sett ta' oġġetti raggruppati loġikament.

X'jiġri jekk irridu nikkalkulaw il-hash ta 'sekwenza? Faċilment!

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

Tinduna li tista 'anki tgħaddi varjabbli bħala parametri! F'dan il-punt, qarrej kurjuż jista' jissuspetta xi ħaġa ħażina...

Uża JavaScript fl-Espressjonijiet

... U għal raġuni tajba! Meta r-rekwiżiti għall-funzjonijiet kienu qed jiġu ffurmati, f'daqqa waħda wasalna għall-konklużjoni li javascript validu għandu jinkiteb f'espressjonijiet. Allura issa int liberu li tikteb espressjonijiet bħal:

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

U dan kollu mingħajr skripts, dritt fl-oqsma ta 'input!

Fir-rigward ta' Postman, hawnhekk tista' tuża biss varjabbli, u meta tipprova tikteb l-iċken espressjoni, il-validatur jisħet u jirrifjuta li jikkalkulaha.

Għaliex TestMace huwa aħjar minn Postman

Awtokompletazzjoni avvanzata

Bħalissa TestMace għandu awtokompletament standard li jidher bħal dan:

Għaliex TestMace huwa aħjar minn Postman

Hawnhekk, minbarra l-linja awto-kompleta, huwa indikat għalxiex tappartjeni din il-linja. Dan il-mekkaniżmu jaħdem biss f'espressjonijiet imdawra bil-parentesi ${}.

Kif tistgħu taraw, ġew miżjuda markaturi viżwali li jindikaw it-tip ta 'varjabbli (per eżempju, string, numru, firxa, eċċ.). Tista 'wkoll tibdel il-modi ta' tlestija awtomatika (per eżempju, tista 'tagħżel tlestija awtomatika b'varjabbli jew headers). Imma lanqas din mhix l-aktar ħaġa importanti!

L-ewwel, l-awtokompletazzjoni taħdem anke fl-espressjonijiet (fejn possibbli). Dan huwa kif jidher:

Għaliex TestMace huwa aħjar minn Postman

U t-tieni, l-awtokompletazzjoni issa hija disponibbli fi skripts. Agħti ħarsa lejn kif taħdem!

Għaliex TestMace huwa aħjar minn Postman

M'hemm l-ebda skop li din il-funzjonalità titqabbel ma' Postman - l-awtokompletazzjoni hija limitata biss għal-listi statiċi ta 'varjabbli, headers u l-valuri tagħhom (ikkoreġini jekk insejt xi ħaġa). L-iskripts mhumiex kompluti awtomatikament :)

Konklużjoni

Ottubru mmarkat sena mill-bidu tal-iżvilupp tal-prodott tagħna. Matul dan iż-żmien, irnexxielna nagħmlu ħafna affarijiet u, f'ċerti aspetti, ilħaqna mal-kompetituri tagħna. Imma jkun hekk, l-għan tagħna huwa li nagħmlu għodda tassew konvenjenti biex naħdmu mal-APIs. Għad fadlilna ħafna xogħol x’nagħmlu, hawn pjan approssimattiv għall-iżvilupp tal-proġett tagħna għas-sena li ġejja: https://testmace.com/roadmap.

Ir-reazzjonijiet tiegħek se jippermettulna ninnavigaw aħjar l-abbundanza ta 'karatteristiċi, u l-appoġġ tiegħek jagħtina saħħa u kunfidenza li qed nagħmlu l-ħaġa tajba. Jiġri li llum hija jum importanti għall-proġett tagħna - il-jum li fih ġie ppubblikat TestMace ProductHunt. Jekk jogħġbok appoġġa l-proġett tagħna, huwa importanti ħafna għalina. Barra minn hekk, illum hemm offerta jitħajjar fuq il-paġna PH tagħna, u hija limitata

Sors: www.habr.com

Żid kumment