{"id":54188,"date":"2019-12-20T00:00:00","date_gmt":"2019-12-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/chem-testmace-luchshe-postman"},"modified":"2020-02-18T14:02:10","modified_gmt":"2020-02-18T11:02:10","slug":"chem-testmace-luchshe-postman","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/chem-testmace-luchshe-postman","title":{"rendered":"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/4b61986c287c32a4cefeb2f805fc228f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ahojte v\u0161etci, tu je <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/\">TestMace<\/a><\/noindex>! Mo\u017eno mnoh\u00ed o n\u00e1s vedia z <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">n\u00e1\u0161ho<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462585\/\">predch\u00e1dzaj\u00facich<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458964\/\">\u010dl\u00e1nkov<\/a><\/noindex>. Pre t\u00fdch, ktor\u00ed sa pr\u00e1ve pripojili: vyv\u00edjame IDE pre pr\u00e1cu s API TestMace. Naj\u010dastej\u0161ia ot\u00e1zka pri porovn\u00e1van\u00ed TestMace s konkuren\u010dn\u00fdmi produktmi je \u2014 &#171;\u010c\u00edm sa odli\u0161ujete od Postman?&#187;. Rozhodli sme sa, \u017ee je \u010das poskytn\u00fa\u0165 podrobn\u00fa odpove\u010f na t\u00fato ot\u00e1zku. Ni\u017e\u0161ie sme v bodoch zhrnuli na\u0161e v\u00fdhody pred <noindex><a rel=\"nofollow\" href=\"https:\/\/www.getpostman.com\/\">Postman<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"razdelenie-na-uzly\">Rozdelenie na uzly<\/h2>\n<p><\/p>\n<p>Ak pracujete s Postman, tak viete, \u017ee rozhranie po\u017eiadavky obsahuje v\u0161etku potrebn\u00fa funkcionalitu. S\u00fa tu skripty, testy a samotn\u00e9 po\u017eiadavky. To u\u013eah\u010duje pr\u00e1cu pre za\u010diato\u010dn\u00edkov, av\u0161ak pri v\u00e4\u010d\u0161\u00edch sc\u00e9naroch tak\u00fdto pr\u00edstup nie je flexibiln\u00fd. \u010co ak chcete vytvori\u0165 nieko\u013eko po\u017eiadaviek a robi\u0165 na nich agreg\u00e1ciu? \u010co ak chcete spusti\u0165 skript bez po\u017eiadavky alebo nieko\u013eko logicky oddelen\u00fdch skriptov po sebe? Nakoniec, nebolo by zl\u00e9 oddeli\u0165 testy od oby\u010dajn\u00fdch utilit\u00e1rnych skriptov. Okrem toho pr\u00edstup &#171;prid\u00e1vame v\u0161etku funkcionalitu do jedn\u00e9ho uzla&#187; nie je \u0161k\u00e1lovate\u013en\u00fd \u2014 rozhranie sa r\u00fdchlo st\u00e1va pre\u0165a\u017een\u00fdm.<\/p>\n<p><\/p>\n<p>TestMace od za\u010diatku rozde\u013euje v\u0161etku funkcionalitu na r\u00f4zne typy uzlov. Chcete urobi\u0165 po\u017eiadavku? Tu m\u00e1te <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/requeststep\">request step<\/a><\/noindex> uzol. Chcete nap\u00edsa\u0165 skript? Tu m\u00e1te <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> uzol. Potrebujete testy? Pros\u00edm \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\">Assertion<\/a><\/noindex> uzol. A \u00e1no, m\u00f4\u017eete to cel\u00e9 zabalit do <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/folder\">folder<\/a><\/noindex> uzla. A to v\u0161etko sa \u013eahko kombinuje. Tak\u00fdto pr\u00edstup nie je len ve\u013emi flexibiln\u00fd, ale v s\u00falade so z\u00e1sadou jedine\u010dnej zodpovednosti umo\u017e\u0148uje pou\u017e\u00edva\u0165 len to, \u010do skuto\u010dne potrebujete v dan\u00fd okamih. Pre\u010do by som potreboval skripty a testy, ke\u010f chcem len urobi\u0165 po\u017eiadavku?<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-proekta\">\u010citate\u013en\u00fd form\u00e1t projektu<\/h2>\n<p><\/p>\n<p>Medzi TestMace a Postman existuje konceptu\u00e1lny rozdiel v sp\u00f4sobe ukladania. V Postman s\u00fa v\u0161etky po\u017eiadavky ulo\u017een\u00e9 niekde v lok\u00e1lnom \u00falo\u017eisku. Ak je potrebn\u00e9 zdie\u013ea\u0165 po\u017eiadavky medzi viacer\u00fdmi pou\u017e\u00edvate\u013emi, treba vyu\u017ei\u0165 vstavan\u00fa synchroniz\u00e1ciu. V skuto\u010dnosti ide o be\u017ene akceptovan\u00fd pr\u00edstup, ktor\u00fd nie je bez nedostatkov. Ako je to s bezpe\u010dnos\u0165ou \u00fadajov? Napokon, politika niektor\u00fdch spolo\u010dnost\u00ed nemus\u00ed dovo\u013eova\u0165 uchov\u00e1va\u0165 \u00fadaje u tret\u00edch str\u00e1n. Av\u0161ak sme presved\u010den\u00ed, \u017ee TestMace m\u00f4\u017ee pon\u00faknu\u0165 nie\u010do lep\u0161ie! A to zlep\u0161enie sa vol\u00e1 &#171;\u010ditate\u013en\u00fd form\u00e1t projektu&#187;.<\/p>\n<p><\/p>\n<p>Za\u010dneme t\u00fdm, \u017ee v TestMace existuje entita \u201eprojekt\u201c. A aplik\u00e1cia bola p\u00f4vodne vyvinut\u00e1 s oh\u013eadom na uchov\u00e1vanie projektov v syst\u00e9moch na kontrolu verzi\u00ed: strom projektu sa takmer jeden na jedn\u00e9ho premieta do s\u00faborovej \u0161trukt\u00fary, ako form\u00e1t ukladania sa pou\u017e\u00edva yaml (bez zbyto\u010dn\u00fdch z\u00e1tvoriek a \u010diarok), a s\u00faborov\u00e9 zobrazenie ka\u017ed\u00e9ho uzla je podrobne pop\u00edsan\u00e9 v dokument\u00e1cii s koment\u00e1rmi. Ale v\u00e4\u010d\u0161inou sa na to nebudete pozera\u0165 \u2013 v\u0161etky men\u00e1 pol\u00ed maj\u00fa logick\u00e9 n\u00e1zvy. <\/p>\n<p><\/p>\n<p>\u010co to pou\u017e\u00edvate\u013eovi poskytuje? To umo\u017e\u0148uje ve\u013emi flexibilne meni\u0165 pracovn\u00fd tok t\u00edmu s pou\u017eit\u00edm zn\u00e1mych pr\u00edstupov. Napr\u00edklad v\u00fdvoj\u00e1ri m\u00f4\u017eu uchov\u00e1va\u0165 projekt v tom istom repozit\u00e1ri, ak\u00fd maj\u00fa backend. V vetv\u00e1ch m\u00f4\u017ee v\u00fdvoj\u00e1r okrem zmien v k\u00f3dovej b\u00e1ze upravi\u0165 existuj\u00face scen\u00e1re po\u017eiadaviek a testy. Po zaznamenan\u00ed zmien v repozit\u00e1ri (git, svn, mercurial \u2013 \u010do v\u00e1m viac vyhovuje) sp\u00fa\u0161\u0165a CI (va\u0161a ob\u013e\u00faben\u00e1, nik\u00fdm nenavrhnut\u00e1) na\u0161u konzolov\u00fa utilitu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/package\/@testmace\/cli\">testmace-cli<\/a><\/noindex>, a v\u00fdsledn\u00fd report (napr\u00edklad vo form\u00e1te junit, ktor\u00fd je taktie\u017e podporovan\u00fd v testmace-cli) sa odosiela do pr\u00edslu\u0161n\u00e9ho syst\u00e9mu. A ot\u00e1zka bezpe\u010dnosti u\u017e nie je probl\u00e9mom.<\/p>\n<p><\/p>\n<p>Ako vid\u00edte, TestMace nen\u00fati svoju ekosyst\u00e9mu a paradigmu. Namiesto toho sa \u013eahko integruje do u\u017e existuj\u00facich procesov.<\/p>\n<p><\/p>\n<h2 id=\"dinamicheskie-peremennye\">Dynamick\u00e9 premenn\u00e9<\/h2>\n<p><\/p>\n<p>TestMace nasleduje koncept no-code: ak je probl\u00e9m mo\u017en\u00e9 vyrie\u0161i\u0165 bez pou\u017eitia k\u00f3du, sna\u017e\u00edme sa poskytn\u00fa\u0165 tak\u00fa mo\u017enos\u0165. Pr\u00e1ca s premenn\u00fdmi je pr\u00e1ve ten funk\u010dn\u00fd aspekt, kde v\u00e4\u010d\u0161inou m\u00f4\u017eeme ob\u00eds\u0165 programovanie.<\/p>\n<p><\/p>\n<p>Pr\u00edklad: dostali sme odpove\u010f od servera a chceme ulo\u017ei\u0165 \u010das\u0165 odpovede do premennej. V Postmane by sme v testovacom skripte (\u010do je samo o sebe \u010dudn\u00e9) nap\u00edsali nie\u010do v zmysle:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">var jsonData = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"data\", jsonData.data);<\/code><\/pre>\n<p><\/p>\n<p>Ale pod\u013ea n\u00e1\u0161ho n\u00e1zoru p\u00edsanie skriptu pre tak\u00fd jednoduch\u00fd a \u010dasto pou\u017e\u00edvan\u00fd scen\u00e1r vyzer\u00e1 zbyto\u010dne. Preto v TestMace existuje mo\u017enos\u0165 priradi\u0165 premennej kus odpovede pomocou grafick\u00e9ho rozhrania. Pozrite sa, ako je to jednoduch\u00e9:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/2ce8ce2f9aa2964cb5bd1d5eacead423.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A teraz pri ka\u017edom po\u017eiadavku sa t\u00e1to dynamick\u00e1 premenn\u00e1 aktualizuje. M\u00f4\u017eete v\u0161ak namieta\u0165, \u017ee pr\u00edstup Postmana je flexibilnej\u0161\u00ed a umo\u017e\u0148uje nielen priradi\u0165, ale aj vykona\u0165 ur\u010dit\u00fa predspracovanie. Takto m\u00f4\u017eete modifikova\u0165 predch\u00e1dzaj\u00faci pr\u00edklad:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">var jsonData = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"data\", CryptoJS.MD5(jsonData.data));<\/code><\/pre>\n<p><\/p>\n<p>Nu\u017e, na to je v TestMace <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> uzol, ktor\u00fd pokr\u00fdva tento scen\u00e1r. Aby ste reprodukovali predch\u00e1dzaj\u00faci pr\u00edpad, ale u\u017e v podan\u00ed TestMace, treba po po\u017eiadavke vytvori\u0165 uzol script a ako skript pou\u017ei\u0165 nasleduj\u00faci k\u00f3d:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">const data = tm.currentNode.prev.response.body.data;\ntm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));<\/code><\/pre>\n<p><\/p>\n<p>Ako vid\u00edte, kompoz\u00edcia uzlov tu tie\u017e dobre posl\u00fa\u017eila. A pre tak\u00fd jednoduch\u00fd pr\u00edpad, ak\u00fd je uveden\u00fd vy\u0161\u0161ie, m\u00f4\u017eete dokonca jednoducho priradi\u0165 v\u00fdraz <code>${crypto.MD5($response.data)}<\/code> premennej vytvorenej prostredn\u00edctvom grafick\u00e9ho rozhrania!<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov-cherez-gui\">Tvorba testov cez GUI<\/h2>\n<p><\/p>\n<p>Postman umo\u017e\u0148uje vytv\u00e1ra\u0165 testy pomocou p\u00edsania skriptov (v pr\u00edpade Postmana to je JavaScript). Tento pr\u00edstup m\u00e1 mnoho v\u00fdhod \u2014 takmer neobmedzen\u00fa flexibilitu, dostupnos\u0165 hotov\u00fdch rie\u0161en\u00ed at\u010f.<\/p>\n<p><\/p>\n<p>Av\u0161ak realita je \u010dasto tak\u00e1 (nie sme my tak\u00e9, ale \u017eivot tak\u00fd), \u017ee test\u00e9r nem\u00e1 program\u00e1torsk\u00e9 zru\u010dnosti a chcel by pr\u00ednos do t\u00edmu u\u017e teraz. Pre tak\u00e9to pr\u00edpady, pod\u013ea konceptu no-code, TestMace umo\u017e\u0148uje vytv\u00e1ra\u0165 jednoduch\u00e9 testy prostredn\u00edctvom grafick\u00e9ho rozhrania bez p\u00edsania skriptov. Napr\u00edklad takto vyzer\u00e1 proces vytv\u00e1rania testu, ktor\u00fd porovn\u00e1va hodnoty na rovnos\u0165:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/c0a8ce4cbe264dd76e3b5d90594eeff5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Av\u0161ak vytv\u00e1ranie testov v grafickom editore neodstra\u0148uje mo\u017enos\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\/script\">p\u00edsania testov v k\u00f3de<\/a><\/noindex>. Tu s\u00fa tie ist\u00e9 kni\u017enice, ktor\u00e9 s\u00fa v uzle script, a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chaijs.com\/\">chai<\/a><\/noindex> na p\u00edsanie testov.<\/p>\n<p><\/p>\n<h2 id=\"vozmozhnost-zapustit-uzhe-suschestvuyuschiy-scenariy-po-ssylke-link-uzel\">Mo\u017enos\u0165 spusti\u0165 u\u017e existuj\u00faci scen\u00e1r pod\u013ea odkazu (Link uzol)<\/h2>\n<p><\/p>\n<p>\u010casto vznikaj\u00fa situ\u00e1cie, kedy je potrebn\u00e9 vykona\u0165 ur\u010dit\u00fa po\u017eiadavku alebo dokonca cel\u00fd scen\u00e1r nieko\u013ekokr\u00e1t na r\u00f4znych \u010dastiach projektu. Pr\u00edkladom tak\u00fdchto po\u017eiadaviek m\u00f4\u017ee by\u0165 vlastn\u00e1 viacstup\u0148ov\u00e1 autoriz\u00e1cia, uvedenie prostredia do po\u017eadovan\u00e9ho stavu at\u010f. Celkovo, ak hovor\u00edme v term\u00ednoch programovac\u00edch jazykov, chceli by sme ma\u0165 funkcie, ktor\u00e9 m\u00f4\u017eeme opakovane pou\u017e\u00edva\u0165 v r\u00f4znych \u010dastiach aplik\u00e1cie. V TestMace t\u00fato funkciu vykon\u00e1va <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/link\">link<\/a><\/noindex> uzol. Pou\u017eitie je ve\u013emi jednoduch\u00e9:<br \/>\n1) vytvorte po\u017eiadavku alebo skript<br \/>\n2) vytvorte uzol typu Link<br \/>\n3) v parametroch nastavte odkaz na skript, vytvoren\u00fd v prvom kroku<\/p>\n<p><\/p>\n<p>V pokro\u010dilej\u0161ej verzii m\u00f4\u017eete ur\u010di\u0165, ak\u00e9 dynamick\u00e9 premenn\u00e9 zo skriptu pren\u00e1\u0161a\u0165 na vy\u0161\u0161iu \u00farove\u0148 vzh\u013eadom na odkaz. Znie to m\u00e4t\u00faco? Predpokladajme, \u017ee sme vytvorili Folder s n\u00e1zvom <strong>create-post<\/strong>, v ktorom sa tomuto uzlu prirad\u00ed dynamick\u00e1 premenn\u00e1 <code>postId<\/code>. Teraz v uzle Link <strong>create-post-link<\/strong> m\u00f4\u017eete jasne ur\u010di\u0165, aby sa premenn\u00e1 <code>postId<\/code> priradila predkovi <strong>create-post-link<\/strong>. Tento mechanizmus (op\u00e4\u0165, hovoriac program\u00e1torsk\u00fdm jazykom) m\u00f4\u017eeme vyu\u017ei\u0165 na vr\u00e1tenie v\u00fdsledku z &#171;funkcie&#187;. V skratke, skvel\u00e9, DRY v plnej sile a op\u00e4\u0165 \u017eiadny riadok k\u00f3du neutrp\u00ed.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/5235473a43e5bc2e05aeb2779846245f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u010co sa t\u00fdka Postmanu, po\u017eiadavku na op\u00e4tovn\u00e9 pou\u017eitie po\u017eiadaviek <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535\">m\u00e1 od roku 2015<\/a><\/noindex>, a zd\u00e1 sa, \u017ee existuj\u00fa <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535#issuecomment-280305898\">niektor\u00e9 n\u00e1znaky<\/a><\/noindex>, \u017ee na tomto probl\u00e9me pracuj\u00fa. V s\u00fa\u010dasnej podobe samozrejme Postman m\u00e1 mo\u017enos\u0165 zmeny toku vykon\u00e1vania, \u010do teoreticky m\u00f4\u017ee umo\u017eni\u0165 realiz\u00e1ciu tak\u00e9hoto spr\u00e1vania, ale sk\u00f4r ide o \u0161pinav\u00fd hack, ne\u017e naozaj funk\u010dn\u00fd pr\u00edstup. <\/p>\n<p><\/p>\n<h2 id=\"prochie-otlichiya\">\u010eal\u0161ie rozdiely<\/h2>\n<p><\/p>\n<ul>\n<li>V\u00e4\u010d\u0161ia kontrola nad rozsahom premenn\u00fdch. Najmen\u0161\u00edm rozsahom, v r\u00e1mci ktor\u00e9ho m\u00f4\u017eete definova\u0165 premenn\u00fa v Postman, je kolekcia. TestMace umo\u017e\u0148uje definova\u0165 premenn\u00e9 pre ak\u00fako\u013evek po\u017eiadavku alebo prie\u010dinok. V Postman Share kolekcia umo\u017e\u0148uje exportova\u0165 iba kolekcie, zatia\u013e \u010do v TestMace zdie\u013eanie funguje pre ak\u00fdko\u013evek uzol<\/li>\n<li>TestMace podporuje <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/other\/default-http-headers\">dedene hlavi\u010dky<\/a><\/noindex>, ktor\u00e9 sa m\u00f4\u017eu predvolene priradi\u0165 do podriaden\u00fdch po\u017eiadaviek. V Postman je v tejto veci <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947\">\u00faloha<\/a><\/noindex>, a je dokonca uzavret\u00e1, ale ako rie\u0161enie sa navrhuje... <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947#issuecomment-292741840\">pou\u017ei\u0165 skripty<\/a><\/noindex>. V TestMace je to v\u0161etko konfigurovan\u00e9 cez GUI a m\u00e1te mo\u017enos\u0165 volite\u013ene vypn\u00fa\u0165 dedi\u010dn\u00e9 hlavi\u010dky v konkr\u00e9tnych potomkoch<\/li>\n<li>Undo\/Redo. Funguje nielen pri \u00faprave uzlov, ale aj pri pres\u00favan\u00ed, odstra\u0148ovan\u00ed, premenov\u00e1van\u00ed a in\u00fdch oper\u00e1ci\u00e1ch, ktor\u00e9 menia \u0161trukt\u00faru projektu<\/li>\n<li>S\u00fabory pripojen\u00e9 k po\u017eiadavk\u00e1m sa st\u00e1vaj\u00fa s\u00fa\u010das\u0165ou projektu a ukladaj\u00fa sa spolu s n\u00edm, pri\u010dom sa skvele synchronizuj\u00fa, na rozdiel od Postman. (\u00c1no, u\u017e nie je potrebn\u00e9 ka\u017ed\u00e9 zav\u00e1dzanie manu\u00e1lne vybera\u0165 s\u00fabory pri ka\u017edom spusten\u00ed a posiela\u0165 kolegom v arch\u00edvoch)<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"fichi-kotorye-uzhe-na-podhode\">Funkcie, ktor\u00e9 s\u00fa u\u017e na ceste<\/h2>\n<p><\/p>\n<p>Nedok\u00e1zali sme odola\u0165 poku\u0161eniu poodhali\u0165 z\u00e1voj tajomstiev okolo na\u0161ich nasleduj\u00facich vydan\u00ed, najm\u00e4 ke\u010f je funk\u010dnos\u0165 tak\u00e1 l\u00e1kav\u00e1 a u\u017e prech\u00e1dza predvydan\u00edm. Tak\u017ee v\u00edtame.<\/p>\n<p><\/p>\n<h3 id=\"funkcii\">Funkcie<\/h3>\n<p><\/p>\n<p>Ako je zn\u00e1me, na generovanie hodn\u00f4t v Postmane sa vyu\u017e\u00edvaj\u00fa takzvan\u00e9 dynamick\u00e9 premenn\u00e9. <noindex><a rel=\"nofollow\" href=\"https:\/\/learning.getpostman.com\/docs\/postman\/variables-and-environments\/variables-list\/\">Ich zoznam je p\u00f4sobiv\u00fd<\/a><\/noindex> a drviv\u00e1 v\u00e4\u010d\u0161ina funkci\u00ed sl\u00fa\u017ei na generovanie falo\u0161n\u00fdch hodn\u00f4t. Napr\u00edklad na generovanie n\u00e1hodn\u00e9ho emailu je potrebn\u00e9 nap\u00edsa\u0165:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">{{$randomEmail}}<\/code><\/pre>\n<p><\/p>\n<p>Av\u0161ak, ke\u010f\u017ee ide o premenn\u00e9 (aj ke\u010f dynamick\u00e9), nem\u00f4\u017eu sa pou\u017e\u00edva\u0165 ako funkcie: nie s\u00fa parametrizovate\u013en\u00e9, a preto nie je mo\u017en\u00e9 z\u00edska\u0165 hash zo stringu.<\/p>\n<p><\/p>\n<p>V TestMace pl\u00e1nujeme prida\u0165 &#171;poctiv\u00e9&#187; funkcie. Priamo v ${} bude mo\u017en\u00e9 nielen odkazova\u0165 na premenn\u00fa, ale aj zavola\u0165 funkciu. T.j. ak potrebujeme vygenerova\u0165 notoricky zn\u00e1my falo\u0161n\u00fd email, jednoducho nap\u00ed\u0161eme<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${faker.internet.email()}<\/code><\/pre>\n<p><\/p>\n<p>Okrem toho, \u017ee ide o funkciu, je vidie\u0165, \u017ee je mo\u017en\u00e9 vola\u0165 met\u00f3dy objektu. A namiesto ve\u013ek\u00e9ho ploch\u00e9ho zoznamu dynamick\u00fdch premenn\u00fdch m\u00e1me s\u00fabor logicky zoskupen\u00fdch objektov.<\/p>\n<p><\/p>\n<p>A \u010do ak chceme vypo\u010d\u00edta\u0165 hash zo stringu? Jednoduch\u00e9!<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${crypto.MD5($dynamicVar.data)}<\/code><\/pre>\n<p><\/p>\n<p>Je vidie\u0165, \u017ee ako parametre je mo\u017en\u00e9 pren\u00e1\u0161a\u0165 aj premenn\u00e9! V tomto mieste m\u00f4\u017ee bystr\u00fd \u010ditate\u013e podozrieva\u0165 nie\u010do alebo niekoho\u2026 <\/p>\n<p><\/p>\n<h3 id=\"ispolzovanie-javascript-v-vyrazheniyah\">Pou\u017e\u00edvanie JavaScriptu vo v\u00fdrazoch<\/h3>\n<p><\/p>\n<p>\u2026 A nie nadarmo! Ke\u010f sme formulovali po\u017eiadavky na funkcie, n\u00e1hle sme si uvedomili, \u017ee vo v\u00fdrazov mus\u00edme dovoli\u0165 p\u00edsa\u0165 platn\u00fd javascript. Tak\u017ee teraz ste vo\u013en\u00ed p\u00edsa\u0165 v\u00fdrazy v duchu:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">${1 + '' + crypto.MD5('asdf')}<\/code><\/pre>\n<p><\/p>\n<p>A to v\u0161etko bez skriptov priamo v vstupn\u00fdch poliach!<\/p>\n<p><\/p>\n<p>\u010co sa t\u00fdka Postmanu, tam sa daj\u00fa pou\u017e\u00edva\u0165 len premenn\u00e9, a pri pokuse nap\u00edsa\u0165 aspo\u0148 ak\u00fd-tak\u00fd v\u00fdraz, valid\u00e1tor sa hne\u010f ozve a odmieta ho vypo\u010d\u00edta\u0165.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/b301760640ff15ea682e9dfb1462116b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"prodvinutoe-avtodopolnenie\">Pokro\u010dil\u00e9 automatick\u00e9 dopl\u0148ovanie<\/h3>\n<p><\/p>\n<p>V s\u00fa\u010dasnosti m\u00e1 TestMace \u0161tandardn\u00e9 automatick\u00e9 dopl\u0148ovanie, ktor\u00e9 vyzer\u00e1 nasledovne:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/1f5ec38a6a6da29e8308882d271b6b14.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tu okrem automaticky dop\u013a\u0148anej re\u0165azca je uveden\u00e9, ku komu patr\u00ed tento re\u0165azec. Tento mechanizmus funguje len vo v\u00fdrazoch uzavret\u00fdch v z\u00e1tvork\u00e1ch ${}.<\/p>\n<p><\/p>\n<p>Ako si m\u00f4\u017eete v\u0161imn\u00fa\u0165, pridali sa vizu\u00e1lne identifik\u00e1tory, ktor\u00e9 ukazuj\u00fa na typ premennej (napr\u00edklad re\u0165azec, \u010d\u00edslo, pole at\u010f.). Taktie\u017e je mo\u017en\u00e9 meni\u0165 re\u017eimy automatick\u00e9ho dopl\u0148ovania (napr\u00edklad si m\u00f4\u017eete vybra\u0165 automatick\u00e9 dopl\u0148ovanie premenn\u00fdmi alebo nadpismi). Ale ani to nie je to najd\u00f4le\u017eitej\u0161ie!<\/p>\n<p><\/p>\n<p>Po prv\u00e9, automatick\u00e9 dopl\u0148ovanie funguje aj vo v\u00fdrazoch (kde je to mo\u017en\u00e9). Takto to vyzer\u00e1:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/676721c8d12f6c43970ed335deb238f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A po druh\u00e9, teraz je automatick\u00e9 dopl\u0148ovanie dostupn\u00e9 aj v skriptoch. Pozrite sa, ako to funguje!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman\" src=\"\/wp-content\/uploads\/2019\/12\/3b6b4335447c0cbed7044d98831001dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nem\u00e1 zmysel porovn\u00e1va\u0165 t\u00fato funkciu s Postmanom \u2014 tam sa automatick\u00e9 dopl\u0148ovanie obmedzuje iba na statick\u00e9 zoznamy premenn\u00fdch, nadpisov a ich hodn\u00f4t (opravte ma, ak som nie\u010do zabudol). Skripty sa automaticky nedopl\u0148uj\u00fa \ud83d\ude41<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Z\u00e1ver<\/h1>\n<p><\/p>\n<p>V okt\u00f3bri uplynul jeden rok od za\u010diatku v\u00fdvoja n\u00e1\u0161ho produktu. Po\u010das tohto \u010dasu sme stihli urobi\u0165 ve\u013ea vec\u00ed a v niektor\u00fdch parametroch sme dohnali na\u0161ich konkurentov. Ale nech u\u017e to je ak\u00e9ko\u013evek, na\u0161\u00edm cie\u013eom je vytvori\u0165 naozaj pohodln\u00fd n\u00e1stroj na pr\u00e1cu s API. E\u0161te n\u00e1s \u010dak\u00e1 ve\u013ea pr\u00e1ce, tu je pribli\u017en\u00fd pl\u00e1n rozvoja n\u00e1\u0161ho projektu na najbli\u017e\u0161\u00ed rok: <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/roadmap\/\">https:\/\/testmace.com\/roadmap<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Va\u0161a sp\u00e4tn\u00e1 v\u00e4zba n\u00e1m pom\u00f4\u017ee lep\u0161ie sa orientova\u0165 v mno\u017estve funkci\u00ed, a va\u0161a podpora n\u00e1m dod\u00e1va silu a sebad\u00f4veru, \u017ee rob\u00edme spr\u00e1vnu vec. Dnes je pre n\u00e1\u0161 projekt d\u00f4le\u017eit\u00fd de\u0148 \u2014 de\u0148 zverejnenia TestMace na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.producthunt.com\/posts\/testmace\">ProductHunt<\/a><\/noindex>. Pros\u00edm, podporte n\u00e1\u0161 projekt, je to pre n\u00e1s ve\u013emi d\u00f4le\u017eit\u00e9. O to viac, \u017ee na na\u0161ej PH str\u00e1nke je dnes l\u00e1kav\u00e1 ponuka a je obmedzen\u00e1<\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/480734\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438 TestMace! \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442 \u043e \u043d\u0430\u0441 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f: \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API TestMace. \u0421\u0430\u043c\u044b\u0439 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 TestMace \u0441 \u043a\u043e\u043d\u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c\u0438 \u2014 &#171;\u0427\u0435\u043c \u0432\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0442 Postman?&#187;. \u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u0440\u0430 \u0434\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u041d\u0438\u0436\u0435 \u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-54188","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/news\/chem-testmace-luchshe-postman\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0435\u043c TestMace \u043b\u0443\u0447\u0448\u0435 Postman | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/chem-testmace-luchshe-postman\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47\u010c\u00edm je TestMace lep\u0161\u00ed ako Postman | ProHoster","description":"Ahojte v\u0161etci, tu je","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/chem-testmace-luchshe-postman","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0435\u043c TestMace \u043b\u0443\u0447\u0448\u0435 Postman | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/chem-testmace-luchshe-postman","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54188","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 10:21:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:10:33","updated":"2026-01-24 10:21:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/54188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=54188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/54188\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=54188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=54188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=54188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}