{"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\/nl\/blog\/news\/chem-testmace-luchshe-postman","title":{"rendered":"Wat maakt TestMace beter dan Postman?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/4b61986c287c32a4cefeb2f805fc228f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hallo allemaal, hier is het <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/\">TestMace<\/a><\/noindex>! Veel mensen kennen ons misschien al van <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">onze<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462585\/\">vorige<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458964\/\">artikelen<\/a><\/noindex>. Voor degenen die net zijn aangesloten: we ontwikkelen een IDE voor het werken met de API TestMace. De meest gestelde vraag bij het vergelijken van TestMace met concurrerende producten is \u2014 \u00abWat maakt jullie anders dan Postman?\u00bb. We hebben besloten dat het tijd is om een uitgebreid antwoord op deze vraag te geven. Hieronder hebben we onze voordelen ten opzichte van <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\">Opsplitsing in knooppunten<\/h2>\n<p><\/p>\n<p>Als je met Postman werkt, weet je dat de interface voor verzoeken alle benodigde functionaliteit bevat. Hier zitten scripts, testen, en natuurlijk de verzoeken zelf. Dit vereenvoudigt het werk voor nieuwelingen, maar bij grotere scenario's is deze aanpak niet flexibel. Wat als je meerdere verzoeken wilt aanmaken en deze wilt aggregeren? Wat als je een script zonder verzoek wilt uitvoeren of verschillende logisch gescheiden scripts achter elkaar? Tenslotte zou het goed zijn om testen van gewone utilitaire scripts te scheiden. Daarnaast is de aanpak van \u00abvoeg alle functionaliteit in \u00e9\u00e9n node toe\u00bb niet schaalbaar \u2014 de interface raakt snel overvol.<\/p>\n<p><\/p>\n<p>TestMace splitst vanaf het begin alle functionaliteit op in verschillende soorten knooppunten. Wil je een aanvraag doen? Hier is je <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/requeststep\">request step<\/a><\/noindex> knooppunt. Wil je een script schrijven? Hier is je <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> knooppunt. Heb je tests nodig? Alsjeblieft \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\">Assertion<\/a><\/noindex> knooppunt. Oh ja, je kunt al deze zaken ook nog eens verpakken in een <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/folder\">map<\/a><\/noindex> knooppunt. En dit alles laat zich gemakkelijk met elkaar combineren. Deze aanpak is niet alleen zeer flexibel, maar stelt, in overeenstemming met het principe van unieke verantwoordelijkheid, je in staat om alleen te gebruiken wat je op dat moment echt nodig hebt. Waarom zou ik scripts en tests nodig hebben als ik gewoon een aanvraag wil doen?<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-proekta\">Menselijke leesbaar projectformaat<\/h2>\n<p><\/p>\n<p>Er is een conceptueel verschil tussen TestMace en Postman in de manier van opslag. In Postman worden alle verzoeken ergens in de lokale opslag bewaard. Als je verzoeken wilt delen tussen meerdere gebruikers, moet je gebruik maken van de ingebouwde synchronisatie. Dit is eigenlijk een algemeen geaccepteerde aanpak, maar niet zonder nadelen. Hoe zit het met de databeveiliging? Want het beleid van sommige bedrijven staat mogelijk niet toe om gegevens bij derden op te slaan. Maar wij denken dat TestMace iets beters kan bieden! En de naam van deze verbetering is \u00abmens-leesbaar projectformaat\u00bb.<\/p>\n<p><\/p>\n<p>Laten we beginnen met het feit dat TestMace in principe de entiteit \u201cproject\u201d heeft. De applicatie is oorspronkelijk ontwikkeld met het oog op het opslaan van projecten in versiesystemen: de projectstructuur projecteert praktisch \u00e9\u00e9n op \u00e9\u00e9n naar de mappenstructuur, gebruikmakend van yaml als opslagn formaat (zonder onnodige haakjes en komma's), en de bestandsrepresentatie van elke knoop is gedetailleerd beschreven in de documentatie met opmerkingen. Maar in de meeste gevallen zul je daar niet naar kijken \u2014 alle veldnamen hebben logische benamingen. <\/p>\n<p><\/p>\n<p>Wat biedt dit de gebruiker? Het stelt de gebruiker in staat om de workflow van het team op een zeer flexibele manier te wijzigen, gebruikmakend van vertrouwde benaderingen. Bijvoorbeeld, ontwikkelaars kunnen het project opslaan in dezelfde repository als de backend. In de takken kan de ontwikkelaar, naast het direct wijzigen van de codebase, bestaande testscripts en verzoekscenario's corrigeren. Nadat wijzigingen in de repository zijn vastgelegd (git, svn, mercurial \u2014 wat je maar wilt), start de CI (je favoriete, niet opgelegde) onze consoletool. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/package\/@testmace\/cli\">testmace-cli<\/a><\/noindex>, en het rapport dat na uitvoering wordt verkregen (bijvoorbeeld in junit-formaat, dat ook wordt ondersteund in testmace-cli) wordt verzonden naar het desbetreffende systeem. En de eerder genoemde veiligheidskwestie is ook geen probleem meer.<\/p>\n<p><\/p>\n<p>Zoals je ziet, legt TestMace zijn ecosysteem en paradigma niet op. In plaats daarvan integreert het soepel in reeds gevestigde processen.<\/p>\n<p><\/p>\n<h2 id=\"dinamicheskie-peremennye\">Dynamische variabelen<\/h2>\n<p><\/p>\n<p>TestMace volgt het no-code principe: als het probleem zonder code opgelost kan worden, streven we ernaar die mogelijkheid te bieden. Werken met variabelen is precies die functionaliteit waarbij in de meeste gevallen programmering niet noodzakelijk is.<\/p>\n<p><\/p>\n<p>Voorbeeld: we hebben een antwoord van de server ontvangen, en we willen een gedeelte van de response in een variabele opslaan. In Postman zouden we in het testscript (wat op zich al vreemd is) iets als volgt schrijven:<\/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>Maar naar onze mening lijkt het schrijven van een script voor zo'n eenvoudige en vaak gebruikte scenario overbodig. Daarom biedt TestMace de mogelijkheid om een stukje van het antwoord aan een variabele toe te wijzen via de grafische interface. Kijk hoe eenvoudig dit is:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/2ce8ce2f9aa2964cb5bd1d5eacead423.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>En nu zal deze dynamische variabele bij elke aanvraag worden bijgewerkt. Maar je zou kunnen tegenwerpen met het argument dat de Postman-aanpak flexibeler is en niet alleen toewijzing mogelijk maakt, maar ook enige preprocessing kan uitvoeren. Zo kun je het vorige voorbeeld aanpassen:<\/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>Nou, hiervoor heeft TestMace <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> een node die dit scenario dekt. Om het vorige geval te reproduceren, maar nu in TestMace, moet je na de aanvraag een scriptnode maken en de volgende code als script gebruiken:<\/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>Zoals je kunt zien, heeft de samenstelling van nodes hier ook goed gewerkt. Voor zo'n eenvoudig geval als hierboven beschreven, kun je het expressie <code>${crypto.MD5($response.data)}<\/code> toewijzen aan de variabele, die wordt aangemaakt via de grafische interface!<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov-cherez-gui\">Testen maken via de GUI<\/h2>\n<p><\/p>\n<p>Postman maakt het mogelijk om tests te maken door scripts te schrijven (in het geval van Postman is dit JavaScript). Deze aanpak heeft alleen maar voordelen \u2014 bijna ongelimiteerde flexibiliteit, beschikbare oplossingen, etc.<\/p>\n<p><\/p>\n<p>Echter, de realiteit is vaak zo (niet wij, maar het leven), dat de tester geen programmeervaardigheden heeft, terwijl hij of zij al nu waarde aan het team zou willen toevoegen. Voor dergelijke gevallen stelt TestMace je in staat om eenvoudige tests te maken via de grafische interface, zonder scripts te schrijven. Hier is bijvoorbeeld hoe het proces van het maken van een test eruitziet die waarden vergelijkt op gelijkheid:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/c0a8ce4cbe264dd76e3b5d90594eeff5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Echter, het cre\u00ebren van tests in de grafische editor sluit de mogelijkheid niet uit <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\/script\">om tests in code te schrijven<\/a><\/noindex>. Hier zijn dezelfde bibliotheken als in de scriptnode, en <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chaijs.com\/\">chai<\/a><\/noindex> voor het schrijven van tests.<\/p>\n<p><\/p>\n<h2 id=\"vozmozhnost-zapustit-uzhe-suschestvuyuschiy-scenariy-po-ssylke-link-uzel\">De mogelijkheid om een bestaande scenario via een link uit te voeren (Link node)<\/h2>\n<p><\/p>\n<p>komt vaak voor situaties waarin een bepaalde aanvraag of zelfs een heel scenario meerdere keren op verschillende delen van het project moet worden uitgevoerd. Voorbeelden van dergelijke verzoeken kunnen een aangepaste multi-stage autorisatie zijn, het brengen van de omgeving in de gewenste toestand, enz. Kortom, als we in termen van programmeertalen spreken, zouden we functies willen hebben die hergebruikt kunnen worden in verschillende delen van de applicatie. In TestMace vervult deze functie <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/link\">link<\/a><\/noindex> Het is heel eenvoudig om het te gebruiken:<br \/>\n1) maak een verzoek of script aan<br \/>\n2) maak een knooppunt van het type Link<br \/>\n3) geef in de parameters de link op naar het script dat in de eerste stap is aangemaakt<\/p>\n<p><\/p>\n<p>In een geavanceerdere variant kun je aangeven welke dynamische variabelen uit het script naar het bovenliggende niveau moeten worden doorgestuurd ten opzichte van de link. Klinkt verwarrend? Stel dat we een Map met de naam <strong>create-post<\/strong>, waarin aan dit knooppunt een dynamische variabele wordt toegewezen <code>postId<\/code>. Nu kun je in het Link-knooppunt <strong>create-post-link<\/strong> expliciet opgeven dat de variabele <code>postId<\/code> toegekend moet worden aan het bovenliggende. <strong>create-post-link<\/strong>. Dit mechanisme (opnieuw, in programmeertaal) kan worden gebruikt om een resultaat uit een \u00abfunctie\u00bb terug te geven. Kortom, geweldig, DRY ten volle en wederom is er geen enkele regel code verloren gegaan.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/5235473a43e5bc2e05aeb2779846245f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wat betreft Postman, het feature request voor het hergebruiken van verzoeken <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535\">Heeft sinds 2015 op de plank liggen<\/a><\/noindex>, en er zijn zelfs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535#issuecomment-280305898\">enkele hints<\/a><\/noindex>, dat er aan dit probleem wordt gewerkt. In zijn huidige vorm heeft Postman natuurlijk de mogelijkheid om de uitvoeringsstroom te wijzigen, wat in theorie misschien dit gedrag mogelijk maakt, maar dit is eerder een vieze hack dan echt een werkbare aanpak. <\/p>\n<p><\/p>\n<h2 id=\"prochie-otlichiya\">Andere verschillen<\/h2>\n<p><\/p>\n<ul>\n<li>Groter controle over de reikwijdte van variabelen. De kleinste scope waarin een variabele in Postman kan worden gedefinieerd, is een collectie. TestMace staat toe variabelen voor elke aanvraag of map te defini\u00ebren. In Postman stelt de optie Share collection alleen in staat om collecties te exporteren, terwijl in TestMace de sharing voor elk knooppunt werkt.<\/li>\n<li>TestMace ondersteunt <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/other\/default-http-headers\">ge\u00ebrfde headers<\/a><\/noindex>, die standaard kunnen worden toegevoegd aan kindaanvragen. Postman heeft hier <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947\">taak<\/a><\/noindex>, en het is zelfs gesloten, maar als oplossing wordt voorgesteld\u2026 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947#issuecomment-292741840\">gebruik scripts<\/a><\/noindex>. In TestMace wordt dit alles geconfigureerd via de GUI en is er een optionele mogelijkheid om ge\u00ebrfde headers in specifieke nakomelingen uit te schakelen.<\/li>\n<li>Undo\/Redo. Werkt niet alleen bij het bewerken van knooppunten, maar ook bij verplaatsen, verwijderen, hernoemen en andere acties die de projectstructuur wijzigen.<\/li>\n<li>Bestanden die aan verzoeken zijn gehecht, worden een onderdeel van het project en worden samen met het project opgeslagen, waarbij ze perfect synchroniseren, in tegenstelling tot Postman. (Ja, het is niet langer nodig om bij elke uitvoer handmatig bestanden te selecteren en deze in archieven aan collega\u2019s door te geven.)<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"fichi-kotorye-uzhe-na-podhode\">Functies die al op komst zijn<\/h2>\n<p><\/p>\n<p>We couldn't resist the temptation to lift the veil of mystery over the upcoming releases, especially since the functionality is very appealing and is already in pre-release polishing. So, let's welcome.<\/p>\n<p><\/p>\n<h3 id=\"funkcii\">Functies<\/h3>\n<p><\/p>\n<p>As you know, dynamic variables are used in Postman to generate values. <noindex><a rel=\"nofollow\" href=\"https:\/\/learning.getpostman.com\/docs\/postman\/variables-and-environments\/variables-list\/\">The list is impressive<\/a><\/noindex> and the vast majority of functions serve to generate fake values. For example, to generate a random email, you need to write:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">{{ $randomEmail }}<\/code><\/pre>\n<p><\/p>\n<p>However, since they are variables (even if dynamic), they cannot be used as functions: they are not parameterizable, therefore you cannot take a hash of the string.<\/p>\n<p><\/p>\n<p>In TestMace zijn we van plan \u00abeerlijke\u00bb functies toe te voegen. Direct binnen ${} kun je niet alleen naar een variabele verwijzen, maar ook een functie aanroepen. Dus, als je het beruchte nep-e-mailadres moet genereren, schrijven we gewoon<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${faker.internet.email()}<\/code><\/pre>\n<p><\/p>\n<p>Besides being a function, you can see that there is an option to call a method of an object. Instead of a large flat list of dynamic variables, we have a set of logically grouped objects.<\/p>\n<p><\/p>\n<p>But what if we want to compute a hash of a string? Easy!<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${crypto.MD5($dynamicVar.data)}<\/code><\/pre>\n<p><\/p>\n<p>It can be noted that you can even pass variables as parameters! At this point, an inquisitive reader might suspect something is amiss\u2026 <\/p>\n<p><\/p>\n<h3 id=\"ispolzovanie-javascript-v-vyrazheniyah\">Using JavaScript in expressions<\/h3>\n<p><\/p>\n<p>\u2026 And rightly so! When the requirements for the functions were formed, we suddenly came to the conclusion that valid JavaScript should be written in expressions. Therefore, you are now free to write expressions such as:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">${1 + '' + crypto.MD5('asdf')}<\/code><\/pre>\n<p><\/p>\n<p>And all this without scripts directly in the input fields!<\/p>\n<p><\/p>\n<p>As for Postman, here you can only use variables, and when trying to write even the simplest expression, the validator complains and refuses to calculate it.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/b301760640ff15ea682e9dfb1462116b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"prodvinutoe-avtodopolnenie\">Advanced autocomplete<\/h3>\n<p><\/p>\n<p>Currently, TestMace has standard autocomplete, which looks as follows:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/1f5ec38a6a6da29e8308882d271b6b14.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Here, in addition to the autocompleting string, it indicates what this string belongs to. This mechanism only works in expressions enclosed in ${}.<\/p>\n<p><\/p>\n<p>Zoals je kunt zien, zijn er visuele markers toegevoegd die het type variabele aangeven (bijvoorbeeld string, nummer, array, enz.). Ook kunnen de autocompletion-modi worden gewijzigd (bijvoorbeeld je kunt autocompletion met variabelen of headers kiezen). Maar dat is niet het belangrijkste!<\/p>\n<p><\/p>\n<p>Ten eerste werkt autocompletion zelfs in expressies (waar dat mogelijk is). Zo ziet het eruit:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/676721c8d12f6c43970ed335deb238f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>En ten tweede is autocompletion nu ook beschikbaar in scripts. Kijk eens hoe dat werkt!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wat maakt TestMace beter dan Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/3b6b4335447c0cbed7044d98831001dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Het heeft geen zin om deze functionaliteit met Postman te vergelijken \u2014 daar is autocompletion beperkt tot statische lijsten van variabelen, headers en hun waarden (corrigeer me als ik iets vergeten ben). Scripts worden niet automatisch aangevuld \ud83d\ude41<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Conclusie<\/h1>\n<p><\/p>\n<p>In oktober was het een jaar geleden dat we met de ontwikkeling van ons product begonnen. In de tussentijd hebben we veel gedaan en op sommige punten zijn we onze concurrenten ingehaald. Maar hoe dan ook, ons doel is om een echt gebruiksvriendelijke tool voor API-werk te maken. We hebben nog een lange weg te gaan; hier is een globale ontwikkelingsplanning voor ons project voor het komende jaar: <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/roadmap\/\">https:\/\/testmace.com\/roadmap<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Jouw feedback helpt ons om beter te navigeren in de overvloed aan functies, en jouw steun geeft ons kracht en vertrouwen dat we het juiste doen. Het blijkt dat vandaag een belangrijke dag is voor ons project \u2014 de publicatiedag van TestMace op <noindex><a rel=\"nofollow\" href=\"https:\/\/www.producthunt.com\/posts\/testmace\">ProductHunt<\/a><\/noindex>. Steun ons project alsjeblieft; dat is heel belangrijk voor ons. Bovendien hebben we vandaag een aantrekkelijk aanbod op onze PH-pagina, en het is beperkt<\/p>\n<p>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47Waarom TestMace beter is dan Postman | ProHoster","description":"Hallo allemaal, hier is het","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/chem-testmace-luchshe-postman","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/54188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=54188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/54188\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=54188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=54188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=54188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}