Por qué TestMace es mejor que Postman

Por qué TestMace es mejor que Postman

Hola a todos, aquí tenéis. PruebaMaza! Quizás mucha gente nos conozca por nuestro anterior artículos. Para aquellos que acaban de unirse: estamos desarrollando un IDE para trabajar con la API TestMace. La pregunta más frecuente al comparar TestMace con productos de la competencia es "¿En qué se diferencia de Postman?" Decidimos que era hora de dar una respuesta detallada a esta pregunta. A continuación describimos nuestras ventajas sobre Cartero.

Dividiendo en nodos

Si trabaja con Postman, sabrá que la interfaz de solicitud contiene todas las funciones necesarias. Hay scripts, pruebas y, de hecho, las consultas mismas. Esto lo hace más fácil para los principiantes, pero en escenarios grandes este enfoque no es flexible. ¿Qué sucede si desea crear varias consultas y realizar una agregación de ellas? ¿Qué sucede si desea ejecutar un script sin una solicitud o varios scripts separados lógicamente seguidos? Después de todo, sería una buena idea separar las pruebas de los scripts de utilidades habituales. Además, el enfoque de "agregar todas las funciones en un nodo" no es escalable: la interfaz se sobrecarga rápidamente.

TestMace inicialmente divide toda la funcionalidad en diferentes tipos de nodos. ¿Le gustaría hacer una solicitud? Es para ti paso de solicitud nodo ¿Quieres escribir un guión? Es para ti guión nodo ¿Necesita pruebas? Por favor - afirmación nodo Oh, sí, todavía puedes resumir todo esto en carpeta nodo Y todo esto se puede combinar fácilmente entre sí. Este enfoque no sólo es muy flexible, sino que también, de acuerdo con el principio de responsabilidad única, le permite utilizar sólo lo que realmente necesita en este momento. ¿Por qué necesito scripts y pruebas si sólo quiero realizar una solicitud?

Formato de proyecto legible por humanos

Existe una diferencia conceptual entre TestMace y Postman en la forma en que se almacenan. En Postman, todas las solicitudes se almacenan en algún lugar del almacenamiento local. Si es necesario compartir solicitudes entre varios usuarios, entonces debe utilizar la sincronización incorporada. De hecho, se trata de un enfoque generalmente aceptado, aunque no exento de inconvenientes. ¿Qué pasa con la seguridad de los datos? Después de todo, es posible que la política de algunas empresas no permita almacenar datos con terceros. Sin embargo, creemos que TestMace tiene algo mejor que ofrecer. Y el nombre de esta mejora es "formato de proyecto legible por humanos".

Comencemos con el hecho de que en TestMace, en principio, hay una entidad de "proyecto". Y la aplicación se desarrolló inicialmente con miras a almacenar proyectos en sistemas de control de versiones: el árbol del proyecto se proyecta casi uno a uno en la estructura del archivo, yaml se utiliza como formato de almacenamiento (sin corchetes ni comas adicionales) y el La representación de archivos de cada nodo se describe en detalle en la documentación con comentarios. Pero en la mayoría de los casos no buscará allí: todos los nombres de los campos tienen nombres lógicos.

¿Qué le aporta esto al usuario? Esto le permite cambiar el flujo de trabajo del equipo de manera muy flexible, utilizando enfoques familiares. Por ejemplo, los desarrolladores pueden almacenar un proyecto en el mismo repositorio que el backend. En las sucursales, además de cambiar la base del código en sí, el desarrollador puede corregir los scripts de consulta y las pruebas existentes. Después de realizar cambios en el repositorio (git, svn, mercurial, lo que más te guste), CI (tu favorito, no impuesto por nadie) inicia nuestra utilidad de consola. pruebamace-cliy el informe recibido después de la ejecución (por ejemplo, en formato junit, que también es compatible con testmace-cli) se envía al sistema apropiado. Y el problema de seguridad mencionado anteriormente ya no es un problema.

Como puede ver, TestMace no impone su ecosistema y paradigma. Más bien, encaja fácilmente en los procesos establecidos.

Variables dinámicas

TestMace sigue el concepto sin código: si un problema se puede resolver sin usar código, intentamos brindar esta oportunidad. Trabajar con variables es exactamente el tipo de funcionalidad que en la mayoría de los casos se puede hacer sin programación.

Ejemplo: recibimos una respuesta del servidor y queremos guardar parte de la respuesta en una variable. En Postman, en un script de prueba (lo cual es extraño en sí mismo) escribiríamos algo como:

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

Pero en nuestra opinión, escribir un guión para un escenario tan simple y de uso frecuente parece redundante. Por lo tanto, en TestMace es posible asignar una parte de la respuesta a una variable usando la interfaz gráfica. Mira que sencillo es:

Por qué TestMace es mejor que Postman

Y ahora con cada solicitud se actualizará esta variable dinámica. Pero se puede objetar, argumentando que el enfoque Postman es más flexible y permite no solo realizar una tarea, sino también realizar algún preprocesamiento. A continuación se explica cómo modificar el ejemplo anterior:

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

Bueno, para este propósito TestMace tiene guión nodo, que cubre este escenario. Para reproducir el caso anterior, pero ya ejecutado por TestMace, es necesario crear un nodo de script siguiendo la solicitud y utilizar el siguiente código como script:

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

Como puede ver, la composición de los nodos también funcionó bien aquí. Y para un caso tan simple como el descrito anteriormente, simplemente puede asignar la expresión ${crypto.MD5($response.data)} variable creada a través de la GUI!

Creación de pruebas a través de GUI

Postman le permite crear pruebas escribiendo scripts (en el caso de Postman, es JavaScript). Este enfoque tiene muchas ventajas: flexibilidad casi ilimitada, disponibilidad de soluciones listas para usar, etc.

Sin embargo, la realidad suele ser tal (no somos así, la vida es así) que un tester no tiene conocimientos de programación, pero le gustaría aportar beneficios al equipo ahora mismo. Para tales casos, siguiendo el concepto sin código, TestMace le permite crear pruebas simples a través de una GUI sin recurrir a escribir scripts. Así es, por ejemplo, cómo se ve el proceso de creación de una prueba que compara valores para determinar la igualdad:

Por qué TestMace es mejor que Postman

Sin embargo, crear pruebas en un editor gráfico no elimina la posibilidad escribir pruebas en código. Todas las mismas bibliotecas están aquí como en el nodo de secuencia de comandos, y chai para exámenes de redacción.

A menudo surgen situaciones en las que una determinada consulta o incluso un script completo debe ejecutarse varias veces en diferentes partes del proyecto. Un ejemplo de este tipo de solicitudes podría ser una autorización personalizada de varias etapas, llevar el entorno al estado deseado, etc. En general, hablando en términos de lenguajes de programación, nos gustaría tener funciones que se puedan reutilizar en diferentes partes de la aplicación. En TestMace esta función la realiza liga nodo Es muy fácil de usar:
1) crear una consulta o script
2) crear un nodo de tipo Enlace
3) en los parámetros, especifique un enlace al script creado en el primer paso

En una versión más avanzada, puede especificar qué variables dinámicas del script se pasan a un nivel superior en relación con el enlace. ¿Suena confuso? Digamos que creamos una carpeta con el nombre crear-publicación, dentro del cual se asigna una variable dinámica a este nodo postId. Ahora en el nodo Enlace crear-post-enlace puedes especificar explícitamente que la variable postId asignado a un antepasado crear-post-enlace. Este mecanismo (nuevamente, en lenguaje de programación) se puede utilizar para devolver un resultado de una "función". En general, es genial, DRY está en pleno apogeo y nuevamente no se dañó ni una sola línea de código.

Por qué TestMace es mejor que Postman

En cuanto a Postman, existe una solicitud de función para reutilizar solicitudes. colgado desde 2015, y parece que incluso hay algunas pistasque están trabajando en este problema. En su forma actual, Postman, por supuesto, tiene la capacidad de cambiar el hilo de ejecución, lo que en teoría probablemente permite implementar un comportamiento similar, pero esto es más un truco sucio que un enfoque realmente funcional.

Otras diferencias

  • Mayor control sobre el alcance de las variables. El ámbito más pequeño dentro del cual se puede definir una variable en Postman es la colección. TestMace le permite definir variables para cualquier consulta o carpeta. En Postman Share la colección le permite exportar solo colecciones, mientras que en TestMace el uso compartido funciona para cualquier nodo.
  • Soportes de TestMace encabezados heredables, que se puede sustituir en consultas secundarias de forma predeterminada. El cartero tiene algo sobre esto: desafío, e incluso está cerrado, pero se ofrece como solución... usar guiones. En TestMace, todo esto se configura a través de la GUI y existe una opción para deshabilitar opcionalmente los encabezados heredados en descendientes específicos.
  • Deshacer rehacer. Funciona no solo al editar nodos, sino también al mover, eliminar, renombrar y otras operaciones que cambian la estructura del proyecto.
  • Los archivos adjuntos a las solicitudes pasan a formar parte del proyecto y se almacenan con él, estando perfectamente sincronizados, a diferencia de Postman. (Sí, ya no necesita seleccionar archivos manualmente cada vez que inicia y transferirlos a sus colegas en archivos)

Funciones que ya están en camino

No pudimos resistir la tentación de levantar el velo del secreto en los próximos lanzamientos, especialmente cuando la funcionalidad es muy sabrosa y ya está en proceso de pulido previo al lanzamiento. Entonces, nos vemos.

funciones

Como sabes, Postman utiliza las llamadas variables dinámicas para generar valores. La lista de ellos es impresionante. y la gran mayoría de funciones se utilizan para generar valores falsos. Por ejemplo, para generar un correo electrónico aleatorio es necesario escribir:

{{$randomEmail}}

Sin embargo, como se trata de variables (aunque dinámicas), no se pueden utilizar como funciones: no son parametrizables, por lo que no será posible tomar un hash de una cadena.

Planeamos agregar funciones "honestas" a TestMace. Justo dentro de ${} será posible no sólo acceder a una variable, sino también llamar a una función. Aquellos. Si necesita generar el famoso correo electrónico falso, simplemente le escribiremos

${faker.internet.email()}

Además de que es una función, notarás que es posible llamar a un método sobre un objeto. Y en lugar de una gran lista plana de variables dinámicas, tenemos un conjunto de objetos agrupados lógicamente.

¿Qué pasa si queremos calcular el hash de una cadena? ¡Fácilmente!

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

¡Notarás que incluso puedes pasar variables como parámetros! En este punto, un lector curioso puede sospechar que algo anda mal...

Usando JavaScript en expresiones

... ¡Y con razón! Cuando se estaban formando los requisitos para las funciones, de repente llegamos a la conclusión de que el javascript válido debería escribirse en expresiones. Ahora eres libre de escribir expresiones como:

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

¡Y todo esto sin scripts, directamente en los campos de entrada!

En cuanto a Postman, aquí solo puedes usar variables, y cuando intentas escribir la más mínima expresión, el validador maldice y se niega a calcularla.

Por qué TestMace es mejor que Postman

Autocompletado avanzado

Actualmente TestMace tiene un autocompletado estándar que se ve así:

Por qué TestMace es mejor que Postman

Aquí, además de la línea de autocompletar, se indica a qué pertenece esta línea. Este mecanismo sólo funciona en expresiones entre corchetes ${}.

Como puede ver, se han agregado marcadores visuales que indican el tipo de variable (por ejemplo, cadena, número, matriz, etc.). También puede cambiar los modos de autocompletar (por ejemplo, puede seleccionar el autocompletado con variables o encabezados). ¡Pero ni siquiera esto es lo más importante!

Primero, el autocompletado funciona incluso en expresiones (cuando sea posible). Esto es lo que parece:

Por qué TestMace es mejor que Postman

Y en segundo lugar, el autocompletado ahora está disponible en los scripts. ¡Mira cómo funciona!

Por qué TestMace es mejor que Postman

No tiene sentido comparar esta funcionalidad con Postman: el autocompletado se limita solo a listas estáticas de variables, encabezados y sus valores (corríjame si olvidé algo). Los scripts no se completan automáticamente :)

Conclusión

Octubre marcó un año desde el inicio del desarrollo de nuestro producto. Durante este tiempo logramos hacer muchas cosas y, en algunos aspectos, alcanzamos a nuestros competidores. Pero sea como sea, nuestro objetivo es crear una herramienta verdaderamente conveniente para trabajar con API. Todavía tenemos mucho trabajo por hacer, aquí hay un plan aproximado para el desarrollo de nuestro proyecto para el próximo año: https://testmace.com/roadmap.

Sus comentarios nos permitirán navegar mejor por la gran cantidad de funciones y su apoyo nos da fuerza y ​​confianza de que estamos haciendo lo correcto. Sucede que hoy es un día importante para nuestro proyecto: el día en que se publicó TestMace el ProductHunt. Por favor apoye nuestro proyecto, es muy importante para nosotros. Además, hoy hay una oferta tentadora en nuestra página de PH y es limitada.

Fuente: habr.com

Añadir un comentario