Varför TestMace är bättre än Postman

Varför TestMace är bättre än Postman

Hej alla, varsågod TestMace! Kanske många känner till oss från av vår tidigare artiklar. För de som precis har gått med: vi utvecklar en IDE för att fungera med TestMace API. Den vanligaste frågan när man jämför TestMace med konkurrerande produkter är "Hur skiljer du dig från Postman?" Vi bestämde att det var dags att ge ett detaljerat svar på denna fråga. Nedan har vi beskrivit våra fördelar framför Postman.

Delas upp i noder

Om du arbetar med Postman vet du att förfrågningsgränssnittet innehåller all nödvändig funktionalitet. Det finns skript, tester och faktiskt själva förfrågningarna. Detta gör det lättare för nybörjare, men i stora scenarier är detta tillvägagångssätt inte flexibelt. Vad händer om du vill skapa flera frågor och utföra aggregering på dem? Vad händer om du vill köra ett skript utan en begäran eller flera logiskt åtskilda skript i rad? Det är trots allt en bra idé att separera tester från vanliga verktygsskript. Dessutom är metoden "lägg till all funktionalitet i en nod" inte skalbar - gränssnittet blir snabbt överbelastat.

TestMace delar inledningsvis upp all funktionalitet i olika typer av noder. Vill du göra en förfrågan? Den är till dig begäran steg nod Vill du skriva ett manus? Den är till dig skript nod Behöver du tester? Snälla du - påstående nod Åh ja, du kan fortfarande slå in det hela mapp nod Och allt detta kan enkelt kombineras med varandra. Detta tillvägagångssätt är inte bara mycket flexibelt, utan låter dig också, i enlighet med principen om ett enda ansvar, bara använda det du verkligen behöver för tillfället. Varför behöver jag skript och tester om jag bara vill göra en förfrågan?

Människoläsbart projektformat

Det finns en begreppsmässig skillnad mellan TestMace och Postman i hur de lagras. I Postman lagras alla förfrågningar någonstans i lokal lagring. Om det finns ett behov av att dela förfrågningar mellan flera användare måste du använda den inbyggda synkroniseringen. I själva verket är detta ett allmänt accepterat tillvägagångssätt, men inte utan dess nackdelar. Hur är det med datasäkerhet? När allt kommer omkring kanske vissa företags policy inte tillåter lagring av data hos tredje part. Vi tror dock att TestMace har något bättre att erbjuda! Och namnet på denna förbättring är "mänskligt läsbart projektformat."

Låt oss börja med det faktum att det i TestMace i princip finns en "projekt"-enhet. Och applikationen utvecklades ursprungligen med ett öga för att lagra projekt i versionskontrollsystem: projektträdet projiceras nästan en-mot-en på filstrukturen, yaml används som lagringsformat (utan extra parenteser och kommatecken), och filrepresentation av varje nod beskrivs i detalj i dokumentationen med kommentarer. Men i de flesta fall tittar du inte där - alla fältnamn har logiska namn.

Vad ger detta användaren? Detta gör att du kan ändra teamets arbetsflöde mycket flexibelt med hjälp av välbekanta metoder. Till exempel kan utvecklare lagra ett projekt i samma arkiv som backend. I grenar, förutom att ändra själva kodbasen, kan utvecklaren korrigera befintliga frågeskript och tester. Efter att ha gjort ändringar i förvaret (git, svn, mercurial - vad du än gillar bäst), lanserar CI (din favorit, inte påtvingad av någon) vårt konsolverktyg testmace-cli, och rapporten som tas emot efter körning (till exempel i junit-format, som också stöds i testmace-cli) skickas till lämpligt system. Och den ovan nämnda säkerhetsfrågan är inte längre ett problem.

Som du kan se påtvingar TestMace inte sitt ekosystem och sitt paradigm. Istället passar det lätt in i etablerade processer.

Dynamiska variabler

TestMace följer no-code-konceptet: om ett problem kan lösas utan att använda kod, försöker vi tillhandahålla denna möjlighet. Att arbeta med variabler är precis den typ av funktionalitet där du i de flesta fall klarar dig utan programmering.

Exempel: vi fick ett svar från servern och vi vill spara en del av svaret i en variabel. I Postman skulle vi i ett testmanus (vilket är konstigt i sig) skriva något i stil med:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Men enligt vår åsikt ser det överflödigt ut att skriva ett manus för ett så enkelt och ofta använt scenario. Därför är det i TestMace möjligt att tilldela en del av svaret till en variabel med hjälp av det grafiska gränssnittet. Titta så enkelt det är:

Varför TestMace är bättre än Postman

Och nu med varje begäran kommer denna dynamiska variabel att uppdateras. Men du kan invända och hävda att Postman-metoden är mer flexibel och gör att du inte bara kan göra ett uppdrag, utan också utföra en del förbearbetning. Så här ändrar du det föregående exemplet:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Tja, för detta ändamål har TestMace skript nod, som täcker detta scenario. För att återskapa det tidigare fallet, men som redan körts av TestMace, måste du skapa en skriptnod efter begäran och använda följande kod som ett skript:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Som du kan se fungerade sammansättningen av noderna bra även här. Och för ett så enkelt fall som beskrivs ovan kan du helt enkelt tilldela uttrycket ${crypto.MD5($response.data)} variabel skapad via GUI!

Skapa tester via GUI

Postman låter dig skapa tester genom att skriva skript (i fallet med Postman är detta JavaScript). Detta tillvägagångssätt har många fördelar - nästan obegränsad flexibilitet, tillgång till färdiga lösningar etc.

Men verkligheten är ofta sådan (vi är inte sådana, livet är så) att en testare inte har programmeringskunskaper, men han skulle vilja göra nytta för laget just nu. I sådana fall låter TestMace dig skapa enkla tester genom ett GUI utan att behöva skriva skript. Här är till exempel hur processen att skapa ett test som jämför värden för jämställdhet ser ut:

Varför TestMace är bättre än Postman

Att skapa tester i en grafisk editor eliminerar dock inte möjligheten skriva prov i kod. Alla samma bibliotek finns här som i skriptnoden, och chai för att skriva prov.

Situationer uppstår ofta när en viss fråga eller till och med ett helt skript behöver köras flera gånger i olika delar av projektet. Ett exempel på sådana förfrågningar kan vara anpassad flerstegsauktorisering, föra miljön till önskat tillstånd etc. Generellt sett, när det gäller programmeringsspråk, skulle vi vilja ha funktioner som kan återanvändas i olika delar av applikationen. I TestMace utförs denna funktion av länk nod Det är väldigt lätt att använda:
1) skapa en fråga eller ett skript
2) skapa en nod av typen Länk
3) i parametrarna, ange en länk till skriptet som skapades i det första steget

I en mer avancerad version kan du ange vilka dynamiska variabler från skriptet som skickas till en högre nivå i förhållande till länken. Låter det förvirrande? Låt oss säga att vi skapade en mapp med namnet skapa-inlägg, inom vilken en dynamisk variabel tilldelas denna nod postId. Nu i länknoden skapa-post-länk du kan uttryckligen ange att variabeln postId tilldelas en förfader skapa-post-länk. Denna mekanism (igen, i programmeringsspråk) kan användas för att returnera ett resultat från en "funktion". I allmänhet är det coolt, DRY är i full gång och återigen inte en enda rad kod skadades.

Varför TestMace är bättre än Postman

När det gäller Postman finns det en funktionsbegäran för återanvändning av förfrågningar hängt sedan 2015, och det verkar vara jämnt några tipsatt de arbetar med detta problem. I sin nuvarande form har Postman förstås förmågan att ändra utförandetråden, vilket i teorin förmodligen gör det möjligt att implementera liknande beteende, men detta är mer ett dirty hack än ett verkligt fungerande tillvägagångssätt.

Andra skillnader

  • Större kontroll över omfattningen av variabler. Den minsta räckvidd inom vilken en variabel kan definieras i Postman är insamling. TestMace låter dig definiera variabler för valfri fråga eller mapp. I Postman Share-samling kan du endast exportera samlingar, medan i TestMace fungerar delning för alla noder
  • TestMace stöder ärftliga rubriker, som kan ersättas med underordnade frågor som standard. Postman har något om detta: uppgiften, och det är till och med stängt, men det erbjuds som en lösning... använda skript. I TestMace är allt detta konfigurerat via GUI och det finns ett alternativ att valfritt inaktivera ärvda rubriker i specifika ättlingar
  • Ångra göra om. Fungerar inte bara när du redigerar noder, utan också när du flyttar, tar bort, byter namn och andra operationer som ändrar projektets struktur
  • Filer kopplade till förfrågningar blir en del av projektet och lagras med det, samtidigt som de är perfekt synkroniserade, till skillnad från Postman. (Ja, du behöver inte längre manuellt välja filer varje gång du startar och överföra dem till kollegor i arkiv)

Funktioner som redan är på väg

Vi kunde inte motstå frestelsen att lyfta på hemlighetsslöjan över de kommande utgåvorna, speciellt när funktionaliteten är mycket välsmakande och redan genomgår förutgivningspolering. Så, låt oss träffas.

funktioner

Postman använder som bekant så kallade dynamiska variabler för att generera värden. Listan över dem är imponerande och de allra flesta funktioner används för att generera falska värden. Till exempel, för att generera ett slumpmässigt e-postmeddelande måste du skriva:

{{$randomEmail}}

Men eftersom dessa är variabler (om än dynamiska) kan de inte användas som funktioner: de är inte parameteriserbara, därför kommer det inte att vara möjligt att ta en hash från en sträng.

Vi planerar att lägga till "ärliga" funktioner till TestMace. Precis inuti ${} kommer det att vara möjligt att inte bara komma åt en variabel utan också att anropa en funktion. De där. om du behöver generera det ökända falska e-postmeddelandet skriver vi helt enkelt

${faker.internet.email()}

Förutom att det är en funktion kommer du att märka att det går att anropa en metod på ett objekt. Och istället för en stor platt lista med dynamiska variabler har vi en uppsättning logiskt grupperade objekt.

Vad händer om vi vill beräkna hash för en sträng? Lätt!

${crypto.MD5($dynamicVar.data)}

Du kommer att märka att du till och med kan skicka variabler som parametrar! Vid det här laget kan en nyfiken läsare misstänka att något är fel...

Använda JavaScript i uttryck

... Och av goda skäl! När kraven på funktioner skulle utformas kom vi plötsligt fram till att giltigt javascript borde skrivas i uttryck. Så nu är du fri att skriva uttryck som:

${1 + '' + crypto.MD5('asdf')}

Och allt detta utan skript, direkt i inmatningsfälten!

När det gäller Postman, här kan du bara använda variabler, och när du försöker skriva minsta lilla uttryck så förbannar validatorn och vägrar att beräkna det.

Varför TestMace är bättre än Postman

Avancerat autoslutförande

För närvarande har TestMace en standard autokomplettering som ser ut så här:

Varför TestMace är bättre än Postman

Här anges förutom autokompletteringsraden vad denna rad tillhör. Denna mekanism fungerar bara i uttryck omgivna av parenteser ${}.

Som du kan se har visuella markörer lagts till som indikerar typen av variabel (till exempel sträng, nummer, array, etc.). Du kan också ändra autokompletteringslägena (du kan till exempel välja autokomplettering med variabler eller rubriker). Men även detta är inte det viktigaste!

För det första fungerar autokomplettering även i uttryck (där det är möjligt). Så här ser det ut:

Varför TestMace är bättre än Postman

Och för det andra är autokomplettering nu tillgänglig i skript. Ta en titt på hur det fungerar!

Varför TestMace är bättre än Postman

Det är ingen mening att jämföra denna funktionalitet med Postman - autokomplettering där är endast begränsad till statiska listor med variabler, rubriker och deras värden (rätta mig om jag har glömt något). Skript är inte autoslutförda :)

Slutsats

Oktober var ett år sedan starten av vår produktutveckling. Under den här tiden hann vi med en massa saker och i vissa avseenden kom vi ikapp våra konkurrenter. Men hur som helst, vårt mål är att göra ett verkligt bekvämt verktyg för att arbeta med API:er. Vi har fortfarande mycket att göra, här är en grov plan för utvecklingen av vårt projekt för det kommande året: https://testmace.com/roadmap.

Din feedback gör det möjligt för oss att bättre navigera i överflöd av funktioner, och ditt stöd ger oss styrka och förtroende för att vi gör rätt. Det råkar vara så att idag är en viktig dag för vårt projekt - dagen TestMace publicerades ProductHunt. Stöd gärna vårt projekt, det är väldigt viktigt för oss. Dessutom finns det ett frestande erbjudande på vår PH-sida idag, och det är begränsat

Källa: will.com

Lägg en kommentar