Hello lil kulħadd, hawn int TestMace! Forsi ħafna nies jafu dwarna minn ta ’tagħnapreċedentiartikoli. 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:
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:
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.
Kapaċità li tmexxi skript eżistenti permezz ta' link (Link node)
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.
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.
Awtokompletazzjoni avvanzata
Bħalissa TestMace għandu awtokompletament standard li jidher bħal dan:
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:
U t-tieni, l-awtokompletazzjoni issa hija disponibbli fi skripts. Agħti ħarsa lejn kif taħdem!
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