Firwat TestMace besser ass wéi Postman

Firwat TestMace besser ass wéi Postman

Moien alleguer, hei geet et TestMace! Vläicht vill Leit wëssen iwwer eis aus vun eisem virdrun Artikelen. Fir déi, déi just matgemaach hunn: mir entwéckelen eng IDE fir mat der TestMace API ze schaffen. Déi meescht gestallte Fro wann Dir TestMace mat konkurréiere Produkter vergläicht ass "Wéi ënnerscheet Dir Iech vum Postman?" Mir hunn décidéiert datt et Zäit wier eng detailléiert Äntwert op dës Fro ze ginn. Drënner hu mir eis Virdeeler iwwer beschriwwen Bréifdréier.

Opzedeelen an Noden

Wann Dir mat Postman schafft, da wësst Dir datt d'Ufro-Interface all déi néideg Funktionalitéit enthält. Et gi Skripte, Tester, an tatsächlech d'Ufroe selwer. Dëst mécht et méi einfach fir Ufänger, awer a grousse Szenarie ass dës Approche net flexibel. Wat wann Dir e puer Ufroen wëllt erstellen an Aggregatioun op hinnen ausféieren? Wat wann Dir e Skript ouni Ufro oder e puer logesch getrennte Skripte hannertenee wëllt ausféieren? No allem ass et eng gutt Iddi Tester vun normale Utility Scripten ze trennen. Zousätzlech ass d'Approche "all d'Funktionalitéit an een Node addéieren" net skalierbar - d'Interface gëtt séier iwwerlaascht.

TestMace deelt am Ufank all Funktionalitéit a verschidden Aarte vu Wirbelen. Wëllt Dir eng Demande maachen? Et ass fir Iech Ufro Schrëtt node Wëllt Dir e Skript schreiwen? Et ass fir Iech Schrëft node Brauchen Tester? Wann ech glift - Behaaptung node Oh jo, Dir kënnt dës ganz Saach nach ëmmer apaken Dossier node An all dat kann einfach matenee kombinéiert ginn. Dës Approche ass net nëmme ganz flexibel, awer och, am Aklang mam Prinzip vun enger eenzeger Verantwortung, erlaabt Iech nëmmen ze benotzen wat Dir am Moment wierklech braucht. Firwat brauch ech Scripten an Tester wann ech just eng Ufro maachen wëll?

Mënsch liesbar Projet Format

Et gëtt e konzeptuellen Ënnerscheed tëscht TestMace a Postman an der Aart a Weis wéi se gespäichert ginn. Am Postman ginn all Ufroe iergendwou an der lokaler Späichere gespäichert. Wann et e Besoin ass fir Ufroen tëscht verschiddene Benotzer ze deelen, da musst Dir déi agebaute Synchroniséierung benotzen. Tatsächlech ass dëst eng allgemeng akzeptéiert Approche, awer net ouni seng Nodeeler. Wat iwwer Datesécherheet? No all, kann d'Politik vun e puer Firmen net erlaben Daten mat Drëttubidder ze späicheren. Wéi och ëmmer, mir mengen datt TestMace eppes Besseres ze bidden huet! An den Numm vun dëser Verbesserung ass "mënsch liesbar Projetsformat."

Fänke mer mat der Tatsaach un datt am TestMace am Prinzip eng Entitéit "Projet" gëtt. An d'Applikatioun gouf am Ufank entwéckelt fir Projeten a Versiounskontrollsystemer ze späicheren: de Projetbaum ass bal een-op-eent op d'Dateistruktur projizéiert, yaml gëtt als Späicherformat benotzt (ouni extra Klammern a Kommaen), an de Datei Representatioun vun all Node gëtt am Detail an der Dokumentatioun mat Kommentaren beschriwwen. Awer am meeschte Fäll wäert Dir net do kucken - all Feldnimm hunn logesch Nimm.

Wat gëtt dat dem Benotzer? Dëst erlaabt Iech den Aarbechtsfloss vum Team ganz flexibel z'änneren, mat vertraute Approchen. Zum Beispill kënnen d'Entwéckler e Projet am selwechte Repository wéi de Backend späicheren. A Branchen, nieft der Ännerung vun der Codebasis selwer, kann den Entwéckler existéierend Ufro-Skripte an Tester korrigéieren. Nodeems Dir Ännerungen am Repository (git, svn, mercurial - wat och ëmmer Dir am Beschten gefällt), CI (Äre Liiblings, net vu jidderengem imposéiert) lancéiert eise Konsol-Utility testmace-cli, an de Bericht, deen no der Ausféierung kritt gëtt (zum Beispill am Junit-Format, deen och am testmace-cli ënnerstëtzt gëtt) gëtt an de passenden System geschéckt. An déi uewe genannte Sécherheetsfro ass kee Problem méi.

Wéi Dir kënnt gesinn, setzt TestMace säin Ökosystem a Paradigma net op. Amplaz passt et einfach an etabléierte Prozesser.

Dynamesch Variablen

TestMace follegt dem No-Code Konzept: wann e Problem ouni Code geléist ka ginn, probéieren mir dës Geleeënheet ze bidden. Mat Variabelen ze schaffen ass genau déi Aart vu Funktionalitéit wou Dir an de meeschte Fäll ouni Programméiere kënnt.

Beispill: Mir hunn eng Äntwert vum Server kritt, a mir wëllen en Deel vun der Äntwert an eng Variabel späicheren. Am Postman, an engem Testskript (wat u sech komesch ass) schreiwen mir eppes wéi:

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

Awer eiser Meenung no, e Skript ze schreiwen fir sou en einfachen an dacks benotzte Szenario gesäit iwwerflësseg aus. Dofir ass et am TestMace méiglech e Stéck vun der Äntwert op eng Variabel mat der graphescher Interface ze ginn. Kuckt wéi einfach et ass:

Firwat TestMace besser ass wéi Postman

An elo mat all Ufro gëtt dës dynamesch Variabel aktualiséiert. Awer Dir kënnt Objeten, argumentéieren datt d'Postman Approche méi flexibel ass an Iech net nëmmen erlaabt eng Aufgab ze maachen, awer och e puer Virveraarbechtung ze maachen. Hei ass wéi Dir dat viregt Beispill ännert:

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

Gutt, fir dësen Zweck huet TestMace Schrëft Node, deen dësen Szenario deckt. Fir de fréiere Fall ze reproduzéieren, awer scho vum TestMace ausgefouert, musst Dir e Skriptknuet no der Ufro erstellen an de folgende Code als Skript benotzen:

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

Wéi Dir gesitt, huet d'Zesummesetzung vun den Noden och hei gutt gedéngt. A fir sou en einfache Fall wéi uewen beschriwwen, kënnt Dir einfach den Ausdrock zouginn ${crypto.MD5($response.data)} Variabel erstallt iwwer de GUI!

Erstellt Tester iwwer GUI

Postman erlaabt Iech Tester ze kreéieren andeems Dir Scripte schreift (am Fall vu Postman, dëst ass JavaScript). Dës Approche huet vill Virdeeler - bal onlimitéiert Flexibilitéit, Disponibilitéit vun fäerdeg Léisungen, etc.

Wéi och ëmmer, d'Realitéit ass dacks sou (mir sinn net esou, d'Liewen ass esou) datt en Tester keng Programméierungsfäegkeeten huet, awer hie wéilt d'Equipe elo profitéieren. Fir sou Fäll, no dem No-Code Konzept, erlaabt TestMace Iech einfach Tester duerch eng GUI ze kreéieren ouni op Skripte ze schreiwen. Hei, zum Beispill, ass wéi de Prozess fir en Test ze kreéieren dee Wäerter fir Gläichheet vergläicht ausgesäit:

Firwat TestMace besser ass wéi Postman

Wéi och ëmmer, Tester an engem grafeschen Editor erstellen eliminéiert d'Méiglechkeet net schreiwen Tester am Code. All déi selwecht Bibliothéiken sinn hei wéi am Skript Node, an chai fir Tester ze schreiwen.

Situatiounen entstinn dacks wann eng bestëmmte Ufro oder souguer e ganze Skript e puer Mol a verschiddenen Deeler vum Projet muss ausgefouert ginn. E Beispill vu sou Ufroe kéinte personaliséiert Multi-Etapp Autorisatioun sinn, d'Ëmwelt an de gewënschten Zoustand bréngen, asw. Am Allgemengen, a punkto Programméierungssprooche geschwat, wëlle mir Funktiounen hunn déi a verschiddenen Deeler vun der Applikatioun erëmbenotzt kënne ginn. Am TestMace gëtt dës Funktioun duerchgefouert Link node Et ass ganz einfach ze benotzen:
1) eng Ufro oder Skript erstellen
2) erstellt en Node vum Typ Link
3) an de Parameteren, spezifizéiert e Link op de Skript erstallt am éischte Schrëtt

An enger méi fortgeschratt Versioun kënnt Dir spezifizéieren wéi eng dynamesch Variablen aus dem Skript op e méi héije Niveau relativ zum Link weidergeleet ginn. Sound konfus? Loosst eis soen datt mir en Dossier mam Numm erstallt hunn schafen-Post, an deem eng dynamesch Variabel un dësem Node zougewisen ass postId. Elo am Link Node schafen-Post-Link Dir kënnt explizit uginn datt d'Variabel postId engem Vorfahren zougewisen schafen-Post-Link. Dëse Mechanismus (erëm, an der Programméiersprooch) kann benotzt ginn fir e Resultat vun enger "Funktioun" zréckzekommen. Am Allgemengen ass et cool, DRY ass a vollem Schwong an nach eng Kéier gouf keng eenzeg Code Code beschiedegt.

Firwat TestMace besser ass wéi Postman

Wat de Postman ugeet, gëtt et eng Feature Ufro fir Ufroen ze benotzen hänkt zënter 2015, an et schéngt et souguer puer Hiweiserdatt si un dësem Problem schaffen. A senger aktueller Form huet Postman, natierlech, d'Fäegkeet fir de Fuedem vun der Ausféierung z'änneren, wat an der Theorie et méiglech mécht ähnlech Verhalen ëmzesetzen, awer dëst ass méi e dreckeg Hack wéi e wierklech funktionnéierende Approche.

Aner Differenzen

  • Méi grouss Kontroll iwwer den Ëmfang vun de Variablen. Dee klengste Ëmfang an deem eng Variabel am Postman definéiert ka ginn ass Sammlung. TestMace erlaabt Iech Variablen fir all Ufro oder Dossier ze definéieren. An der Postman Share Kollektioun erlaabt Iech nëmmen Sammlungen ze exportéieren, während am TestMace Deele fir all Node funktionnéiert
  • TestMace ënnerstëtzt ierflecher Header, déi Par défaut an Kannerufroen ersat kënne ginn. Postman huet eppes iwwer dëst: Aufgab, an et ass souguer zou, awer et gëtt als Léisung ugebueden ... benotzen Scripten. Am TestMace ass dëst alles iwwer d'GUI konfiguréiert an et gëtt eng Optioun fir optional ierflech Header a spezifesche Nokommen auszeschalten
  • Undoen/Wiederhuelen. Schafft net nëmme wann Dir Noden ännert, awer och wann Dir plënnert, läschen, ëmbenennen an aner Operatiounen déi d'Struktur vum Projet änneren
  • Dateien, déi un Ufroe verbonne sinn, ginn Deel vum Projet a gi mat deem gespäichert, wärend se perfekt synchroniséiert sinn, am Géigesaz zum Postman. (Jo, Dir musst net méi manuell Dateien auswielen all Kéier wann Dir ufänkt an se un d'Kollegen an den Archiven transferéiert)

Fonctiounen déi schonn ënnerwee sinn

Mir konnten d'Versuchung net widderstoen, de Schleier vum Geheimnis iwwer déi nächst Verëffentlechungen opzehiewen, besonnesch wann d'Funktionalitéit ganz schmackhaft ass a scho Pre-Release poléieren. Also, loosst eis treffen.

Functions

Wéi Dir wësst, benotzt Postman sougenannte dynamesch Variablen fir Wäerter ze generéieren. D'Lëscht vun hinnen ass beandrockend an déi grouss Majoritéit vu Funktiounen gi benotzt fir gefälschte Wäerter ze generéieren. Zum Beispill, fir eng zoufälleg E-Mail ze generéieren musst Dir schreiwen:

{{$randomEmail}}

Wéi och ëmmer, well dës Variablen sinn (och wann dynamesch), kënnen se net als Funktiounen benotzt ginn: si sinn net parametriséierbar, dofir ass et net méiglech en Hash aus enger String ze huelen.

Mir plangen "éierlech" Funktiounen ze TestMace. Direkt bannent ${} ass et méiglech net nëmmen op eng Variabel ze kommen, mee och eng Funktioun ze ruffen. Déi. wann Dir déi notoresch gefälscht E-Mail generéiere musst, schreiwen mir einfach

${faker.internet.email()}

Zousätzlech zu der Tatsaach, datt et eng Funktioun ass, mierkt Dir datt et méiglech ass eng Method op en Objet ze ruffen. An amplaz vun enger grousser flaach Lëscht vun dynamesche Verännerlechen, mir hunn eng Rei vun logesch gruppéiere Objete.

Wat wa mir den Hash vun enger String wëlle berechnen? Einfach!

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

Dir mierkt datt Dir souguer Variabelen als Parameter passéiere kënnt! Zu dësem Zäitpunkt kann e virwëtzeg Lieser de Verdacht hunn datt eppes falsch ass ...

Benotzt JavaScript an Ausdréck

... An aus guddem Grond! Wéi d'Ufuerderunge fir Funktiounen geformt goufen, si mir op eemol zur Conclusioun komm datt gëlteg Javascript an Ausdréck geschriwwe soll ginn. Also elo sidd Dir fräi Ausdréck ze schreiwen wéi:

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

An dat alles ouni Skripte, direkt an den Inputfelder!

Wat de Postman ugeet, hei kënnt Dir nëmmen Variabelen benotzen, a wann Dir probéiert de geringsten Ausdrock ze schreiwen, verflucht de Validator a refuséiert et ze berechnen.

Firwat TestMace besser ass wéi Postman

Fortgeschratt autocompletion

De Moment huet TestMace e Standard Autocompletion deen esou ausgesäit:

Firwat TestMace besser ass wéi Postman

Hei gëtt, nieft der Auto-Complete-Linn, uginn, zu wat dës Linn gehéiert. Dëse Mechanismus funktionéiert nëmmen an Ausdréck ëmgi vun Klammern ${}.

Wéi Dir gesitt, sinn visuell Markéierer hinzugefügt ginn, déi d'Zort vun der Variabel uginn (zum Beispill String, Zuel, Array, etc.). Dir kënnt och d'Autocompletion Modi änneren (zum Beispill, Dir kënnt d'Autocompletion mat Variablen oder Header auswielen). Awer och dëst ass net dat Wichtegst!

Als éischt funktionnéiert d'Autokomplementéierung och an Ausdréck (wa méiglech). Dëst ass wéi et ausgesäit:

Firwat TestMace besser ass wéi Postman

An zweetens, Autocompletion ass elo a Skripte verfügbar. Kuckt wéi et funktionnéiert!

Firwat TestMace besser ass wéi Postman

Et ass kee Sënn fir dës Funktionalitéit mat Postman ze vergläichen - d'Autocompletion do ass nëmme limitéiert op statesch Lëschte vu Variabelen, Header an hir Wäerter (korrigéiert mech wann ech eppes vergiess hunn). Skripte ginn net automatesch ofgeschloss :)

Konklusioun

Oktober war e Joer zënter dem Start vun eiser Produktentwécklung. Während dëser Zäit hu mir et fäerdeg bruecht vill Saachen ze maachen an hunn eis Konkurrenten a verschiddenen Aspekter agefaangen. Awer sief et wéi et ass, eist Zil ass e wierklech praktescht Tool ze maachen fir mat APIen ze schaffen. Mir hunn nach vill Aarbecht ze maachen, hei ass e graff Plang fir d'Entwécklung vun eisem Projet fir dat nächst Joer: https://testmace.com/roadmap.

Äre Feedback erlaabt eis d'Heefegkeet vu Funktiounen besser ze navigéieren, an Är Ënnerstëtzung gëtt eis Kraaft a Vertrauen datt mir déi richteg Saach maachen. Et geschitt sou datt haut e wichtegen Dag fir eise Projet ass - den Dag TestMace publizéiert gouf ProductHunt. Ënnerstëtzt w.e.g. eise Projet, et ass eis ganz wichteg. Ausserdeem gëtt et haut eng verlockend Offer op eiser PH Säit, an et ass limitéiert

Source: will.com

Setzt e Commentaire