{"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\/da\/blog\/news\/chem-testmace-luchshe-postman","title":{"rendered":"Hvordan er TestMace bedre end Postman?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/4b61986c287c32a4cefeb2f805fc228f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hej alle sammen, jeg er her <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/\">TestMace<\/a><\/noindex>! M\u00e5ske ved mange af jer, hvem vi er fra <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">vores<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462585\/\">tidligere<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458964\/\">artikler<\/a><\/noindex>. For those who just joined: we are developing an IDE for working with the API TestMace. The most frequently asked question when comparing TestMace with competing products is \u201cHow do you differ from Postman?\u201d. We decided it was time to provide a detailed answer to this question. Below we outline our advantages over <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\">Opdeling i noder<\/h2>\n<p><\/p>\n<p>If you work with Postman, you know that the request interface contains all the necessary functionality. It includes scripts, tests, and, in fact, the requests themselves. This simplifies tasks for beginners, but in larger scenarios, this approach lacks flexibility. What if you want to create several requests and perform aggregation on them? What if you want to run a script without a request or several logically separate scripts in succession? Ultimately, it would also be nice to separate tests from regular utility scripts. Moreover, the approach of 'adding all functionality to one node' is unsustainable \u2014 the interface quickly becomes overloaded.<\/p>\n<p><\/p>\n<p>TestMace opdeler oprindeligt al funktionalitet i forskellige typer noder. Vil du lave en anmodning? Her er en <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/requeststep\">request step<\/a><\/noindex> node. Vil du skrive et script? Her er en <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> node. Har du brug for tests? V\u00e6rsgo \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\">Assertion<\/a><\/noindex> node. \u00c5h ja, du kan ogs\u00e5 pakke alt dette ind i en <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/folder\">folder<\/a><\/noindex> node. Og alt dette kan let kombineres med hinanden. Denne tilgang er ikke kun meget fleksibel, men i overensstemmelse med princippet om enkelt ansvar tillader den, at man kun bruger det, man virkelig har brug for i \u00f8jeblikket. Hvorfor har jeg brug for scripts og tests, hvis jeg bare vil lave en anmodning?<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-proekta\">Menneskel\u00e6seligt projektformat<\/h2>\n<p><\/p>\n<p>There is a conceptual difference in storage methods between TestMace and Postman. In Postman, all requests are stored somewhere in local storage. If there's a need to share requests among several users, you must use the built-in synchronization. In fact, this is a common approach, not without its drawbacks. What about data security? After all, the policies of some companies may not allow storing data with third parties. However, we believe that TestMace can offer something better! And the name of this improvement is 'human-readable project format'.<\/p>\n<p><\/p>\n<p>Lad os starte med, at der i TestMace overhovedet findes en enhed kaldet \"projekt\". Og appen blev oprindeligt udviklet med henblik p\u00e5 at gemme projekter i versionskontrolsystemer: projektets tr\u00e6struktur projiceres n\u00e6sten identisk p\u00e5 filstrukturen, hvor yaml bruges som lagringsformat (uden un\u00f8dvendige parenteser og kommaer), og den film\u00e6ssige repr\u00e6sentation af hver node er detaljeret beskrevet i dokumentationen med kommentarer. Men i de fleste tilf\u00e6lde vil du ikke kigge derhen \u2014 alle feltl\u00e6ngder har logiske navne. <\/p>\n<p><\/p>\n<p>Hvad giver dette brugeren? Det giver mulighed for meget fleksibelt at \u00e6ndre teamets workflow ved hj\u00e6lp af velkendte tilgange. For eksempel kan udviklerne gemme projektet i det samme repository som backend. I grene, ud over at \u00e6ndre selve kodebasen, kan udvikleren rette eksisterende foresp\u00f8rgselscenarier og tests. Efter at \u00e6ndringerne er fastl\u00e5st i repository'en (git, svn, mercurial \u2014 hvad du foretr\u00e6kker), vil CI (din yndlings, som ingen har p\u00e5tvunget) aktivere vores konsolv\u00e6rkt\u00f8j. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/package\/@testmace\/cli\">testmace-cli<\/a><\/noindex>, og den rapport, der frembringes efter udf\u00f8relsen (f.eks. i junit-format, som ogs\u00e5 underst\u00f8ttes i testmace-cli), sendes til det relevante system. Og det f\u00f8rn\u00e6vnte problem med sikkerhed er heller ikke l\u00e6ngere et problem.<\/p>\n<p><\/p>\n<p>Som du ser, p\u00e5tvinger TestMace ikke sin \u00f8kosystem og paradigm. I stedet integreres det let i allerede etablerede processer.<\/p>\n<p><\/p>\n<h2 id=\"dinamicheskie-peremennye\">Dynamiske variabler<\/h2>\n<p><\/p>\n<p>TestMace f\u00f8lger no-code konceptet: hvis et problem kan l\u00f8ses uden at bruge kode, fors\u00f8ger vi at give mulighed for det. Arbejde med variabler er netop den funktionalitet, hvor man i de fleste tilf\u00e6lde kan klare sig uden programmering.<\/p>\n<p><\/p>\n<p>Eksempel: vi har modtaget et svar fra serveren, og vi \u00f8nsker at gemme en del af svaret i en variabel. I Postman ville vi i testscriptet (hvilket i sig selv er m\u00e6rkeligt) skrive noget i stil med:<\/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>Men efter vores mening virker det overfl\u00f8digt at skrive et script til et s\u00e5 simpelt og ofte brugt scenarie. Derfor har TestMace mulighed for at tildele en variabel en del af svaret ved hj\u00e6lp af et grafisk interface. Se hvor enkelt det er:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/2ce8ce2f9aa2964cb5bd1d5eacead423.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Og nu vil denne dynamiske variabel blive opdateret ved hver anmodning. Men du kan indvende, at Postmans tilgang er mere fleksibel og giver mulighed for ikke bare at foretage en tildeling, men ogs\u00e5 udf\u00f8re visse forbehandlingsoperationer. Her er hvordan du kan modificere det forrige eksempel:<\/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>N\u00e5, til dette form\u00e5l findes der i TestMace <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> en node, der d\u00e6kker dette scenario. For at reproducere det forrige tilf\u00e6lde, men nu i TestMace's udf\u00f8relse, skal du efter anmodningen oprette en script-node og bruge den f\u00f8lgende kode som 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>Som du kan se, har sammens\u00e6tningen af noder gjort en god tjeneste her. Og for et s\u00e5 simpelt tilf\u00e6lde som det, der er beskrevet ovenfor, kan du direkte tildele udtrykket <code>${crypto.MD5($response.data)}<\/code> til en variabel, der oprettes via det grafiske interface!<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov-cherez-gui\">Oprettelse af tests via GUI<\/h2>\n<p><\/p>\n<p>Postman giver mulighed for at oprette tests ved at skrive scripts (i tilf\u00e6lde af Postman er det JavaScript). Denne tilgang har mange fordele - praktisk talt ubegribelig fleksibilitet, tilg\u00e6ngelighed af f\u00e6rdige l\u00f8sninger osv.<\/p>\n<p><\/p>\n<p>Imidlertid er realiteterne ofte s\u00e5dan (det er ikke os, livet er s\u00e5dan), at testeren ikke har programmeringsevner, men man gerne ville bidrage til teamet allerede nu. I s\u00e5danne tilf\u00e6lde, i overensstemmelse med no-code-konceptet, tillader TestMace at oprette enkle tests via det grafiske interface uden at skulle skrive scripts. Her er for eksempel, hvordan processen med at oprette en test, der sammenligner v\u00e6rdier for lighed, ser ud:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/c0a8ce4cbe264dd76e3b5d90594eeff5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Imidlertid annullerer oprettelsen af tests i den grafiske editor ikke muligheden <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\/script\">for at skrive tests i koden<\/a><\/noindex>. Her er alle de samme biblioteker som i script-noden, og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chaijs.com\/\">chai<\/a><\/noindex> til at skrive tests.<\/p>\n<p><\/p>\n<h2 id=\"vozmozhnost-zapustit-uzhe-suschestvuyuschiy-scenariy-po-ssylke-link-uzel\">Muligheden for at k\u00f8re et allerede eksisterende scenario via et link (Link node)<\/h2>\n<p><\/p>\n<p>Opst\u00e5r der ofte situationer, hvor en bestemt anmodning eller endda et helt scenario skal udf\u00f8res flere gange i forskellige dele af projektet. Et eksempel p\u00e5 s\u00e5danne anmodninger kan v\u00e6re brugerdefineret multitrinsautorisering, tilpasning af milj\u00f8et til den \u00f8nskede tilstand osv. Generelt, hvis man taler i programmeringssprogs termer, ville man gerne have funktioner, som kan genbruges i forskellige dele af applikationen. I TestMace udf\u00f8rer denne funktion <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/link\">link<\/a><\/noindex> Enheden. Det er meget enkelt at bruge:<br \/>\n1) Opret en anmodning eller script<br \/>\n2) Opret en node af typen Link<br \/>\n3) Angiv linket til scriptet, der blev oprettet i det f\u00f8rste trin, i indstillingerne<\/p>\n<p><\/p>\n<p>I en mere avanceret version kan du angive, hvilke dynamiske variabler fra scriptet der skal sendes op til niveauet ovenfor i forhold til linket. Lyder det forvirrende? Lad os sige, at vi har oprettet en mappe med navnet <strong>create-post<\/strong>, hvor en dynamisk variabel tildeles denne node <code>postId<\/code>. Nu kan du i Link-noden <strong>create-post-link<\/strong> udtrykkeligt angive, at variablen <code>postId<\/code> tildeles den overordnede. <strong>create-post-link<\/strong>. This mechanism (again, speaking in programmer terms) can be used to return a result from a 'function'. In general, it's great, DRY in full swing, and again, not a single line of code has suffered.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/5235473a43e5bc2e05aeb2779846245f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad ang\u00e5r Postman, s\u00e5 h\u00e6nger feature request om genbrug af anmodninger <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535\">siden 2015<\/a><\/noindex>, og der synes ligefrem at v\u00e6re <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535#issuecomment-280305898\">nogle hints<\/a><\/noindex>, om at der arbejdes p\u00e5 dette problem. I den nuv\u00e6rende form har Postman selvf\u00f8lgelig mulighed for at \u00e6ndre udf\u00f8relsesstr\u00f8mmen, hvilket teoretisk set m\u00e5ske tillader at implementere en s\u00e5dan adf\u00e6rd, men det er snarere et beskidt hack end en reel l\u00f8sning. <\/p>\n<p><\/p>\n<h2 id=\"prochie-otlichiya\">Andre forskelle<\/h2>\n<p><\/p>\n<ul>\n<li>St\u00f8rre kontrol over variablers synlighed. Den mindste omfang, inden for hvilket man kan definere en variabel i Postman, er en samling. TestMace giver mulighed for at definere variabler for enhver anmodning eller mappe. I Postman giver Del samling kun mulighed for at eksportere samlinger, mens deling i TestMace fungerer for enhver node<\/li>\n<li>TestMace underst\u00f8tter <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/other\/default-http-headers\">arvningsoverskrifter<\/a><\/noindex>, som som standard kan inds\u00e6ttes i underordnede anmodninger. I Postman findes der en mulighed for dette, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947\">task<\/a><\/noindex>, og den er endda lukket, men som l\u00f8sning foresl\u00e5s det at... <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947#issuecomment-292741840\">bruge scripts<\/a><\/noindex>. I TestMace konfigureres det hele via GUI, og der er mulighed for valgfri deaktivering af arvningsoverskrifter i specifikke efterkommere.<\/li>\n<li>Fortryd\/Gendan. Det fungerer ikke kun ved redigering af noder, men ogs\u00e5 ved flytning, sletning, omd\u00f8bning og andre operationer, der \u00e6ndrer projektstrukturen.<\/li>\n<li>Filer knyttet til anmodninger bliver en del af projektet og gemmes sammen med det, mens de synkroniseres perfekt, i mods\u00e6tning til Postman. (Ja, du skal ikke l\u00e6ngere v\u00e6lge filer manuelt hver gang ved hver k\u00f8rsel og sende dem til kollegerne i arkiver)<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"fichi-kotorye-uzhe-na-podhode\">Features, der allerede er p\u00e5 vej<\/h2>\n<p><\/p>\n<p>Vi kunne ikke modst\u00e5 fristelsen til at l\u00f8fte sl\u00f8ret for de kommende udgivelser, is\u00e6r n\u00e5r funktionaliteterne er s\u00e5 sp\u00e6ndende og allerede gennemg\u00e5r pr\u00e6-release finpudsning. S\u00e5 lad os tage imod.<\/p>\n<p><\/p>\n<h3 id=\"funkcii\">Functions<\/h3>\n<p><\/p>\n<p>Som bekendt bruges s\u00e5kaldte dynamiske variabler til at generere v\u00e6rdier i Postman. <noindex><a rel=\"nofollow\" href=\"https:\/\/learning.getpostman.com\/docs\/postman\/variables-and-environments\/variables-list\/\">Listen over dem er imponerende<\/a><\/noindex> og st\u00f8rstedelen af funktionerne bruges til at generere falske v\u00e6rdier. For eksempel, for at generere en tilf\u00e6ldig email skal du skrive:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">{{$randomEmail}}<\/code><\/pre>\n<p><\/p>\n<p>Men da disse er variabler (om end dynamiske), kan de ikke bruges som funktioner: de er ikke parameteriserbare, og derfor kan du ikke tage en hash af en streng.<\/p>\n<p><\/p>\n<p>In TestMace, we plan to add 'honest' functions. Right inside ${} you will be able not only to refer to a variable but also to call a function. That is, if you need to generate the infamous fake email, we will simply write<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${faker.internet.email()}<\/code><\/pre>\n<p><\/p>\n<p>Udover at dette er en funktion, kan man bem\u00e6rke, at der ogs\u00e5 er mulighed for at kalde metoder p\u00e5 objekter. Og i stedet for en stor flad liste af dynamiske variabler, har vi et s\u00e6t logisk grupperede objekter.<\/p>\n<p><\/p>\n<p>Hvad hvis vi vil beregne en hash af en streng? Det er nemt!<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${crypto.MD5($dynamicVar.data)}<\/code><\/pre>\n<p><\/p>\n<p>Man kan bem\u00e6rke, at det endda er muligt at videregive variabler som parametre! Her kan den nysgerrige l\u00e6ser mist\u00e6nke, at der er noget galt\u2026 <\/p>\n<p><\/p>\n<h3 id=\"ispolzovanie-javascript-v-vyrazheniyah\">Brug af JavaScript i udtryk<\/h3>\n<p><\/p>\n<p>\u2026 Og det med god grund! Da kravene til funktioner blev udarbejdet, inds\u00e5 vi pludselig, at vi skulle tillade valid JavaScript i udtryk. Derfor er du nu fri til at skrive udtryk i stil med:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">${1 + '' + crypto.MD5('asdf')}<\/code><\/pre>\n<p><\/p>\n<p>Og alt dette uden scripts direkte i inputfelterne!<\/p>\n<p><\/p>\n<p>N\u00e5r det kommer til Postman, kan man kun bruge variabler, og ved fors\u00f8g p\u00e5 at skrive et mere komplekst udtryk, vil validatoren klage og n\u00e6gte at beregne det.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/b301760640ff15ea682e9dfb1462116b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"prodvinutoe-avtodopolnenie\">Avanceret autoudfyldning<\/h3>\n<p><\/p>\n<p>I \u00f8jeblikket har TestMace standard autoudfyldning, som ser s\u00e5ledes ud:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/1f5ec38a6a6da29e8308882d271b6b14.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Her angives udover den autoudfyldte streng, hvad denne streng tilh\u00f8rer. Denne mekanisme fungerer kun i udtryk indrammet med ${}.<\/p>\n<p><\/p>\n<p>Som man kan se, er der tilf\u00f8jet visuelle mark\u00f8rer, der angiver typen af variabel (for eksempel streng, tal, array osv.). Man kan ogs\u00e5 \u00e6ndre autofuldf\u00f8relsesindstillingerne (for eksempel kan man v\u00e6lge autofuldf\u00f8relse med variable eller overskrifter). Men det er stadig ikke det vigtigste!<\/p>\n<p><\/p>\n<p>For det f\u00f8rste fungerer autofuldf\u00f8relse ogs\u00e5 i udtryk (hvor det er muligt). S\u00e5dan ser det ud:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/676721c8d12f6c43970ed335deb238f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Og for det andet er autofuldf\u00f8relse nu ogs\u00e5 tilg\u00e6ngeligt i scripts. Se hvordan det fungerer!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan er TestMace bedre end Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/3b6b4335447c0cbed7044d98831001dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det giver ikke mening at sammenligne denne funktionalitet med Postman \u2014 der er autofuldf\u00f8relsen kun begr\u00e6nset til statiske lister over variable, overskrifter og deres v\u00e6rdier (ret mig, hvis jeg har glemt noget). Scripts autofull\u00f8res ikke \ud83d\ude41<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Konklusion<\/h1>\n<p><\/p>\n<p>I oktober var det et \u00e5r siden, vi begyndte at udvikle vores produkt. I l\u00f8bet af denne tid har vi n\u00e5et meget, og vi har indhentet vores konkurrenter p\u00e5 nogle parametre. Men uanset hvad er vores m\u00e5l at skabe et virkelig brugervenligt v\u00e6rkt\u00f8j til at arbejde med API. Vi har stadig meget arbejde foran os, her er en omtrentlig udviklingsplan for vores projekt det n\u00e6ste \u00e5r: <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/roadmap\/\">https:\/\/testmace.com\/roadmap<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Din feedback vil hj\u00e6lpe os med bedre at navigere i m\u00e6ngden af funktioner, og din st\u00f8tte giver os styrke og selvtillid i, at vi g\u00f8r det rette. I dag er en vigtig dag for vores projekt \u2014 dagen for offentligg\u00f8relsen af TestMace p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.producthunt.com\/posts\/testmace\">ProductHunt<\/a><\/noindex>. Venligst st\u00f8t vores projekt, det er meget vigtigt for os. Is\u00e6r fordi der er et attraktivt tilbud p\u00e5 vores PH-side i dag, som er begr\u00e6nset<\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/news\/chem-testmace-luchshe-postman\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Hvorfor TestMace er bedre end Postman | ProHoster","description":"Hej alle sammen, jeg er her","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/chem-testmace-luchshe-postman","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/54188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=54188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/54188\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=54188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=54188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=54188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}