Ngano nga ang TestMace mas maayo kaysa Postman

Ngano nga ang TestMace mas maayo kaysa Postman

Kumusta sa tanan, ania na TestMace! Tingali daghang mga tawo ang nahibal-an bahin kanamo gikan sa sa amon miaging mga artikulo. Alang niadtong bag-o lang miapil: naghimo kami og IDE aron magamit ang TestMace API. Ang labing kanunay nga gipangutana nga pangutana kung itandi ang TestMace sa mga nakigkompetensya nga mga produkto mao ang "Unsa ka lahi sa Postman?" Nakahukom kami nga panahon na nga maghatag usa ka detalyado nga tubag sa kini nga pangutana. Sa ubos among gilatid ang among mga bentaha Postman.

Pagbahin sa mga node

Kung nagtrabaho ka sa Postman, nahibal-an nimo nga ang interface sa hangyo naglangkob sa tanan nga kinahanglan nga gamit. Adunay mga script, pagsulay, ug, sa tinuud, ang mga pangutana mismo. Kini naghimo nga mas sayon ​​alang sa mga nagsugod, apan sa dagkong mga sitwasyon kini nga pamaagi dili flexible. Unsa kaha kung gusto nimo nga maghimo daghang mga pangutana ug maghimo usa ka panagsama niini? Unsa kaha kung gusto nimo nga ipatuman ang usa ka script nga wala’y hangyo o daghang mga lohikal nga gibulag nga mga script sa usa ka laray? Sa tinuud, maayo nga ideya nga ibulag ang mga pagsulay gikan sa mga regular nga script sa utility. Dugang pa, ang "idugang ang tanan nga gamit sa usa ka node" nga pamaagi dili scalable - ang interface dali nga na-overload.

Ang TestMace sa sinugdan nagbahin sa tanang gamit ngadto sa lain-laing matang sa mga node. Gusto ka bang mohangyo? Para kini kanimo hangyo nga lakang node Gusto ba nimong magsulat usa ka script? Para kini kanimo script node Nagkinahanglan ug mga pagsulay? Palihug - Pagpahayag node Oh oo, mahimo pa nimo nga tapuson kining tanan nga butang suksukanan sa papel node Ug kining tanan dali nga mahiusa sa usag usa. Kini nga pamaagi dili lamang kaayo flexible, apan usab, uyon sa prinsipyo sa usa ka responsibilidad, nagtugot kanimo sa paggamit lamang sa imong gikinahanglan sa pagkakaron. Ngano nga kinahanglan nako ang mga script ug mga pagsulay kung gusto ko lang maghangyo?

Mabasa sa tawo nga pormat sa proyekto

Adunay usa ka konsepto nga kalainan tali sa TestMace ug Postman sa paagi nga kini gitipigan. Sa Postman, ang tanan nga mga hangyo gitipigan sa usa ka lugar sa lokal nga pagtipig. Kung adunay kinahanglan nga ipaambit ang mga hangyo tali sa daghang mga tiggamit, nan kinahanglan nimo nga gamiton ang built-in nga pag-synchronize. Sa tinuud, kini usa ka kasagaran nga gidawat nga pamaagi, apan dili kung wala ang mga kakulangan niini. Unsa man ang bahin sa seguridad sa datos? Pagkahuman, ang palisiya sa pipila nga mga kompanya mahimo’g dili magtugot sa pagtipig sa datos sa mga ikatulo nga partido. Bisan pa, kami naghunahuna nga ang TestMace adunay mas maayo nga itanyag! Ug ang ngalan sa kini nga pag-uswag mao ang "format sa proyekto nga mabasa sa tawo."

Magsugod kita sa kamatuoran nga sa TestMace, sa prinsipyo, adunay usa ka entidad nga "proyekto". Ug ang aplikasyon sa sinugdanan naugmad uban ang usa ka mata sa pagtipig sa mga proyekto sa mga sistema sa pagkontrol sa bersyon: ang punoan sa proyekto halos usa-sa-usa nga giplano ngadto sa istruktura sa file, ang yaml gigamit isip format sa pagtipig (nga walay dugang nga mga bracket ug mga koma), ug ang Ang representasyon sa file sa matag node gihulagway sa detalye sa dokumentasyon nga adunay mga komentaryo. Apan sa kadaghanan nga mga kaso dili ka motan-aw didto - ang tanan nga mga ngalan sa uma adunay lohikal nga mga ngalan.

Unsa ang gihatag niini sa tiggamit? Gitugotan ka niini nga usbon ang dagan sa trabaho sa team nga labi ka dali, gamit ang pamilyar nga mga pamaagi. Pananglitan, ang mga developers mahimong magtipig og proyekto sa samang repositoryo sa backend. Sa mga sanga, dugang sa pagbag-o sa base sa code mismo, ang developer mahimong magtul-id sa kasamtangan nga mga script sa pangutana ug mga pagsulay. Pagkahuman sa paghimo sa mga pagbag-o sa repository (git, svn, mercurial - bisan unsa nga gusto nimo nga labing maayo), ang CI (imong paborito, dili gipahamtang ni bisan kinsa) naglansad sa among console utility testmace-cli, ug ang report nga nadawat human sa pagpatuman (pananglitan, sa junit format, nga gisuportahan usab sa testmace-cli) gipadala ngadto sa angay nga sistema. Ug ang gihisgutan sa ibabaw nga isyu sa seguridad dili na problema.

Sama sa imong nakita, ang TestMace wala magpahamtang sa ekosistema ug paradigm niini. Hinunoa, kini dali nga mohaum sa natukod nga mga proseso.

Dynamic nga mga Variable

Gisunod sa TestMace ang konsepto nga walay code: kung masulbad ang usa ka problema nga wala gamita ang code, gisulayan namon nga mahatagan kini nga oportunidad. Ang pagtrabaho kauban ang mga variable mao gyud ang klase sa pagpaandar diin sa kadaghanan nga mga kaso mahimo nimo nga wala ang pagprograma.

Pananglitan: nakadawat kami usa ka tubag gikan sa server, ug gusto namon nga i-save ang bahin sa tubag sa usa ka variable. Sa Postman, sa usa ka test script (nga katingad-an sa iyang kaugalingon) magsulat kami sama sa:

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

Apan sa among opinyon, ang pagsulat sa usa ka script alang sa ingon ka yano ug kanunay nga gigamit nga senaryo ingon kadaghan. Busa, sa TestMace posible nga mag-assign sa usa ka piraso sa tubag sa usa ka variable gamit ang graphical interface. Tan-awa kung unsa kini ka simple:

Ngano nga ang TestMace mas maayo kaysa Postman

Ug karon sa matag hangyo kini nga dinamikong variable ma-update. Apan mahimo ka nga mosupak, nga nangatarungan nga ang pamaagi sa Postman mas flexible ug nagtugot kanimo dili lamang sa paghimo sa usa ka buluhaton, apan usab sa paghimo sa pipila nga preprocessing. Ania kung giunsa pag-usab ang miaging pananglitan:

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

Aw, alang niini nga katuyoan TestMace adunay script node, nga naglangkob niini nga senaryo. Aron makopya ang miaging kaso, apan gipatuman na sa TestMace, kinahanglan nimo nga maghimo usa ka node sa script pagkahuman sa hangyo ug gamiton ang mosunod nga code ingon usa ka script:

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

Sama sa imong nakita, ang komposisyon sa mga node nagsilbi usab dinhi. Ug alang sa ingon nga usa ka yano nga kaso sama sa gihulagway sa ibabaw, mahimo nimong itudlo ang ekspresyon ${crypto.MD5($response.data)} variable nga gihimo pinaagi sa GUI!

Paghimo mga pagsulay pinaagi sa GUI

Gitugotan ka sa Postman nga maghimo mga pagsulay pinaagi sa pagsulat sa mga script (sa kaso sa Postman, kini ang JavaScript). Kini nga pamaagi adunay daghang mga bentaha - hapit walay kutub nga pagka-flexible, pagkaanaa sa mga andam nga solusyon, ug uban pa.

Bisan pa, ang reyalidad kanunay nga ingon (dili kami ingon niana, ingon niana ang kinabuhi) nga ang usa ka tester wala’y kahanas sa pagprograma, apan gusto niya nga makahatag kaayohan sa team karon. Alang sa ingon nga mga kaso, nga nagsunod sa konsepto nga walay code, ang TestMace nagtugot kanimo sa paghimo og yano nga mga pagsulay pinaagi sa usa ka GUI nga dili mogamit sa pagsulat sa mga script. Dinhi, pananglitan, kung unsa ang hitsura sa proseso sa paghimo usa ka pagsulay nga nagtandi sa mga kantidad alang sa pagkaparehas:

Ngano nga ang TestMace mas maayo kaysa Postman

Bisan pa, ang paghimo og mga pagsulay sa usa ka graphical editor wala magwagtang sa posibilidad pagsulat sa mga pagsulay sa code. Ang tanan nga parehas nga mga librarya ania dinhi sama sa script node, ug chai alang sa mga pagsulay sa pagsulat.

Ang mga sitwasyon sa kasagaran motungha kung ang usa ka pangutana o bisan ang usa ka tibuuk nga script kinahanglan nga ipatuman sa daghang mga higayon sa lainlaing mga bahin sa proyekto. Ang usa ka pananglitan sa maong mga hangyo mahimong custom multi-stage authorization, pagdala sa palibot ngadto sa gusto nga kahimtang, ug uban pa. Sa kinatibuk-an, sa pagsulti bahin sa mga programming language, gusto namon nga adunay mga function nga magamit pag-usab sa lainlaing mga bahin sa aplikasyon. Sa TestMace kini nga function gihimo sa link node Kini yano kaayo nga gamiton:
1) paghimo og pangutana o script
2) paghimo og usa ka node sa tipo nga Link
3) sa mga parameter, ipiho ang usa ka link sa script nga gihimo sa unang lakang

Sa mas abante nga bersyon, mahimo nimong ipiho kung unsang mga dinamikong variable gikan sa script ang gipasa sa mas taas nga lebel nga may kalabotan sa link. Makalibog ang tingog? Ingnon ta nga naghimo kami usa ka Folder nga adunay ngalan paghimo-post, diin ang usa ka dinamikong variable gi-assign niini nga node postId. Karon sa Link node paghimo-post-link mahimo nimong klaro nga ipiho nga ang variable postId gi-assign sa usa ka katigulangan paghimo-post-link. Kini nga mekanismo (pag-usab, sa programming language) mahimong gamiton aron ibalik ang resulta gikan sa usa ka "function". Sa kinatibuk-an, kini bugnaw, DRY anaa sa bug-os nga swing ug usab walay usa ka linya sa code ang nadaot.

Ngano nga ang TestMace mas maayo kaysa Postman

Sama sa alang sa Postman, adunay usa ka bahin nga hangyo alang sa paggamit pag-usab sa mga hangyo nagbitay sukad 2015, ug murag naa man gani pipila ka mga pahibalonga sila nagtrabaho sa kini nga problema. Sa kasamtangan nga porma niini, ang Postman, siyempre, adunay katakus sa pag-usab sa hilo sa pagpatay, nga sa teoriya tingali nagpaposible sa pagpatuman sa susama nga kinaiya, apan kini labaw pa sa usa ka hugaw nga hack kay sa usa ka tinuod nga pamaagi sa pagtrabaho.

Ubang mga kalainan

  • Mas dako nga kontrol sa sakup sa mga variable. Ang pinakagamay nga sakup diin ang usa ka variable mahimong ipasabut sa Postman mao ang koleksyon. Gitugotan ka sa TestMace nga mahibal-an ang mga variable alang sa bisan unsang pangutana o folder. Sa Postman Share nga koleksyon nagtugot kanimo sa pag-eksport lamang sa mga koleksyon, samtang sa TestMace sharing magamit alang sa bisan unsang node
  • TestMace nagsuporta mapanunod nga mga ulohan, nga mahimong ilisan sa mga pangutana sa bata pinaagi sa default. Ang postman adunay bahin niini: ang buluhaton, ug kini sirado pa, apan gitanyag kini isip solusyon... gamita ang mga script. Sa TestMace, kining tanan gi-configure pinaagi sa GUI ug adunay opsyon nga opsyonal nga dili pag-disable ang napanunod nga mga ulohan sa piho nga mga kaliwat
  • Pag-undo/Pag-usab. Nagtrabaho dili lamang sa pag-edit sa mga node, apan usab sa paglihok, pagtangtang, pag-usab sa ngalan ug uban pang mga operasyon nga nagbag-o sa istruktura sa proyekto
  • Ang mga file nga gilakip sa mga hangyo nahimong bahin sa proyekto ug gitipigan uban niini, samtang hingpit nga gi-synchronize, dili sama sa Postman. (Oo, dili na nimo kinahanglan nga mano-mano ang pagpili sa mga file matag higayon nga magsugod ka ug ibalhin kini sa mga kauban sa mga archive)

Mga bahin nga anaa na sa dalan

Dili namo mapugngan ang tentasyon sa pagtangtang sa tabil sa sekreto sa sunod nga mga pagpagawas, ilabi na kung ang pag-andar lami kaayo ug gipaagi na sa pre-release polishing. So, magkita ta.

Mga katuyoan

Sama sa imong nahibal-an, ang Postman naggamit sa gitawag nga dinamikong mga variable aron makamugna mga kantidad. Ang lista nila impresibo ug ang kadaghanan sa mga gimbuhaton gigamit aron makamugna og peke nga mga kantidad. Pananglitan, aron makamugna og random nga email kinahanglan nimo nga isulat:

{{$randomEmail}}

Bisan pa, tungod kay kini mga baryable (bisan pa dinamiko), dili kini magamit ingon mga gimbuhaton: dili kini ma-parameter, busa dili posible nga makakuha usa ka hash gikan sa usa ka hilo.

Nagplano kami nga idugang ang "matinud-anon" nga mga gimbuhaton sa TestMace. Sa sulod mismo sa ${} mahimong posible dili lang ang pag-access sa usa ka variable, apan ang pagtawag usab sa usa ka function. Mga. kung kinahanglan nimo nga makamugna ang bantog nga peke nga email, magsulat lang kami

${faker.internet.email()}

Gawas pa sa kamatuoran nga kini usa ka function, imong mamatikdan nga posible nga tawagan ang usa ka pamaagi sa usa ka butang. Ug imbis nga usa ka dako nga patag nga lista sa dinamikong mga variable, kami adunay usa ka hugpong sa mga butang nga gi-grupo nga lohikal.

Unsa kaha kon gusto natong kuwentahon ang hash sa usa ka hilo? Sayon!

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

Mamatikdan nimo nga mahimo nimo nga ipasa ang mga variable ingon mga parameter! Niini nga punto, ang usa ka mausisaon nga magbabasa mahimong magduda nga adunay sayup ...

Paggamit sa JavaScript sa mga Ekspresyon

... Ug alang sa maayong rason! Sa diha nga ang mga kinahanglanon alang sa mga gimbuhaton gihimo, kami kalit nga nakahinapos nga ang balido nga javascript kinahanglan nga isulat sa mga ekspresyon. Busa karon gawasnon ka sa pagsulat sa mga ekspresyon sama sa:

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

Ug kining tanan nga walay mga script, diha mismo sa input field!

Sama sa alang sa Postman, dinhi mahimo ra nimo gamiton ang mga variable, ug kung imong sulayan nga isulat ang labing gamay nga ekspresyon, ang validator nagtunglo ug nagdumili sa pagkalkulo niini.

Ngano nga ang TestMace mas maayo kaysa Postman

Advanced nga autocompletion

Sa pagkakaron ang TestMace adunay usa ka standard nga autocompletion nga ingon niini:

Ngano nga ang TestMace mas maayo kaysa Postman

Dinhi, agig dugang sa auto-complete nga linya, gipakita kung unsa kini nga linya. Kini nga mekanismo naglihok lamang sa mga ekspresyon nga gilibutan sa mga bracket nga ${}.

Sama sa imong makita, ang mga visual marker gidugang nga nagpakita sa matang sa variable (pananglitan, string, numero, array, ug uban pa). Mahimo usab nimo usbon ang mga mode sa autocompletion (pananglitan, mahimo nimong pilion ang autocompletion nga adunay mga variable o header). Apan bisan kini dili mao ang labing hinungdanon nga butang!

Una, ang autocompletion molihok bisan sa mga ekspresyon (kung mahimo). Mao kini ang hitsura niini:

Ngano nga ang TestMace mas maayo kaysa Postman

Ug ikaduha, ang autocompletion anaa na sa mga script. Tan-awa kung giunsa kini paglihok!

Ngano nga ang TestMace mas maayo kaysa Postman

Wala’y punto sa pagtandi niini nga pag-andar sa Postman - ang autocompletion adunay limitado lamang sa mga static nga lista sa mga variable, header ug ilang mga kantidad (tul-ira ako kung nakalimtan nako ang usa ka butang). Ang mga script dili autocompleted :)

konklusyon

Ang Oktubre nagtimaan sa usa ka tuig sukad sa pagsugod sa among pag-uswag sa produkto. Atol niini nga panahon, nakahimo kami sa pagbuhat sa daghang mga butang ug, sa pipila ka bahin, nasakpan ang among mga kakompetensya. Apan bisan unsa pa, ang among katuyoan mao ang paghimo usa ka tinuud nga kombenyente nga himan alang sa pagtrabaho kauban ang mga API. Daghan pa mig trabaho, aniay rough plan para sa development sa among project para sa umaabot nga tuig: https://testmace.com/roadmap.

Ang imong feedback magtugot kanamo nga mas maayo nga mag-navigate sa daghang mga bahin, ug ang imong suporta naghatag kanamo kusog ug pagsalig nga among gibuhat ang husto. Nahitabo nga karon usa ka hinungdanon nga adlaw alang sa among proyekto - ang adlaw nga gipatik ang TestMace ProductHunt. Palihug suportahi ang among proyekto, kini hinungdanon kaayo kanamo. Dugang pa, adunay usa ka madanihon nga tanyag sa among PH page karon, ug kini limitado

Source: www.habr.com

Idugang sa usa ka comment