{"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\/lv\/blog\/news\/chem-testmace-luchshe-postman","title":{"rendered":"K\u0101 TestMace lab\u0101ks par Postman","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/4b61986c287c32a4cefeb2f805fc228f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sveiki visiem, esmu \u0161eit <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/\">TestMace<\/a><\/noindex>! Iesp\u0113jams, daudzi no jums m\u016bs zina no <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">m\u016bsu<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462585\/\">iepriek\u0161\u0113jiem<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458964\/\">rakstus<\/a><\/noindex>. Par tiem, kas tikko piesl\u0113gu\u0161ies: m\u0113s izstr\u0101d\u0101jam IDE darbam ar API TestMace. Visbie\u017e\u0101k uzdotais jaut\u0101jums, sal\u012bdzinot TestMace ar konkur\u0113jo\u0161iem produktiem, ir: \u201eK\u0101 j\u016bs at\u0161\u0137iraties no Postman?\u201d. M\u0113s nol\u0113m\u0101m, ka ir pien\u0101cis laiks sniegt pla\u0161u atbildi uz \u0161o jaut\u0101jumu. Zem\u0101k m\u0113s punktu pa punktam esam izkl\u0101st\u0101mi m\u016bsu priek\u0161roc\u012bbas. <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\">Dal\u012b\u0161ana mezglos<\/h2>\n<p><\/p>\n<p>Ja j\u016bs str\u0101d\u0101jat ar Postman, tad zin\u0101t, ka piepras\u012bjumu interfeiss satur visu nepiecie\u0161amo funkcionalit\u0101ti. \u0160eit ir skripti, testi un pa\u0161i piepras\u012bjumi. Tas vienk\u0101r\u0161o darbu ies\u0101c\u0113jiem, tom\u0113r lielos scen\u0101rijos \u0161\u0101ds pieejamais risin\u0101jums nav elast\u012bgs. Ko dar\u012bt, ja v\u0113laties izveidot vair\u0101kus piepras\u012bjumus un veikt to agreg\u0101ciju? Ko dar\u012bt, ja v\u0113laties izpild\u012bt skriptu bez piepras\u012bjuma vai vair\u0101kus lo\u0123iski atdal\u012btus skriptus p\u0113c k\u0101rtas? Beig\u0101s, b\u016btu labi atdal\u012bt testus no parastajiem utilit\u0101riem skriptiem. Turkl\u0101t pieejamais pieg\u0101jiens \u201epievienojam visu funkcionalit\u0101ti vien\u0101 mezgl\u0101\u201d nav m\u0113rogojams \u2014 interfeiss \u0101tri k\u013c\u016bst p\u0101rbl\u012bv\u0113ts.<\/p>\n<p><\/p>\n<p>TestMace s\u0101kotn\u0113ji dal\u0101s vis\u0101 funkcionalit\u0101t\u0113 da\u017e\u0101dos mezglos. V\u0113lies veikt piepras\u012bjumu? L\u016bk, tev <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/requeststep\">request step<\/a><\/noindex> mezgls. V\u0113lies uzrakst\u012bt skriptu? L\u016bk, tev <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> mezgls. Nepiecie\u0161ami testi? L\u016bdzu \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\">Assertion<\/a><\/noindex> mezgls. Ak j\u0101, tu ar\u012b vari visu to iet\u012bt <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/folder\">mape<\/a><\/noindex> mezgl\u0101. Un viss \u0161is ir viegli savienojams sav\u0101 starp\u0101. \u0160\u0101da pieeja ne tikai ir \u013coti elast\u012bga, bet ar\u012b, saska\u0146\u0101 ar atbild\u012bbas vienot\u012bbas principu, \u013cauj izmantot tikai to, kas tev tie\u0161\u0101m nepiecie\u0161ams \u0161obr\u012bd. K\u0101p\u0113c man vajadz\u0113tu skriptus un testus, ja es v\u0113los vienk\u0101r\u0161i veikt piepras\u012bjumu?<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-proekta\">Cilv\u0113ka las\u0101m\u0101 projekta forma<\/h2>\n<p><\/p>\n<p>Starpt TestMace un Postman ir konceptu\u0101la at\u0161\u0137ir\u012bba uzglab\u0101\u0161anas veid\u0101. Postman visus piepras\u012bjumus glab\u0101 kaut kur lok\u0101laj\u0101 kr\u0101tuv\u0113. Ja ir nepiecie\u0161am\u012bba koplietot piepras\u012bjumus starp vair\u0101kiem lietot\u0101jiem, tad j\u0101izmanto ieb\u016bv\u0113t\u0101 sinhroniz\u0101cija. Paties\u012bb\u0101 t\u0101 ir visp\u0101rpie\u0146emta pieeja, kas nav bez tr\u016bkumiem. K\u0101 ir ar datu dro\u0161\u012bbu? Galu gal\u0101 da\u017eu uz\u0146\u0113mumu politika var neaizliegt glab\u0101t datus pie tre\u0161aj\u0101m person\u0101m. Tom\u0113r m\u0113s uzskat\u0101m, ka TestMace var pied\u0101v\u0101t kaut ko lab\u0101ku! Un \u0161\u012b uzlabo\u0161ana ir \u201ecilv\u0113kiem las\u0101ms projekta form\u0101ts.\u201d<\/p>\n<p><\/p>\n<p>S\u0101ksim ar to, ka TestMace b\u016bt\u012bb\u0101 ir \u201eprojekta\u201d j\u0113dziens. Un lietotne tika izstr\u0101d\u0101ta, \u0146emot v\u0113r\u0101 projektu glab\u0101\u0161anu versiju kontroles sist\u0113m\u0101s: projekta strukt\u016bra praktiski vien\u0101d\u0101 veid\u0101 tiek atspogu\u013cota failu strukt\u016br\u0101, glab\u0101\u0161anas form\u0101ts ir yaml (bez liek\u0101m iekav\u0101m un komatiem), un katra mezgla faila att\u0113lojums ir detaliz\u0113ti aprakst\u012bts dokument\u0101cij\u0101 ar koment\u0101riem. Ta\u010du liel\u0101kaj\u0101 da\u013c\u0101 gad\u012bjumu j\u016bs taj\u0101 neb\u016bsiet iegrimu\u0161i \u2014 visi lauku nosaukumi ir lo\u0123iski. <\/p>\n<p><\/p>\n<p>Ko tas dod lietot\u0101jam? Tas \u013cauj \u013coti elast\u012bgi main\u012bt komandas darba pl\u016bsmu, izmantojot ierastos pieeju. Piem\u0113ram, izstr\u0101d\u0101t\u0101ji var glab\u0101t projektu taj\u0101 pa\u0161\u0101 repozitorij\u0101, kur ir ar\u012b backend. Zaru ietvaros, papildus kodu b\u0101zes mai\u0146ai, izstr\u0101d\u0101t\u0101js var labot eso\u0161os piepras\u012bjumu scen\u0101rijus un testus. P\u0113c izmai\u0146u fiks\u0113\u0161anas repozitorij\u0101 (git, svn, mercurial \u2014 k\u0101 jums lab\u0101k pat\u012bk) CI (j\u016bsu iecien\u012bt\u0101, nevienam neuzspiest\u0101) palaistu m\u016bsu komandrindas r\u012bku <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/package\/@testmace\/cli\">testmace-cli<\/a><\/noindex>, un p\u0113c izpildes sa\u0146emt\u0101 atskaite (piem\u0113ram, junit form\u0101t\u0101, ko ar\u012b atbalsta testmace-cli) tiek nos\u016bt\u012bta atbilsto\u0161aj\u0101 sist\u0113m\u0101. Un iepriek\u0161 min\u0113t\u0101 dro\u0161\u012bbas probl\u0113ma vairs nav probl\u0113ma.<\/p>\n<p><\/p>\n<p>K\u0101 redzat, TestMace neuzspie\u017e savu ekosist\u0113mu un paradigmu. T\u0101 viet\u0101 tas viegli integr\u0113jas jau ieviestos procesos.<\/p>\n<p><\/p>\n<h2 id=\"dinamicheskie-peremennye\">Dinamiskie main\u012bgie<\/h2>\n<p><\/p>\n<p>TestMace iev\u0113ro no-code konceptu: ja probl\u0113mu var atrisin\u0101t bez koda izmanto\u0161anas, m\u0113s cen\u0161amies dot \u0161\u0101du iesp\u0113ju. Darbs ar main\u012bgajiem ir tie\u0161i t\u0101 funkcionalit\u0101te, kur vairum\u0101 gad\u012bjumu var iztikt bez programm\u0113\u0161anas.<\/p>\n<p><\/p>\n<p>Piem\u0113rs: mums ir sa\u0146emts atbildes no servera, un m\u0113s v\u0113lamies saglab\u0101t da\u013cu no atbildes main\u012bgaj\u0101. Postman m\u0113s rakst\u012btu test\u0113\u0161anas skript\u0101 (kas vien jau ir d\u012bvaini) kaut ko t\u0101d\u0101 gar\u0101:<\/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>Ta\u010du m\u016bsupr\u0101t, skripta rakst\u012b\u0161ana tik vienk\u0101r\u0161am un bie\u017ei izmantotam scen\u0101rijam izskat\u0101s p\u0101rm\u0113r\u012bgi. T\u0101p\u0113c TestMace ir iesp\u0113ja pie\u0161\u0137irt main\u012bgajam atbildes da\u013cu, izmantojot grafisko interfeisu. Apskatiet, cik tas ir vienk\u0101r\u0161i:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/2ce8ce2f9aa2964cb5bd1d5eacead423.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un tagad, katru reizi veicot piepras\u012bjumu, \u0161\u012b dinamisk\u0101 main\u012bg\u0101 tiks atjaunin\u0101ta. Bet j\u016bs varat iebilst, argument\u0113jot, ka Postman pieeja ir elast\u012bg\u0101ka un \u013cauj ne tikai veikt pie\u0161\u0137ir\u0161anu, bet ar\u012b veikt k\u0101du priek\u0161apstr\u0101di. L\u016bk, k\u0101 var modifik\u0113t iepriek\u0161\u0113jo piem\u0113ru:<\/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>Kas attiecas uz to, TestMace ir <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> modulis, kas aptver \u0161o scen\u0101riju. Lai atk\u0101rtoti izsp\u0113l\u0113tu iepriek\u0161\u0113jo gad\u012bjumu, bet jau TestMace izpild\u0113, p\u0113c piepras\u012bjuma j\u0101izveido script modulis un k\u0101 skripts j\u0101izmanto \u0161\u0101ds kods:<\/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>K\u0101 redzat, modu\u013cu kompoz\u012bcija \u0161eit tika labi izmantota. \u0160\u0101dam vienk\u0101r\u0161am gad\u012bjumam, k\u0101 aprakst\u012bts iepriek\u0161, j\u016bs varat vienk\u0101r\u0161i pie\u0161\u0137irt izteiksmi <code>${crypto.MD5($response.data)}<\/code> main\u012bgajam, kas tiek izveidots caur grafisko saskarni!<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov-cherez-gui\">Testu izveido\u0161ana caur GUI<\/h2>\n<p><\/p>\n<p>Postman \u013cauj izveidot testus, rakstot skriptus (Postman gad\u012bjum\u0101 t\u0101s ir JavaScript). \u0160ai pieejai ir tikai priek\u0161roc\u012bbas \u2014 gandr\u012bz neierobe\u017eota elast\u012bba, jau gatavi risin\u0101jumi utt.<\/p>\n<p><\/p>\n<p>Tom\u0113r realit\u0101te bie\u017ei ir t\u0101da (ne m\u0113s t\u0101di, dz\u012bve t\u0101da), ka test\u0113t\u0101jam nav programm\u0113\u0161anas prasmju, bet komandai grib\u0113tos sniegt ieguvumu jau tagad. T\u0101diem gad\u012bjumiem, sekojot no-koda koncepcijai, TestMace \u013cauj izveidot vienk\u0101r\u0161us testus caur grafisko saskarni, neizmantojot skriptu rakst\u012b\u0161anu. L\u016bk, piem\u0113ram, k\u0101 izskat\u0101s testa izveides process, kas sal\u012bdzina v\u0113rt\u012bbas vienl\u012bdz\u012bbai:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/c0a8ce4cbe264dd76e3b5d90594eeff5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tom\u0113r testu izveide grafiskaj\u0101 redaktor\u0101 neizsl\u0113dz iesp\u0113ju <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\/script\">rakst\u012bt testus kod\u0101<\/a><\/noindex>. \u0160eit ir t\u0101s pa\u0161as bibliot\u0113kas, kas script modul\u012b, un <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chaijs.com\/\">chai<\/a><\/noindex> testu rakst\u012b\u0161anai.<\/p>\n<p><\/p>\n<h2 id=\"vozmozhnost-zapustit-uzhe-suschestvuyuschiy-scenariy-po-ssylke-link-uzel\">Iesp\u0113ja palaist jau eso\u0161u scen\u0101riju p\u0113c saites (Link modulis)<\/h2>\n<p><\/p>\n<p>Bie\u017ei rodas situ\u0101cijas, kad noteikts piepras\u012bjums vai pat vesels scen\u0101rijs ir j\u0101izpilda vair\u0101kas reizes da\u017e\u0101d\u0101s projekta da\u013c\u0101s. \u0160\u0101du piepras\u012bjumu piem\u0113rs var b\u016bt piel\u0101gota daudzposmu autentifik\u0101cija, vides sagatavo\u0161ana pareizaj\u0101 st\u0101vokl\u012b utt. Ja run\u0101jam programm\u0113\u0161anas valodu terminos, v\u0113l\u0113tos, lai b\u016btu funkcijas, kuras var izmantot da\u017e\u0101d\u0101s lietojumprogrammas da\u013c\u0101s. TestMace \u0161o funkciju veic <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/link\">saite<\/a><\/noindex> mezgls. To izmantot ir \u013coti vienk\u0101r\u0161i:<br \/>\n1) izveidojiet piepras\u012bjumu vai skriptu<br \/>\n2) izveidojiet Link tipa mezglu<br \/>\n3) iestat\u012bjumos nor\u0101diet saiti uz skriptu, kas izveidots pirmaj\u0101 sol\u012b<\/p>\n<p><\/p>\n<p>Vair\u0101k att\u012bst\u012bt\u0101 variant\u0101 varat nor\u0101d\u012bt, kuras dinamisk\u0101s main\u012bg\u0101s no skripta p\u0101rvietot uz augst\u0101ku l\u012bmeni attiec\u012bb\u0101 uz saiti. Izskat\u0101s sare\u017e\u0123\u012bti? Pie\u0146emsim, ka esam izveidoju\u0161i Folder ar nosaukumu <strong>izveidot-pasta<\/strong>, kur\u0101 uz \u0161o mezglu tiek pie\u0161\u0137irts dinamiskais main\u012bgais <code>postId<\/code>. Tagad Link mezgl\u0101 <strong>create-post-link<\/strong> j\u016bs varat skaidri nor\u0101d\u012bt, ka main\u012bgais <code>postId<\/code> tiek pie\u0161\u0137irts priek\u0161te\u010dam <strong>create-post-link<\/strong>. \u0160o meh\u0101nismu (atkal, izsakoties programm\u0113t\u0101ja valod\u0101) var izmantot, lai atgrieztu rezult\u0101tu no \u201efunkcijas\u201d. Kopsumm\u0101 for\u0161i, DRY vis\u0101 kr\u0101\u0161an\u0101s, un atkal ne viena rindi\u0146a koda nav cietusi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/5235473a43e5bc2e05aeb2779846245f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Attiec\u012bb\u0101 uz Postman, tad funkciju piepras\u012bjums par piepras\u012bjumu atk\u0101rtotu izmanto\u0161anu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535\">ir pieejams kop\u0161 2015. gada<\/a><\/noindex>, un \u0161\u0137iet, ka pat ir <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535#issuecomment-280305898\">da\u017ei m\u0101jieni<\/a><\/noindex>, ka pie \u0161\u012bs probl\u0113mas str\u0101d\u0101. Pa\u0161reiz\u0113j\u0101 form\u0101 Postman noteikti nodro\u0161ina izpildes pl\u016bsmas mai\u0146u, kas teor\u0113tiski varb\u016bt \u013cauj \u012bstenot l\u012bdz\u012bgu uzved\u012bbu, bet tas dr\u012bz\u0101k ir net\u012brs hack, nevis patie\u0161\u0101m darboties sp\u0113j\u012bgs risin\u0101jums. <\/p>\n<p><\/p>\n<h2 id=\"prochie-otlichiya\">Citi at\u0161\u0137ir\u012bbas<\/h2>\n<p><\/p>\n<ul>\n<li>Liel\u0101ka kontrole p\u0101r main\u012bgo redzam\u012bbu. Maz\u0101kais apgabals, kur\u0101 var noteikt main\u012bgo Postman, ir kolekcija. TestMace \u013cauj noteikt main\u012bgos jebkuram piepras\u012bjumam vai map\u0113. Postman Share kolekcija \u013cauj eksport\u0113t tikai kolekcijas, savuk\u0101rt TestMace koplieto\u0161ana darbojas jebkuram mezglam.<\/li>\n<li>TestMace atbalsta <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/other\/default-http-headers\">mantojamus galvenos<\/a><\/noindex>, kas p\u0113c noklus\u0113juma var tikt iek\u013cauti b\u0113rnu piepras\u012bjumos. Par \u0161o jaut\u0101jumu Postman ir <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947\">uzdevums<\/a><\/noindex>, un tas pat ir sl\u0113gts, bet k\u0101 risin\u0101jums tiek ieteikts... <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947#issuecomment-292741840\">izmantot skriptus<\/a><\/noindex>. TestMace visu to konfigur\u0113 caur GUI un ir iesp\u0113jams opcionaliz\u0113t mantojuma galvenos noteiktos konkr\u0113tiem p\u0113cn\u0101c\u0113jiem.<\/li>\n<li>Undo\/Redo. Tas darbojas ne tikai redi\u0123\u0113jot mezglus, bet ar\u012b p\u0101rvietojot, dz\u0113\u0161ot, p\u0101rd\u0113v\u0113jot un cit\u0101s darb\u012bb\u0101s, kas maina projekta strukt\u016bru.<\/li>\n<li>Faili, kas pievienoti piepras\u012bjumiem, k\u013c\u016bst par projekta da\u013cu un tiek glab\u0101ti kop\u0101 ar to, taj\u0101 pa\u0161\u0101 laik\u0101 lieliski sinhroniz\u0113joties, at\u0161\u0137ir\u012bb\u0101 no Postman. (J\u0101, vairs nav j\u0101izv\u0113las faili katru reizi manu\u0101li katras palai\u0161anas laik\u0101 un j\u0101nos\u016bta kol\u0113\u0123iem arh\u012bvos.)<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"fichi-kotorye-uzhe-na-podhode\">Funkcijas, kuras jau tuvojas<\/h2>\n<p><\/p>\n<p>M\u0113s nesp\u0113j\u0101m pretoties k\u0101rdin\u0101jumam nedaudz atkl\u0101t nosl\u0113pumu par n\u0101kamajiem laidieniem, jo \u012bpa\u0161i, kad darb\u012bba ir \u013coti pievilc\u012bga un jau notiek pirmslaika apstr\u0101de. T\u0101tad, iepaz\u012bstieties.<\/p>\n<p><\/p>\n<h3 id=\"funkcii\">Funkcijas<\/h3>\n<p><\/p>\n<p>K\u0101 zin\u0101ms, v\u0113rt\u012bbu \u0123ener\u0113\u0161anai Postman tiek izmantotas t\u0101 d\u0113v\u0113t\u0101s dinamisk\u0101s main\u012bg\u0101s. <noindex><a rel=\"nofollow\" href=\"https:\/\/learning.getpostman.com\/docs\/postman\/variables-and-environments\/variables-list\/\">To saraksts ir iespaid\u012bgs<\/a><\/noindex> un liel\u0101k\u0101 da\u013ca funkciju tiek izmantotas viltotu v\u0113rt\u012bbu \u0123ener\u0113\u0161anai. Piem\u0113ram, lai \u0123ener\u0113tu nejau\u0161u e-pastu, nepiecie\u0161ams uzrakst\u012bt:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">{{$randomEmail}}<\/code><\/pre>\n<p><\/p>\n<p>Tom\u0113r, t\u0101 k\u0101 t\u0101s ir main\u012bg\u0101s (pat ja dinamiskas), t\u0101s nevar izmantot k\u0101 funkcijas: t\u0101s nav parametriz\u0113jamas, l\u012bdz ar to nav iesp\u0113jams ieg\u016bt virsmas atsl\u0113gu no virknes.<\/p>\n<p><\/p>\n<p>TestMace m\u0113s pl\u0101nojam pievienot \u201egod\u012bgas\u201d funkcijas. Tie\u0161i iek\u0161\u0101 ${} var\u0113s ne tikai piek\u013c\u016bt main\u012bgajam, bet ar\u012b izsaukt funkciju. T.i., ja ir nepiecie\u0161ams \u0123ener\u0113t slaveno viltoto e-pastu, m\u0113s vienk\u0101r\u0161i uzrakst\u012bsim<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${faker.internet.email()}<\/code><\/pre>\n<p><\/p>\n<p>Papildus tam, ka t\u0101 ir funkcija, var iev\u0113rot, ka ir iesp\u0113jams izsaukt objekta metodi. Un viet\u0101, kur ir liels plakan\u0101s dinamisko main\u012bgo saraksts, mums ir lo\u0123iski grup\u0113ti objektu kopums.<\/p>\n<p><\/p>\n<p>Bet ko dar\u012bt, ja m\u0113s v\u0113lamies apr\u0113\u0137in\u0101t virsmas atsl\u0113gu no virknes? Viegli!<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${crypto.MD5($dynamicVar.data)}<\/code><\/pre>\n<p><\/p>\n<p>Var iev\u0113rot, ka parametriem pat var nodot main\u012bg\u0101s! \u0160aj\u0101 br\u012bd\u012b inquisit\u012bvais las\u012bt\u0101js var s\u0101kt \u0161aub\u012bties... <\/p>\n<p><\/p>\n<h3 id=\"ispolzovanie-javascript-v-vyrazheniyah\">JavaScript izmanto\u0161ana izteiksm\u0113s<\/h3>\n<p><\/p>\n<p>... Un ne bez iemesla! Izstr\u0101d\u0101jot pras\u012bbas funkcij\u0101m, m\u0113s p\u0113k\u0161\u0146i non\u0101c\u0101m pie secin\u0101juma, ka izteiksm\u0113s ir j\u0101\u013cauj rakst\u012bt der\u012bgu java-script. T\u0101p\u0113c tagad j\u016bs varat br\u012bvi rakst\u012bt izteiksmes gar\u0101:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">${1 + '' + crypto.MD5('asdf')}<\/code><\/pre>\n<p><\/p>\n<p>Un viss tas bez skriptiem tie\u0161i ievades laukos!<\/p>\n<p><\/p>\n<p>Kas attiecas uz Postman, \u0161eit var izmantot tikai main\u012bg\u0101s, un, m\u0113\u0123inot uzrakst\u012bt kaut ko l\u012bdz\u012bgu izteiksmei, validators protest\u0113 un atsak\u0101s to apr\u0113\u0137in\u0101t.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/b301760640ff15ea682e9dfb1462116b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"prodvinutoe-avtodopolnenie\">Sare\u017e\u0123\u012bta autom\u0101tisk\u0101 pabeig\u0161ana<\/h3>\n<p><\/p>\n<p>Pa\u0161laik TestMace ir standarta autom\u0101tisk\u0101 pabeig\u0161ana, kas izskat\u0101s \u0161\u0101di:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/1f5ec38a6a6da29e8308882d271b6b14.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0160eit, papildus autom\u0101tiski pabeig\u0161anai, nor\u0101d\u012bts, kam pieder \u0161\u012b rindi\u0146a. \u0160is meh\u0101nisms darbojas tikai izteiksm\u0113s, kas ir iek\u013cautas ${} klauz\u0101s.<\/p>\n<p><\/p>\n<p>K\u0101 var paman\u012bt, ir pievienoti vizu\u0101lie mar\u0137ieri, kas nor\u0101da uz main\u012bg\u0101 tipu (piem\u0113ram, virkne, skaitlis, mas\u012bvs utt.). T\u0101pat var main\u012bt autom\u0101tisk\u0101 pabeig\u0161anas re\u017e\u012bmus (piem\u0113ram, var izv\u0113l\u0113ties autom\u0101tisko pabeig\u0161anu ar main\u012bgajiem vai virsrakstiem). Ta\u010du pat tas nav vissvar\u012bg\u0101kais!<\/p>\n<p><\/p>\n<p>Pirmk\u0101rt, autom\u0101tisk\u0101 pabeig\u0161ana darbojas pat izteiksm\u0113s (kur tas ir iesp\u0113jams). L\u016bk, k\u0101 tas izskat\u0101s:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/676721c8d12f6c43970ed335deb238f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un otrk\u0101rt, tagad autom\u0101tisk\u0101 pabeig\u0161ana ir pieejama ar\u012b skriptu izpildei. Apskatiet, k\u0101 tas darbojas!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"K\u0101 TestMace lab\u0101ks par Postman\" src=\"\/wp-content\/uploads\/2019\/12\/3b6b4335447c0cbed7044d98831001dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nav j\u0113gas sal\u012bdzin\u0101t \u0161o funkcionalit\u0101ti ar Postman \u2014 tur autom\u0101tisk\u0101 pabeig\u0161ana ierobe\u017eojas tikai ar statiskiem main\u012bgo, virsrakstu un to v\u0113rt\u012bbu sarakstiem (l\u016bdzu, labojiet mani, ja es kaut ko aizmirsu). Skripti netiek autom\u0101tiski pabeigti \ud83d\ude41<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Secin\u0101jums<\/h1>\n<p><\/p>\n<p>Oktobr\u012b pag\u0101ja gads kop\u0161 m\u016bsu produkta izstr\u0101des uzs\u0101k\u0161anas. \u0160aj\u0101 laik\u0101 m\u0113s esam izdar\u012bju\u0161i daudz un noteiktos parametros sasniegu\u0161i savus konkurentus. Bet, k\u0101 nek\u0101, m\u016bsu m\u0113r\u0137is ir izveidot patie\u0161\u0101m \u0113rti lietojamu r\u012bku darbam ar API. Mums priek\u0161\u0101 ir v\u0113l daudz darba, \u0161eit ir aptuvens m\u016bsu projekta att\u012bst\u012bbas pl\u0101ns tuv\u0101kajam gadam: <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/roadmap\/\">https:\/\/testmace.com\/roadmap<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>J\u016bsu atsauksmes \u013caus mums lab\u0101k orient\u0113ties daudzu funkciju izpratn\u0113, bet j\u016bsu atbalsts \u2014 pie\u0161\u0137ir mums sp\u0113ku un p\u0101rliec\u012bbu, ka m\u0113s dar\u0101m pareizo lietu. T\u0101 nu san\u0101k, ka \u0161odien ir svar\u012bga diena m\u016bsu projektam \u2014 TestMace public\u0113\u0161anas diena uz <noindex><a rel=\"nofollow\" href=\"https:\/\/www.producthunt.com\/posts\/testmace\">ProductHunt<\/a><\/noindex>. L\u016bdzu, atbalstiet m\u016bsu projektu, tas mums ir \u013coti svar\u012bgi. Jo \u012bpa\u0161i t\u0101p\u0113c, ka m\u016bsu PH lap\u0101 \u0161odien ir pievilc\u012bgs pied\u0101v\u0101jums, un tas ir ierobe\u017eots<\/p>\n<p>Avots: <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\/lv\/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=\"lv_LV\" \/>\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\/lv\/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\udd47K\u0101p\u0113c TestMace ir lab\u0101ks par Postman | ProHoster","description":"Sveiki visiem, esmu \u0161eit","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/chem-testmace-luchshe-postman","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/54188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=54188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/54188\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=54188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=54188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=54188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}