Per què TestMace és millor que Postman

Per què TestMace és millor que Postman

Hola a tots, aquí teniu TestMace! Potser molta gent sap de nosaltres dels nostres anterior articles. Per als que s'acaben d'incorporar: estem desenvolupant un IDE per treballar amb l'API TestMace. La pregunta més freqüent en comparar TestMace amb productes de la competència és "En què ets diferent de Postman?" Vam decidir que era el moment de donar una resposta detallada a aquesta pregunta. A continuació hem descrit els nostres avantatges Carter.

Divisió en nodes

Si treballeu amb Postman, sabeu que la interfície de sol·licitud conté totes les funcionalitats necessàries. Hi ha guions, proves i, de fet, les sol·licituds en si. Això fa que sigui més fàcil per als principiants, però en grans escenaris aquest enfocament no és flexible. Què passa si voleu crear diverses consultes i fer-hi una agregació? Què passa si voleu executar un script sense una sol·licitud o diversos scripts separats lògicament seguits? Després de tot, seria una bona idea separar les proves dels scripts d'utilitat habituals. A més, l'enfocament "afegir tota la funcionalitat en un sol node" no és escalable: la interfície es sobrecarrega ràpidament.

TestMace inicialment divideix totes les funcionalitats en diferents tipus de nodes. Vols fer una sol·licitud? És per a tu pas de sol·licitud node Vols escriure un guió? És per a tu script node Necessites proves? Si us plau - Afirmació node Ah, sí, encara pots embolicar tot això folder node I tot això es pot combinar fàcilment entre si. Aquest enfocament no només és molt flexible, sinó que, d'acord amb el principi de responsabilitat única, us permet utilitzar només el que realment necessiteu en aquest moment. Per què necessito scripts i proves si només vull fer una sol·licitud?

Format de projecte llegible per les persones

Hi ha una diferència conceptual entre TestMace i Postman en la forma en què s'emmagatzemen. A Postman, totes les sol·licituds s'emmagatzemen en algun lloc de l'emmagatzematge local. Si cal compartir sol·licituds entre diversos usuaris, haureu d'utilitzar la sincronització integrada. De fet, aquest és un enfocament generalment acceptat, però no exempt dels seus inconvenients. Què passa amb la seguretat de les dades? Al cap i a la fi, la política d'algunes empreses pot no permetre l'emmagatzematge de dades amb tercers. Tanmateix, creiem que TestMace té alguna cosa millor a oferir! I el nom d'aquesta millora és "format de projecte llegible pels humans".

Comencem pel fet que a TestMace, en principi, hi ha una entitat "projecte". I l'aplicació es va desenvolupar inicialment amb l'objectiu d'emmagatzemar projectes en sistemes de control de versions: l'arbre del projecte es projecta gairebé un a un a l'estructura de fitxers, yaml s'utilitza com a format d'emmagatzematge (sense claudàtors i comes addicionals) i el la representació del fitxer de cada node es descriu detalladament a la documentació amb comentaris. Però en la majoria dels casos no hi mirareu: tots els noms de camp tenen noms lògics.

Què aporta això a l'usuari? Això us permet canviar el flux de treball de l'equip de manera molt flexible, utilitzant enfocaments familiars. Per exemple, els desenvolupadors poden emmagatzemar un projecte al mateix dipòsit que el backend. A les branques, a més de canviar la pròpia base de codi, el desenvolupador pot corregir els scripts de consulta i proves existents. Després de fer canvis al repositori (git, svn, mercurial, el que més us agradi), CI (el vostre favorit, no imposat per ningú) llança la nostra utilitat de consola testmace-cli, i l'informe rebut després de l'execució (per exemple, en format junit, que també és compatible amb testmace-cli) s'envia al sistema adequat. I el problema de seguretat esmentat ja no és un problema.

Com podeu veure, TestMace no imposa el seu ecosistema i paradigma. En canvi, s'adapta fàcilment als processos establerts.

Variables dinàmiques

TestMace segueix el concepte sense codi: si un problema es pot resoldre sense utilitzar codi, intentem oferir aquesta oportunitat. Treballar amb variables és exactament el tipus de funcionalitat on en la majoria dels casos podeu prescindir de programar.

Exemple: hem rebut una resposta del servidor i volem desar part de la resposta en una variable. A Postman, en un guió de prova (que és estrany en si mateix) escriurem alguna cosa com:

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

Però, segons la nostra opinió, escriure un guió per a un escenari tan senzill i utilitzat amb freqüència sembla redundant. Per tant, a TestMace és possible assignar una part de la resposta a una variable mitjançant la interfície gràfica. Mireu que senzill és:

Per què TestMace és millor que Postman

I ara amb cada sol·licitud aquesta variable dinàmica s'actualitzarà. Però podeu oposar-vos, argumentant que l'enfocament de Postman és més flexible i us permet no només fer una tasca, sinó també realitzar algun preprocessament. A continuació s'explica com modificar l'exemple anterior:

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

Bé, amb aquest propòsit TestMace té script node, que cobreix aquest escenari. Per reproduir el cas anterior, però ja executat per TestMace, heu de crear un node d'script seguint la sol·licitud i utilitzar el codi següent com a script:

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

Com podeu veure, la composició dels nodes també va servir bé aquí. I per a un cas tan senzill com el descrit anteriorment, simplement podeu assignar l'expressió ${crypto.MD5($response.data)} variable creada mitjançant la GUI!

Creació de proves mitjançant GUI

Postman us permet crear proves escrivint scripts (en el cas de Postman, això és JavaScript). Aquest enfocament té molts avantatges: flexibilitat gairebé il·limitada, disponibilitat de solucions ja fetes, etc.

Tanmateix, la realitat sovint és tal (no som així, la vida és així) que un provador no té habilitats de programació, però li agradaria aportar beneficis a l'equip ara mateix. En aquests casos, seguint el concepte sense codi, TestMace us permet crear proves senzilles mitjançant una GUI sense recórrer a escriure scripts. Aquí, per exemple, és com és el procés de creació d'una prova que compara valors per a la igualtat:

Per què TestMace és millor que Postman

Tanmateix, crear proves en un editor gràfic no elimina la possibilitat escriure proves en codi. Aquí hi ha totes les mateixes biblioteques que al node de l'script i chai per escriure proves.

Sovint sorgeixen situacions quan una determinada consulta o fins i tot un script sencer s'ha d'executar diverses vegades en diferents parts del projecte. Un exemple d'aquestes sol·licituds podria ser l'autorització personalitzada en diverses etapes, portar l'entorn a l'estat desitjat, etc. En general, parlant de llenguatges de programació, ens agradaria tenir funcions que es puguin reutilitzar en diferents parts de l'aplicació. A TestMace aquesta funció la realitza enllaç node És molt fàcil d'utilitzar:
1) crear una consulta o un script
2) crear un node de tipus Link
3) als paràmetres, especifiqueu un enllaç a l'script creat al primer pas

En una versió més avançada, podeu especificar quines variables dinàmiques de l'script es passen a un nivell superior en relació amb l'enllaç. Sona confús? Suposem que hem creat una carpeta amb el nom crear-publicació, dins del qual s'assigna una variable dinàmica a aquest node postId. Ara al node d'enllaç crear-post-enllaç podeu especificar explícitament que la variable postId assignat a un avantpassat crear-post-enllaç. Aquest mecanisme (de nou, en llenguatge de programació) es pot utilitzar per retornar un resultat d'una "funció". En general, és genial, DRY està en ple apogeu i de nou no es va danyar ni una línia de codi.

Per què TestMace és millor que Postman

Pel que fa a Postman, hi ha una sol·licitud de funció per reutilitzar les sol·licituds penjat des del 2015, i sembla que n'hi ha algunes pistesque estan treballant en aquest problema. En la seva forma actual, Postman, per descomptat, té la capacitat de canviar el fil d'execució, cosa que en teoria probablement fa possible implementar un comportament similar, però això és més un pirateig brut que un enfocament realment funcional.

Altres diferències

  • Major control sobre l'abast de les variables. L'àmbit més petit dins del qual es pot definir una variable a Postman és la col·lecció. TestMace us permet definir variables per a qualsevol consulta o carpeta. A la col·lecció Postman Share us permet exportar només col·leccions, mentre que a TestMace la compartició funciona per a qualsevol node
  • Suporta TestMace capçaleres heretables, que es pot substituir a les consultes fills per defecte. El carter té alguna cosa sobre això: la tasca, i fins i tot està tancat, però s'ofereix com a solució... utilitzar scripts. A TestMace, tot es configura mitjançant la GUI i hi ha una opció per desactivar opcionalment les capçaleres heretades en descendents específics
  • Desfer/Refer. Funciona no només en editar nodes, sinó també en moure, suprimir, canviar el nom i altres operacions que canvien l'estructura del projecte.
  • Els fitxers adjunts a les sol·licituds passen a formar part del projecte i s'emmagatzemen amb ell, alhora que estan perfectament sincronitzats, a diferència de Postman. (Sí, ja no cal que seleccioneu els fitxers manualment cada vegada que els inicieu i els transferiu als col·legues dels arxius)

Característiques que ja estan en camí

No vam poder resistir la temptació d'aixecar el vel del secret en els propers llançaments, sobretot quan la funcionalitat és molt saborosa i ja s'està polint abans del llançament. Així doncs, ens trobem.

Funcions

Com sabeu, Postman utilitza les anomenades variables dinàmiques per generar valors. La llista d'ells és impressionant i la gran majoria de funcions s'utilitzen per generar valors falsos. Per exemple, per generar un correu electrònic aleatori cal escriure:

{{$randomEmail}}

Tanmateix, com que es tracta de variables (encara que dinàmiques), no es poden utilitzar com a funcions: no són parametritzables, per tant no serà possible agafar un hash d'una cadena.

Tenim previst afegir funcions "honestes" a TestMace. Just dins de ${} serà possible no només accedir a una variable, sinó també cridar una funció. Aquells. si necessiteu generar el famós correu electrònic fals, simplement us escriurem

${faker.internet.email()}

A més del fet que és una funció, notareu que és possible cridar un mètode en un objecte. I en lloc d'una gran llista plana de variables dinàmiques, tenim un conjunt d'objectes agrupats lògicament.

Què passa si volem calcular el hash d'una cadena? Fàcilment!

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

Notareu que fins i tot podeu passar variables com a paràmetres! En aquest punt, un lector curiós pot sospitar que alguna cosa no va bé...

Ús de JavaScript a Expressions

... I per una bona raó! Quan s'estaven formant els requisits per a les funcions, de sobte vam arribar a la conclusió que javascript vàlid s'havia d'escriure en expressions. Així que ara ets lliure d'escriure expressions com:

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

I tot això sense scripts, directament als camps d'entrada!

Pel que fa a Postman, aquí només podeu utilitzar variables, i quan intenteu escriure la més mínima expressió, el validador maleeix i es nega a calcular-la.

Per què TestMace és millor que Postman

Compleció automàtica avançada

Actualment, TestMace té una compleció automàtica estàndard que s'assembla a això:

Per què TestMace és millor que Postman

Aquí, a més de la línia d'autocompletar, s'indica a què pertany aquesta línia. Aquest mecanisme només funciona en expressions envoltades de claudàtors ${}.

Com podeu veure, s'han afegit marcadors visuals que indiquen el tipus de variable (per exemple, cadena, nombre, matriu, etc.). També podeu canviar els modes d'emplenament automàtic (per exemple, podeu seleccionar l'emplenament automàtic amb variables o capçaleres). Però fins i tot això no és el més important!

En primer lloc, l'autocompleció funciona fins i tot en expressions (si és possible). Aquest és el que sembla:

Per què TestMace és millor que Postman

I, en segon lloc, la compleció automàtica ja està disponible als scripts. Fes una ullada a com funciona!

Per què TestMace és millor que Postman

No té sentit comparar aquesta funcionalitat amb Postman: l'autocompleció només es limita a llistes estàtiques de variables, capçaleres i els seus valors (corregiu-me si he oblidat alguna cosa). Els scripts no es completen automàticament :)

Conclusió

Octubre va marcar un any des de l'inici del desenvolupament del nostre producte. Durant aquest temps, vam aconseguir fer moltes coses i, en alguns aspectes, vam posar-nos al dia amb els nostres competidors. Però sigui com sigui, el nostre objectiu és fer una eina realment convenient per treballar amb API. Encara ens queda molta feina per fer, aquí teniu un pla aproximat per al desenvolupament del nostre projecte per l'any vinent: https://testmace.com/roadmap.

Els vostres comentaris ens permetran navegar millor per l'abundància de funcions, i el vostre suport ens dóna força i confiança que estem fent el correcte. Succeeix que avui és un dia important per al nostre projecte, el dia que es va publicar TestMace Caça de productes. Si us plau, recolzeu el nostre projecte, és molt important per a nosaltres. A més, avui hi ha una oferta temptadora a la nostra pàgina de PH, i és limitada

Font: www.habr.com

Afegeix comentari