PruebaMaza. Comienzo rápido

PruebaMaza. Comienzo rápido

Hola a todos. Poco a poco vamos saliendo de las sombras y continuamos la serie de artículos sobre nuestro producto. Después anterior artículo de revisión, recibimos muchos comentarios (en su mayoría positivos), sugerencias e informes de errores. Hoy mostraremos PruebaMaza en acción y podrás apreciar algunas de las características de nuestra aplicación. Para una inmersión más completa, le aconsejo que consulte nuestra documentación en http://docs-ru.testmace.com. ¡Entonces vamos!

Instalación

Empecemos por la banalidad. La aplicación está disponible y probada en tres plataformas: Linux, Windows y MacOS. Puede descargar el instalador para el sistema operativo que le interese desde nuestro sitio. Para usuarios de Linux es posible instalar paquete rápido. Realmente esperamos que Microsoft Store y App Store pronto se pongan manos a la obra (¿Es necesario? ¿Qué opinas?).

Escenario experimental

Elegimos el siguiente escenario estándar como nuestro sujeto de prueba:

  • Iniciar sesión: usuario - administrador, contraseña - contraseña
  • agregar una nueva entrada
  • Comprobemos que el registro se agregó correctamente.

probaremos en https://testmace-quick-start.herokuapp.com/. Es normal servidor json, perfecto para probar este tipo de aplicaciones. Acabamos de agregar autorización por token a todas las rutas del servidor json y creamos un método de inicio de sesión para recibir este token. Avanzaremos progresivamente, mejorando poco a poco nuestro proyecto.

Creando un proyecto e intentando crear una entidad sin autorización

Primero, creemos un nuevo proyecto (Archive->Nuevo proyecto). Si está iniciando la aplicación por primera vez, se abrirá automáticamente un nuevo proyecto. Primero, intentemos realizar una solicitud para crear un nuevo registro (en caso de que la creación de registros esté disponible sin autorización). Seleccione elementos del menú contextual del nodo Proyecto Agregar nodo -> Paso de solicitud. Establezca el nombre del nodo en crear-publicación. Como resultado, se creará un nuevo nodo en el árbol y se abrirá una pestaña para este nodo. Configuremos los siguientes parámetros de solicitud:

PruebaMaza. Comienzo rápido

Sin embargo, si intentamos cumplir con la solicitud, el servidor devolverá un código 401 y sin autorización no obtendremos nada en este servidor. Bueno, en general, como se esperaba).

Agregar una solicitud de autorización

Como ya se dijo, tenemos un punto final POST /login, que toma json como cuerpo de solicitud del formulario: {"username": "<username>", "password": "<password>"}Donde username и password (nuevamente, del párrafo introductorio anterior) tienen significados admin и password respectivamente. En respuesta, este punto final devuelve json como {"token": "<token>"}. Lo usaremos para autorización. Vamos a crear Paso de solicitud nodo con nombre Inicie sesión, actuará como un antepasado Proyecto nodo Usando arrastrar y soltar, mueva un nodo determinado en el árbol más alto que el nodo crear-publicación. Configuremos los siguientes parámetros para la solicitud recién creada:

Ejecutemos la solicitud y recibamos el código doscientos con el token en la respuesta. Algo como esto:

PruebaMaza. Comienzo rápido

Refactorización: eliminar la duplicación de dominios

Hasta el momento las solicitudes no están vinculadas en un único script. Pero este no es el único inconveniente. Si miras de cerca, notarás que al menos el dominio está duplicado en ambas solicitudes. No es bueno. Es hora de refactorizar esta parte del script futuro y las variables nos ayudarán con esto.

En una primera aproximación, las variables cumplen la misma función que en otras herramientas y lenguajes de programación similares: eliminar duplicaciones, aumentar la legibilidad, etc. Puedes leer más sobre variables en nuestra documentación. En este caso, necesitaremos variables de usuario.

Definamos una variable a nivel del nodo Proyecto. domain con valor https://testmace-quick-start.herokuapp.com. Para esto es necesario

  • Abra la pestaña con este nodo y haga clic en el icono de la calculadora en la parte superior derecha
  • Haga clic en + AÑADIR VARIABLES
  • Introduzca el nombre y el valor de la variable
    En nuestro caso, el cuadro de diálogo con la variable agregada se verá así:

PruebaMaza. Comienzo rápido

DE ACUERDO. Ahora, debido a la herencia, podemos usar esta variable en descendientes de cualquier nivel de anidamiento. En nuestro caso estos son nodos. Inicie sesión и crear-publicación. Para utilizar una variable en un campo de texto, debe escribir ${<variable_name>}. Por ejemplo, la URL de inicio de sesión se convierte a ${domain}/login, respectivamente para crear-publicación La URL del nodo se verá así. ${domain}/posts.

Así, guiados por el principio DRY, hemos mejorado ligeramente el escenario.

Guarde el token en una variable

Ya que estamos hablando de variables, ampliemos un poco este tema. Por el momento, en caso de iniciar sesión correctamente, recibimos del servidor un token de autorización, que necesitaremos en solicitudes posteriores. Guardemos este token en una variable. Porque el valor de la variable se determinará durante la ejecución del script, utilizamos un mecanismo especial para esto: variables dinámicas.

Primero, realicemos una solicitud de inicio de sesión. en la pestaña Analizado responda, mueva el cursor sobre el token y en el menú contextual (que se llama con el botón derecho del mouse o haciendo clic en el botón ...) seleccione el elemento Asignar a variable. Aparecerá un cuadro de diálogo con los siguientes campos:

  • Path — qué parte de la respuesta se toma (en nuestro caso es body.token)
  • Valor actual — qué valor se encuentra a lo largo del Camino (en nuestro caso, este es el valor del token)
  • Nombre de la variable — nombre de la variable donde Valor actual será preservado. En nuestro caso será token
  • Nodo — en cuál de los ancestros se creará la variable Nombre de la variable. Seleccionemos Proyecto

El cuadro de diálogo completo se ve así:

PruebaMaza. Comienzo rápido

Ahora cada vez que se ejecuta el nodo Inicie sesión variable dinámica token se actualizará con el nuevo valor de la respuesta. Y esta variable se almacenará en Proyecto nodo y, gracias a la herencia, estará disponible para los descendientes.

Para acceder a variables dinámicas, debe utilizar variable incorporada $dynamicVar. Por ejemplo, para acceder a un token almacenado, debe llamar ${$dynamicVar.token}.

Pasamos el token de autorización a las solicitudes.

En los pasos anteriores recibimos el token de autorización y todo lo que tenemos que hacer es agregar un encabezado Authorization con significado Bearer <tokenValue> en todas las solicitudes que requieran autorización, incluidas crear-publicación. Hay varias formas de hacer esto:

  1. Copie manualmente el token y agregue un encabezado de autorización a las solicitudes de interés. El método funciona, pero su uso se limita únicamente a solicitudes del tipo “hecho y desechado”. No apto para la ejecución repetida de scripts.
  2. Utilice la funcionalidad autorización.
  3. Utilizar encabezados predeterminados

Usar el segundo método parece obvio, pero en el contexto de este artículo, este enfoque es... poco interesante. Bueno, de verdad: el mecanismo de autorización más menos le resulta familiar de otras herramientas (incluso si tenemos cosas como autorización herencia) y es poco probable que genere preguntas.

¡Otra cosa son los encabezados predeterminados! En pocas palabras, los encabezados predeterminados son encabezados HTTP heredados que se agregan a la solicitud de forma predeterminada a menos que se deshabiliten explícitamente. Con esta funcionalidad, puede, por ejemplo, implementar una autorización personalizada o simplemente deshacerse de la duplicación en los scripts. Usemos esta función para pasar un token en los encabezados.

Anteriormente, guardábamos prudentemente el token en una variable dinámica. $dynamicVar.token en el nivel de nodo del proyecto. Ya sólo queda hacer lo siguiente:

  1. Definir título predeterminado Authorization con valor Bearer ${$dynamicVar.token} en el nivel de nodo del proyecto. Para hacer esto, en la interfaz Proyecto del nodo necesita abrir un cuadro de diálogo con encabezados predeterminados (botón Cabezales en la esquina superior derecha) y agregue el título correspondiente. El cuadro de diálogo con los valores completados se verá así:
    PruebaMaza. Comienzo rápido
  2. Deshabilite este encabezado de la solicitud de inicio de sesión. Esto es comprensible: en el momento de iniciar sesión, todavía no tenemos un token y lo instalaremos con esta solicitud. Por lo tanto, en la interfaz de inicio de sesión de la solicitud en la pestaña Cabezales en la región de Heredado desmarque el encabezado Autorización.

Eso es todo. Ahora el encabezado de autorización se agregará a todas las solicitudes que sean secundarias del nodo Proyecto, excepto al nodo de inicio de sesión. Resulta que en esta etapa ya tenemos un script listo y lo único que tenemos que hacer es ejecutarlo. Puede ejecutar el script seleccionando Ejecutar en el menú contextual del nodo Proyecto.

Comprobando la exactitud de la creación de la publicación.

En esta etapa, nuestro script puede iniciar sesión y, utilizando un token de autorización, crear una publicación. Sin embargo, debemos asegurarnos de que la publicación recién creada tenga el nombre correcto. Es decir, en esencia, solo queda hacer lo siguiente:

  • Envíe una solicitud para recibir una publicación por identificación,
  • Comprueba que el nombre recibido del servidor coincide con el nombre enviado al crear la publicación.

Veamos el primer paso. Dado que el valor de identificación se determina durante la ejecución del script, es necesario crear una variable dinámica (llamémosla postId) del nodo crear-publicación en el nivel de nodo del proyecto. Ya sabemos cómo hacer esto, solo consulta la sección Guarde el token en una variable. Todo lo que queda es crear una solicitud para recibir una publicación usando esta identificación. Para hacer esto, creemos un RequestStep. obtener-publicar con los siguientes parámetros:

  • Tipo de solicitud: OBTENER
  • URL: ${dominio}/posts/${$dynamicVar.postId}

Para implementar el segundo paso, necesitamos familiarizarnos con afirmación nudo. Un nodo de afirmación es un nodo que le permite escribir cheques para solicitudes específicas. Cada nodo de Aserción puede contener varias aserciones (verificaciones). Puede leer más sobre todo tipo de afirmaciones en nuestro documentación. Usaremos Compare afirmación con operador equal. Hay varias formas de crear afirmaciones:

  1. Largo. Cree manualmente un nodo Aserción desde el menú contextual del nodo RequestStep. En el nodo Aserción creado, agregue la aserción de interés y complete los campos.
  2. Rápido. Cree un nodo de Aserción junto con una aserción de la respuesta del nodo RequestStep usando el menú contextual

Usemos el segundo método. Así es como se verá en nuestro caso.

PruebaMaza. Comienzo rápido

Para aquellos que no entienden, esto es lo que está pasando:

  1. Hacer una solicitud en el nodo obtener-publicar
  2. En la pestaña Analizado responder, llame al menú contextual y seleccione Crear aserción -> Compara -> Igual

¡Felicitaciones, hemos creado nuestra primera prueba! Sencillo, ¿no? Ahora puedes ejecutar el script por completo y disfrutar del resultado. Ya solo queda refactorizarlo un poco y sacarlo. title en una variable separada. Pero te dejaremos esto como tarea)

Conclusión

En esta guía, creamos un escenario completo y al mismo tiempo revisamos algunas de las características de nuestro producto. Por supuesto, no utilizamos todas las funciones y en los siguientes artículos brindaremos una descripción detallada de las capacidades de TestMace. ¡Manténganse al tanto!

PD: Para aquellos que son demasiado vagos para reproducir todos los pasos, amablemente los hemos grabado. repositorio con el proyecto del artículo. Puedes abrirlo con Archive -> Proyecto abierto y seleccione la carpeta Proyecto.

Fuente: habr.com

Añadir un comentario