TestMace. Inicio rápido

TestMace. Inicio rápido

Ola a todos. Aos poucos estamos saíndo das sombras e continuando a serie de artigos sobre o noso produto. Despois anterior artigo de revisión, recibimos moitos comentarios (principalmente positivos), suxestións e informes de erros. Hoxe imos amosar TestMace en acción e poderás apreciar algunhas das funcións da nosa aplicación. Para unha inmersión máis completa, aconsello que consulte a nosa documentación en http://docs-ru.testmace.com. Entón, imos!

Instalación

Comecemos pola banalidade. A aplicación está dispoñible e probada en tres plataformas: Linux, Windows e MacOS. Podes descargar o instalador para o SO que che interese o noso sitio web. Para os usuarios de Linux é posible instalar paquete a presión. Agardamos de verdade que a Microsoft Store e a App Store se acheguen pronto a ela (¿É necesario? Que opinas?).

Escenario experimental

Escollemos o seguinte escenario estándar como tema de proba:

  • Iniciar sesión: usuario - administrador, contrasinal - contrasinal
  • engadir unha nova entrada
  • Comprobamos que o rexistro foi engadido correctamente

Probaremos https://testmace-quick-start.herokuapp.com/. Isto é normal json-server, perfecto para probar este tipo de aplicacións. Acabamos de engadir autorización por token a todas as rutas do servidor json e creamos un método de inicio de sesión para recibir este token. Iremos avanzando progresivamente, mellorando paulatinamente o noso proxecto.

Creando un proxecto e intentando crear unha entidade sen autorización

Primeiro, imos crear un novo proxecto (Arquivo->Novo proxecto). Se está a lanzar a aplicación por primeira vez, abrirase automaticamente un novo proxecto. En primeiro lugar, imos tentar facer unha solicitude para crear un novo rexistro (no caso de que a creación de rexistros estea dispoñible sen autorización). Seleccione elementos no menú contextual do nodo do proxecto Engadir nodo -> Paso de solicitude. Establece o nome do nodo en crear-publicación. Como resultado, crearase un novo nodo na árbore e abrirase unha pestana para este nodo. Establecemos os seguintes parámetros de solicitude:

TestMace. Inicio rápido

Non obstante, se tentamos cumprir a solicitude, o servidor devolverá un código 401 e sen autorización non conseguiremos nada neste servidor. Ben, en xeral, como era de esperar).

Engadir unha solicitude de autorización

Como xa se dixo, temos un punto final POST /login, que toma json como un corpo de solicitude do formulario: {"username": "<username>", "password": "<password>"}onde username и password (de novo, dende o parágrafo introdutorio anterior) teñen significados admin и password respectivamente. En resposta, este punto final devolve json like {"token": "<token>"}. Usarémolo para a autorización. Imos crear Paso de solicitude nodo con nome Iniciar sesión, actuará como antepasado Proxecto nodo Usando arrastrar e soltar, move un determinado nodo da árbore máis alto que o nodo crear-publicación. Axustemos os seguintes parámetros á solicitude recentemente creada:

Imos executar a solicitude e recibir o código douscentos co token na resposta. Algo coma isto:

TestMace. Inicio rápido

Refactorización: eliminación da duplicación de dominios

Ata agora as solicitudes non están ligadas nun só script. Pero este non é o único inconveniente. Se observas con atención, notarás que polo menos o dominio está duplicado en ambas as solicitudes. Non é bo. É hora de refactorizar esta parte do script futuro, e as variables axudaranos con isto.

Nunha primeira aproximación, as variables cumpren o mesmo papel que noutras ferramentas e linguaxes de programación similares: eliminando a duplicación, aumentando a lexibilidade, etc. Podes ler máis sobre as variables en nosa documentación. Neste caso, necesitaremos variables de usuario.

Imos definir unha variable a nivel de nodo Proxecto domain con valor https://testmace-quick-start.herokuapp.com. Para iso necesitas

  • Abre a pestana con este nodo e fai clic na icona da calculadora na parte superior dereita
  • Prema en + ENGADIR VARIABLE
  • Introduza o nome e o valor da variable
    No noso caso, o diálogo coa variable engadida terá o seguinte aspecto:

TestMace. Inicio rápido

OK. Agora, debido á herdanza, podemos usar esta variable nos descendentes de calquera nivel de anidación. No noso caso son nós Iniciar sesión и crear-publicación. Para usar unha variable nun campo de texto, cómpre escribir ${<variable_name>}. Por exemplo, o URL de inicio de sesión convértese a ${domain}/login, respectivamente para crear-publicación o URL do nodo terá o aspecto ${domain}/posts.

Así, guiados polo principio DRY, melloramos lixeiramente o escenario.

Garda o token nunha variable

Xa que estamos a falar de variables, imos ampliar un pouco este tema. Polo momento, en caso de inicio de sesión exitoso, recibimos do servidor un token de autorización, que necesitaremos en solicitudes posteriores. Imos gardar este token nunha variable. Porque o valor da variable determinarase durante a execución do script, usamos un mecanismo especial para iso - variables dinámicas.

Primeiro, imos realizar unha solicitude de inicio de sesión. Na pestana Analizado responder, move o cursor sobre o token e no menú contextual (que se chama co botón dereito do rato ou facendo clic no botón ...) selecciona o elemento Asignar a variable. Aparecerá un diálogo cos seguintes campos:

  • Camiño — que parte da resposta se toma (no noso caso é body.token)
  • Valor actual — que valor se atopa ao longo do Camiño (no noso caso, este é o valor do símbolo)
  • Nome variable — nome da variable onde Valor actual conservarase. No noso caso será token
  • Nodo — en cal dos antepasados ​​se creará a variable Nome variable. Seleccione Proxecto

O diálogo completado é así:

TestMace. Inicio rápido

Agora cada vez que se executa o nodo Iniciar sesión variable dinámica token actualizarase co novo valor da resposta. E esta variable almacenarase en Proxecto nodo e, grazas á herdanza, estará dispoñible para os descendentes.

Para acceder ás variables dinámicas, debes usar variable incorporada $dynamicVar. Por exemplo, para acceder a un token almacenado, cómpre chamar ${$dynamicVar.token}.

Pasamos o token de autorización a solicitudes

Nos pasos anteriores recibimos o token de autorización e só temos que engadir unha cabeceira Authorization con significado Bearer <tokenValue> en todas as solicitudes que requiran autorización, incluíndo crear-publicación. Hai varias formas de facelo:

  1. Copia manualmente o token e engade unha cabeceira de autorización ás solicitudes de interese. O método funciona, pero o seu uso limítase só a solicitudes do tipo "feito e tirado". Non é adecuado para a execución repetida de scripts
  2. Use a funcionalidade autorización.
  3. Usa cabeceiras predeterminadas

Usar o segundo método parece obvio, pero no contexto deste artigo, este enfoque é... pouco interesante. Ben, realmente: o mecanismo de autorización máis menos é familiar para ti doutras ferramentas (aínda que teñamos cousas como herdanza de autorización) e é improbable que suscite preguntas.

Outra cousa son as cabeceiras predeterminadas! En poucas palabras, as cabeceiras predeterminadas son cabeceiras HTTP herdadas que se engaden á solicitude de forma predeterminada a non ser que se desactiven explícitamente. Usando esta funcionalidade, pode, por exemplo, implementar autorización personalizada ou simplemente desfacerse da duplicación nos scripts. Usemos esta función para pasar un token nas cabeceiras.

Anteriormente, gardamos prudentemente o token nunha variable dinámica $dynamicVar.token a nivel de nodo do proxecto. Todo o que queda é facer o seguinte:

  1. Definir título predeterminado Authorization con valor Bearer ${$dynamicVar.token} a nivel de nodo do proxecto. Para iso, na interface de proxecto do nodo cómpre abrir un diálogo con títulos predeterminados (botón Cabeceiras na esquina superior dereita) e engade un título correspondente. O diálogo cos valores cubertos terá o seguinte aspecto:
    TestMace. Inicio rápido
  2. Desactiva esta cabeceira desde a solicitude de inicio de sesión. Isto é comprensible: no momento de iniciar sesión, aínda non temos un token e instalarémolo con esta solicitude. Polo tanto, na interface de inicio de sesión da solicitude na pestana Cabeceiras na zona de Herdado desmarque a cabeceira Autorización.

Iso é todo. Agora engadirase a cabeceira de autorización a todas as solicitudes que sexan fillas do nodo do Proxecto, excepto ao nodo de inicio de sesión. Resulta que a estas alturas xa temos un guión preparado e só temos que lanzalo. Pode executar o script seleccionando Correr no menú contextual do nodo do proxecto.

Comprobación da corrección da creación da publicación

Nesta fase, o noso script pode iniciar sesión e, mediante un token de autorización, crear unha publicación. Non obstante, debemos asegurarnos de que a publicación recentemente creada teña o nome correcto. É dicir, en esencia, só queda facer o seguinte:

  • Envía unha solicitude para recibir unha publicación por ID,
  • Comproba que o nome recibido do servidor coincide co nome enviado ao crear a publicación

Vexamos o primeiro paso. Dado que o valor de id se determina durante a execución do script, cómpre crear unha variable dinámica (chamémoslle postId) do nodo crear-publicación a nivel de nodo do proxecto. Xa sabemos como facelo, só tes que consultar o apartado Garda o token nunha variable. Todo o que queda é crear unha solicitude para recibir unha publicación usando este identificador. Para iso, creemos un RequestStep get-post cos seguintes parámetros:

  • Tipo de solicitude: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Para implementar o segundo paso, necesitamos familiarizarnos Afirmación nó. Un nodo de aserción é un nodo que che permite escribir comprobacións para solicitudes específicas. Cada nodo de asercións pode conter varias asercións (comprobacións). Podes ler máis sobre todo tipo de afirmacións no noso documentación. Usaremos Compare afirmación con operador equal. Hai varias formas de crear asercións:

  1. Longo. Crea manualmente un nodo de aserción desde o menú contextual do nodo RequestStep. No nodo Aserción creado, engade a afirmación de interese e enche os campos.
  2. Rápido. Cree un nodo de aserción xunto cunha aserción da resposta do nodo RequestStep mediante o menú contextual

Usemos o segundo método. Así será o noso caso.

TestMace. Inicio rápido

Para os que non entendan, aquí está o que está a pasar:

  1. Fai unha solicitude no nodo get-post
  2. Na pestana Analizado responder, chamar ao menú contextual e seleccionar Crear afirmación -> comparar -> igual

Parabéns, creamos a nosa primeira proba! Simple, non? Agora podes executar o script completamente e gozar do resultado. Só queda refactorizalo un pouco e sacalo title nunha variable separada. Pero deixarémosche isto como tarefa)

Conclusión

Nesta guía, creamos un escenario completo e, ao mesmo tempo, revisamos algunhas das características do noso produto. Por suposto, non utilizamos todas as funcións e nos seguintes artigos proporcionaremos unha visión xeral detallada das capacidades de TestMace. Estade atentos!

PD: Para aqueles que son demasiado preguiceiros para reproducir todos os pasos, temos amablemente gravado repositorio co proxecto do artigo. Podes abrilo con Arquivo -> Proxecto aberto e seleccione o cartafol Proxecto.

Fonte: www.habr.com

Engadir un comentario