{"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\/sl\/blog\/news\/chem-testmace-luchshe-postman","title":{"rendered":"Kaj je TestMace bolje od Postman?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/4b61986c287c32a4cefeb2f805fc228f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u017divjo, dobrodo\u0161li! <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/\">TestMace<\/a><\/noindex>! Mnogi nas \u017ee poznajo iz <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">na\u0161ih<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462585\/\">prej\u0161njih<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458964\/\">\u010dlanov<\/a><\/noindex>. \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 \u043f\u043e \u043f\u0443\u043d\u043a\u0442\u0430\u043c \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0430\u0448\u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0435\u0434 <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\">Razdelitev na vozli\u0161\u010da<\/h2>\n<p><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 Postman, \u0442\u043e \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u0422\u0443\u0442 \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438 \u0442\u0435\u0441\u0442\u044b, \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0435 \u0433\u0438\u0431\u043e\u043a. \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e \u043d\u0438\u043c \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044e? \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0431\u0435\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434? \u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u0440\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u043f\u043e\u0434\u0445\u043e\u0434 &#171;\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0432 \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b&#187; \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c.<\/p>\n<p><\/p>\n<p>TestMace od za\u010detka lo\u010duje vse funkcionalnosti na razli\u010dne vrste vozli\u0161\u010d. Ho\u010de\u0161 izvesti zahtevo? Tukaj je ti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/requeststep\">request step<\/a><\/noindex> vozli\u0161\u010de. Ho\u010de\u0161 napisati skript? Tukaj je ti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> vozli\u0161\u010de. Potrebni so testi? Prosim \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\">Assertion<\/a><\/noindex> vozli\u0161\u010de. Oh ja, to lahko ovije\u0161 vse skupaj v <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/folder\">folder<\/a><\/noindex> vozli\u0161\u010de. In vse to se enostavno kombinira. Ta pristop ni le zelo fleksibilen, ampak v skladu z na\u010delom edine odgovornosti omogo\u010da uporabo le tistega, kar resni\u010dno potrebuje\u0161 v tem trenutku. Zakaj mi skripti in testi, \u010de \u017eelim le izvesti zahtevo?<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-proekta\">\u010clove\u0161ko berljiv format projekta<\/h2>\n<p><\/p>\n<p>\u041c\u0435\u0436\u0434\u0443 TestMace \u0438 Postman \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412 Postman \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u0435\u0436\u0434\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043d\u0435 \u043b\u0438\u0448\u0435\u043d\u043d\u044b\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432. \u041a\u0430\u043a \u043d\u0430\u0441\u0447\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445? \u0412\u0435\u0434\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0443 \u0442\u0440\u0435\u0442\u044c\u0438\u0445 \u043b\u0438\u0446. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e TestMace \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043e\u0435-\u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0448\u0435! \u0418 \u0438\u043c\u044f \u044d\u0442\u043e\u043c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u2014 &#171;\u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430&#187;.<\/p>\n<p><\/p>\n<p>Za\u010dnemo s tem, da v TestMace v bistvu obstaja entiteta 'projekt'. Aplikacija je bila sprva razvita z namenom shranjevanja projektov v sistemih za nadzor razli\u010dic: drevo projekta je skoraj v celoti projicirano na datote\u010dno strukturo, kot format shranjevanja pa se uporablja yaml (brez odve\u010dnih oklepajev in vejic), datote\u010dna predstavitev vsakega vozli\u0161\u010da pa je podrobno opisana v dokumentaciji s komentarji. Vendar ve\u010dino \u010dasa ne boste potrebovali dostopati do tega \u2014 vsa imena polj imajo smiselna imena. <\/p>\n<p><\/p>\n<p>Kaj to prina\u0161a uporabniku? To omogo\u010da zelo fleksibilno spreminjanje delovnega toka ekipe, z uporabo znanih pristopov. Na primer, razvijalci lahko shranijo projekt v istem repozitoriju kot backend. V vejah, poleg spreminjanja same kode, lahko razvijalec popravlja obstoje\u010dih skriptov in testov. Po potrditvi sprememb v repozitoriju (git, svn, mercurial - kar vam je ljub\u0161e) CI (va\u0161a najljub\u0161a, nikomur ne vsiljena) za\u017eene na\u0161o konzolno orodje <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/package\/@testmace\/cli\">testmace-cli<\/a><\/noindex>, in poro\u010dilo, pridobljeno po izvedbi (na primer v formatu junit, ki ga podpira tudi testmace-cli), se po\u0161lje v ustrezni sistem. In vpra\u0161anje varnosti, omenjeno zgoraj, ni ve\u010d te\u017eava.<\/p>\n<p><\/p>\n<p>Kot vidite, TestMace ne vsiljuje svoje ekosisteme in paradigme. Namesto tega se enostavno vklopi v \u017ee ustaljene procese.<\/p>\n<p><\/p>\n<h2 id=\"dinamicheskie-peremennye\">Dinami\u010dne spremenljivke<\/h2>\n<p><\/p>\n<p>TestMace sledi konceptu no-code: \u010de je problem mogo\u010de re\u0161iti brez uporabe kode, se trudimo ponuditi to mo\u017enost. Delo s spremenljivkami je prav tisti funkcionalnost, kjer se v ve\u010dini primerov da brez programiranja.<\/p>\n<p><\/p>\n<p>Primer: prejeli smo odgovor od stre\u017enika in \u017eelimo del odgovora shraniti v spremenljivko. V Postmanu bi v testnem skriptu (kar je samo po sebi \u010dudno) napisali nekaj v smislu:<\/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>Vendar se nam zdi, da pisanje skripte za tako enostaven in pogosto uporabljen scenarij deluje pretirano. Zato v TestMace obstaja mo\u017enost dodelitve spremenljivki dela odgovora, s pomo\u010djo grafi\u010dnega vmesnika. Poglejte, kako preprosto je to:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/2ce8ce2f9aa2964cb5bd1d5eacead423.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In every request, this dynamic variable will be updated. However, you might argue that the Postman approach is more flexible, allowing not only assignment but also some preprocessing. Here's how to modify the previous example:<\/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>Well, for this, TestMace has <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> a node that covers this scenario. To reproduce the previous case, but now using TestMace, you need to create a script node after the request and use the following code as the script:<\/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>As you can see, the composition of nodes proved useful here as well. And for such a simple case as described above, you can simply assign the expression <code>${crypto.MD5($response.data)}<\/code> to a variable created through the graphical interface!<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov-cherez-gui\">Creating tests through the GUI<\/h2>\n<p><\/p>\n<p>Postman allows creating tests by writing scripts (in the case of Postman, this is JavaScript). This approach has many advantages \u2014 virtually unlimited flexibility, availability of ready-made solutions, etc.<\/p>\n<p><\/p>\n<p>However, the reality is often such (it's not us, it's life) that the tester lacks programming skills, but would like to add value to the team right now. For such cases, following the no-code concept, TestMace allows creating simple tests through the graphical interface without writing scripts. Here\u2019s what the process of creating a test that compares values for equality looks like:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/c0a8ce4cbe264dd76e3b5d90594eeff5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>However, creating tests in the graphical editor does not eliminate the possibility <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\/script\">of writing tests in code<\/a><\/noindex>. Here, you have all the same libraries as in the script node, and <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chaijs.com\/\">chai<\/a><\/noindex> for writing tests.<\/p>\n<p><\/p>\n<h2 id=\"vozmozhnost-zapustit-uzhe-suschestvuyuschiy-scenariy-po-ssylke-link-uzel\">The ability to run an already existing scenario via a link (Link node)<\/h2>\n<p><\/p>\n<p>Often, situations arise where a certain request or even an entire scenario needs to be executed multiple times in different parts of the project. Examples of such requests may include custom multi-step authorization, bringing the environment to the desired state, etc. In general, speaking in programming language terms, it would be nice to have functions that can be reused in different parts of the application. In TestMace, this function is fulfilled by <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/link\">link<\/a><\/noindex> Vo\u017eec. Njegova uporaba je zelo enostavna:<br \/>\n1) ustvarite zahtevo ali skripto<br \/>\n2) ustvarite vo\u017eec tipa Link<br \/>\n3) v parametrih navedite povezavo do skripte, ustvarjene v prvem koraku<\/p>\n<p><\/p>\n<p>V bolj napredni razli\u010dici lahko navedete, katere dinami\u010dne spremenljivke iz skripte posredovati na vi\u0161jo raven v zvezi s povezavo. Zveni zapleteno? Recimo, da smo ustvarili mapo z imenom <strong>create-post<\/strong>, znotraj katere je ta vo\u017eec dodeljen dinami\u010dni spremenljivki <code>postId<\/code>. Zdaj v vo\u017ecu Link <strong>create-post-link<\/strong> lahko izrecno navedete, da se spremenljivka <code>postId<\/code> dodeli predniku <strong>create-post-link<\/strong>. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c (\u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438, \u0432\u044b\u0440\u0430\u0436\u0430\u044f\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c) \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438\u0437 &#171;\u0444\u0443\u043d\u043a\u0446\u0438\u0438&#187;. \u0412 \u043e\u0431\u0449\u0435\u043c \u043a\u0440\u0443\u0442\u043e, DRY \u0432 \u043f\u043e\u043b\u043d\u044b\u0439 \u0440\u043e\u0441\u0442 \u0438 \u043e\u043f\u044f\u0442\u044c \u043d\u0438 \u0435\u0434\u0438\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u043b\u043e.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/5235473a43e5bc2e05aeb2779846245f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kar se ti\u010de Postmana, je zahteva za funkcijo ponovne uporabe zahtevkov <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535\">visela od leta 2015<\/a><\/noindex>, in zdi se, da obstajajo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535#issuecomment-280305898\">nekatere namige<\/a><\/noindex>, da na tej te\u017eavi delajo. V aktu Postman se seveda lahko spremeni tok izvajanja, kar v teoriji, morda, omogo\u010da uresni\u010ditev takega obna\u0161anja, vendar je to bolj umazan hakat, kot pa resni\u010dno delujo\u010d pristop. <\/p>\n<p><\/p>\n<h2 id=\"prochie-otlichiya\">Druge razlike<\/h2>\n<p><\/p>\n<ul>\n<li>Bolj\u0161i nadzor nad vidnostjo spremenljivk. Najmanj\u0161i obseg, znotraj katerega lahko dolo\u010dite spremenljivko v Postmanu, je kolekcija. TestMace omogo\u010da dolo\u010ditev spremenljivk za katerokoli zahtevo ali mapo. V Postmanu mo\u017enost deljenja kolekcij omogo\u010da izvoz samo kolekcij, medtem ko v TestMace deljenje deluje za katerikoli vo\u017eec.<\/li>\n<li>TestMace podpira <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/other\/default-http-headers\">dedovane glave<\/a><\/noindex>, ki se privzeto lahko vstavijo v podrejene zahteve. Glede tega ima Postman <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947\">naloga<\/a><\/noindex>, in je celo zaprta, vendar se kot re\u0161itev predlaga... <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947#issuecomment-292741840\">uporaba skript<\/a><\/noindex>. V TestMace je vse to mogo\u010de konfigurirati preko GUI, obstaja mo\u017enost opcijskega izklopa dedovanih glav v dolo\u010denih potomcih.<\/li>\n<li>Undo\/Redo. Deluje ne samo pri urejanju vozli\u0161\u010d, temve\u010d tudi pri premikanju, brisanju, preimenovanju in drugih operacijah, ki spreminjajo strukturo projekta.<\/li>\n<li>Datoteke, pritrjene na zahteve, postanejo del projekta in se hranijo z njim, ob tem pa se odli\u010dno sinhronizirajo, v nasprotju s Postmanom. (Da, ve\u010d ni treba vsaki\u010d ro\u010dno izbirati datotek pri vsakem zagonu in jih prena\u0161ati sodelavcem v arhivih.)<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"fichi-kotorye-uzhe-na-podhode\">Funkcije, ki so \u017ee na poti.<\/h2>\n<p><\/p>\n<p>Nismo mogli odoljeti isku\u0161enju da malo razotkrijemo misteriju budu\u0107ih izdanja, pogotovo kada je funkcionalnost jako privla\u010dna i ve\u0107 prolazi predizbornu doradu. Dakle, dobrodo\u0161li.<\/p>\n<p><\/p>\n<h3 id=\"funkcii\">Functions<\/h3>\n<p><\/p>\n<p>Kao \u0161to je poznato, za generiranje vrijednosti u Postmanu koriste se takozvane dinami\u010dke varijable. <noindex><a rel=\"nofollow\" href=\"https:\/\/learning.getpostman.com\/docs\/postman\/variables-and-environments\/variables-list\/\">Njihov popis je impresivan<\/a><\/noindex> i velika ve\u0107ina funkcija slu\u017ei za generiranje la\u017enih vrijednosti. Na primjer, za generiranje nasumi\u010dnog emaila potrebno je napisati:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">{{ $randomEmail }}<\/code><\/pre>\n<p><\/p>\n<p>Me\u0111utim, budu\u0107i da su to varijable (\u010dak i dinami\u010dke), ne mogu se koristiti kao funkcije: nisu parametrizirane, stoga nije mogu\u0107e dobiti hash od stringa.<\/p>\n<p><\/p>\n<p>\u0412 TestMace \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c &#171;\u0447\u0435\u0441\u0442\u043d\u044b\u0435&#187; \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u0440\u044f\u043c\u043e \u0432\u043d\u0443\u0442\u0440\u0438 ${} \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u043d\u043e \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0422.\u0435. \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0441\u043b\u043e\u0432\u0443\u0442\u044b\u0439 \u0444\u0435\u0439\u043a\u043e\u0432\u044b\u0439 email, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0435\u043c<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${faker.internet.email()}<\/code><\/pre>\n<p><\/p>\n<p>Osim \u0161to je ovo funkcija, mo\u017eemo primijetiti da postoji mogu\u0107nost poziva metode objekta. I umjesto velikog ravnog popisa dinami\u010dkih varijabli, imamo set logi\u010dki grupiranih objekata.<\/p>\n<p><\/p>\n<p>A \u0161to ako \u017eelimo izra\u010dunati hash od stringa? Lako!<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${crypto.MD5($dynamicVar.data)}<\/code><\/pre>\n<p><\/p>\n<p>Mo\u017eemo primijetiti da se kao parametri mogu \u010dak proslijediti i varijable! Na ovom mjestu znati\u017eeljni \u010ditatelj mo\u017ee posumnjati u ne\u0161to... <\/p>\n<p><\/p>\n<h3 id=\"ispolzovanie-javascript-v-vyrazheniyah\">Kori\u0161tenje JavaScript-a u izrazima<\/h3>\n<p><\/p>\n<p>... I nije bez razloga! Kada su se formirali zahtjevi za funkcije, iznenada smo do\u0161li do zaklju\u010dka da u izrazima treba omogu\u0107iti pisanjem valjanog JavaScript-a. Zato sada mo\u017eete slobodno pisati izraze u stilu:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">${1 + '' + crypto.MD5('asdf')}<\/code><\/pre>\n<p><\/p>\n<p>I sve to bez skripti direktno u unosnim poljima!<\/p>\n<p><\/p>\n<p>\u0160to se ti\u010de Postmana, ovdje se mogu koristiti samo varijable, a prilikom poku\u0161aja pisanja bilo kakvog izraza, validator se \u017eali i odbija ga izra\u010dunati.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/b301760640ff15ea682e9dfb1462116b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"prodvinutoe-avtodopolnenie\">Napredno automatsko dovr\u0161avanje<\/h3>\n<p><\/p>\n<p>Trenutno TestMace ima standardno automatsko dovr\u0161avanje, koje izgleda ovako:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/1f5ec38a6a6da29e8308882d271b6b14.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ovdje, osim automatski dovr\u0161ene stringa, navodi se s \u010dime je taj string povezan. Ovaj mehanizam djeluje samo u izrazima obuhva\u0107enim zagradama ${}.<\/p>\n<p><\/p>\n<p>Kot lahko opazimo, so se dodali vizualni markerji, ki nakazujejo vrsto spremenljivke (na primer, niz, \u0161tevilka, seznam itd.). Prav tako lahko spreminjate na\u010dine samodejnega dopolnjevanja (na primer, lahko izberete samodejno dopolnjevanje s spremenljivkami ali naslovi). A to \u0161e ni najpomembnej\u0161e!<\/p>\n<p><\/p>\n<p>Prvi\u010d, samodejno dopolnjevanje deluje tudi v izrazih (kjer je to mogo\u010de). Tako to izgleda:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/676721c8d12f6c43970ed335deb238f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In drugi\u010d, zdaj je samodejno dopolnjevanje na voljo tudi v skriptih. Oglejte si, kako to deluje!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kaj je TestMace bolje od Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/3b6b4335447c0cbed7044d98831001dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Te funkcionalnosti ni smiselno primerjati s Postmanom \u2014 tam se samodejno dopolnjevanje omejuje le na stati\u010dne sezname spremenljivk, naslovov in njihovih vrednosti (popravite me, \u010de sem kaj pozabil). Skripti se ne samodejno dopolnjujejo \ud83d\ude41<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Zaklju\u010dek<\/h1>\n<p><\/p>\n<p>V oktobru je minilo leto od za\u010detka razvoja na\u0161ega izdelka. V tem \u010dasu smo uspeli narediti veliko in v nekaterih parametrih dohiteti na\u0161e konkurente. A kljub vsemu je na\u0161 cilj ustvariti resni\u010dno udoben pripomo\u010dek za delo z API-ji. \u010caka nas \u0161e veliko dela, tukaj je okvirni na\u010drt razvoja na\u0161ega projekta za naslednje leto: <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/roadmap\/\">https:\/\/testmace.com\/roadmap<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Va\u0161a povratna informacija nam bo pomagala bolje usmeriti obilo funkcij, va\u0161a podpora pa nam daje mo\u010d in zaupanje, da delamo pravo stvar. Tako se je zgodilo, da je danes pomemben dan za na\u0161 projekt \u2014 dan objave TestMace na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.producthunt.com\/posts\/testmace\">ProductHunt<\/a><\/noindex>. Prosim, podprite na\u0161 projekt, to nam zelo pomeni. \u0160e posebej, ker imamo danes na na\u0161i PH strani privla\u010dno ponudbo, ki je omejena<\/p>\n<p>Izvor: <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.4 - 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\/sl\/blog\/news\/chem-testmace-luchshe-postman\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Zakaj je TestMace bolj\u0161i od Postmana | ProHoster","description":"\u017divjo, dobrodo\u0161li!","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/news\/chem-testmace-luchshe-postman","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/54188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=54188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/54188\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=54188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=54188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=54188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}