Teste Mace. Início rápido

Teste Mace. Início rápido

Olá a todos. Aos poucos estamos emergindo das sombras e continuando a série de artigos sobre nosso produto. Depois anterior artigo de revisão, recebemos muitos comentários (principalmente positivos), sugestões e relatórios de bugs. Hoje vamos mostrar TestMace em ação e você poderá apreciar alguns dos recursos do nosso aplicativo. Para uma imersão mais completa, aconselho consultar nossa documentação em http://docs-ru.testmace.com. Então vamos!

Instalação

Comecemos pela banalidade. O aplicativo está disponível e testado em três plataformas - Linux, Windows, MacOS. Você pode baixar o instalador do sistema operacional de seu interesse em nosso site. Para usuários Linux é possível instalar pacote instantâneo. Nós realmente esperamos que a Microsoft Store e a App Store em breve resolvam isso (é necessário? O que você acha?).

Cenário experimental

Escolhemos o seguinte cenário padrão como objeto de teste:

  • Login: usuário - admin, senha - senha
  • adicione uma nova entrada
  • Vamos verificar se o registro foi adicionado corretamente

Vamos testar em https://testmace-quick-start.herokuapp.com/. Isto é normal json-servidor, perfeito para testar esses aplicativos. Acabamos de adicionar autorização por token a todas as rotas do json-server e criamos um método de login para receber esse token. Iremos avançar progressivamente, melhorando gradativamente o nosso projeto.

Criando um projeto e tentando criar uma entidade sem autorização

Primeiro, vamos criar um novo projeto (Envie o->Novo projeto). Se você estiver iniciando o aplicativo pela primeira vez, um novo projeto será aberto automaticamente. Primeiro, vamos tentar fazer uma solicitação de criação de um novo registro (caso a criação de registros esteja disponível sem autorização). Selecione itens do menu de contexto do nó Projeto Adicionar nó -> Etapa de solicitação. Defina o nome do nó como criar-post. Como resultado, um novo nó será criado na árvore e uma guia para este nó será aberta. Vamos definir os seguintes parâmetros de solicitação:

Teste Mace. Início rápido

Porém, se tentarmos atender a solicitação, o servidor retornará um código 401 e sem autorização não obteremos nada neste servidor. Bem, em geral, como esperado).

Adicionando uma solicitação de autorização

Como já foi dito, temos um endpoint POST /login, que usa json como corpo da solicitação no formato: {"username": "<username>", "password": "<password>"}Onde username и password (novamente, do parágrafo introdutório acima) têm significados admin и password respectivamente. Em resposta, este endpoint retorna json como {"token": "<token>"}. Vamos usá-lo para autorização. Vamos criar Etapa de solicitação nó com nome entrar, atuará como um ancestral Projeto nó Usando arrastar e soltar, mova um determinado nó na árvore para cima do nó criar-post. Vamos definir os seguintes parâmetros para a solicitação recém-criada:

Vamos executar a solicitação e receber o ducentésimo código com o token na resposta. Algo assim:

Teste Mace. Início rápido

Refatoração: removendo duplicação de domínio

Até agora as solicitações não estão vinculadas em um único script. Mas esta não é a única desvantagem. Se você olhar com atenção, notará que pelo menos o domínio está duplicado em ambas as solicitações. Não é bom. É hora de refatorar esta parte do script futuro, e as variáveis ​​nos ajudarão com isso.

Numa primeira aproximação, as variáveis ​​desempenham o mesmo papel que em outras ferramentas e linguagens de programação semelhantes - eliminando duplicação, aumentando a legibilidade, etc. Você pode ler mais sobre variáveis ​​em nossa documentação. Neste caso, precisaremos de variáveis ​​de usuário.

Vamos definir uma variável no nível do nó do projeto domain com valor https://testmace-quick-start.herokuapp.com. Para isso é necessário

  • Abra a aba com este nó e clique no ícone da calculadora no canto superior direito
  • Clique em + ADICIONAR VARIÁVEL
  • Insira o nome e o valor da variável
    No nosso caso, a caixa de diálogo com a variável adicionada ficará assim:

Teste Mace. Início rápido

OK. Agora, devido à herança, podemos utilizar esta variável em descendentes de qualquer nível de aninhamento. No nosso caso, estes são nós entrar и criar-post. Para usar uma variável em um campo de texto, você precisa escrever ${<variable_name>}. Por exemplo, o URL de login é convertido para ${domain}/login, respectivamente para criar-post o URL do nó será parecido com ${domain}/posts.

Assim, guiados pelo princípio DRY, melhoramos um pouco o cenário.

Salve o token em uma variável

Já que estamos falando de variáveis, vamos expandir um pouco esse assunto. No momento, em caso de login bem-sucedido, recebemos do servidor um token de autorização, que necessitaremos nas solicitações subsequentes. Vamos salvar esse token em uma variável. Porque o valor da variável será determinado durante a execução do script, usamos um mecanismo especial para isso - variáveis ​​dinâmicas.

Primeiro, vamos realizar uma solicitação de login. Na aba Analisado resposta, passe o cursor sobre o token e no menu de contexto (que é chamado com o botão direito do mouse ou clicando no botão ...) selecione o item Atribuir à variável. Uma caixa de diálogo aparecerá com os seguintes campos:

  • Caminho - que parte da resposta é tomada (no nosso caso é body.token)
  • Valor atual — qual valor está ao longo do Caminho (no nosso caso, este é o valor do token)
  • Nome variável — nome da variável onde Valor atual será preservado. No nosso caso será token
  • Node — em qual dos ancestrais a variável será criada Nome variável. Vamos selecionar Projeto

A caixa de diálogo concluída é semelhante a esta:

Teste Mace. Início rápido

Agora toda vez que o nó é executado entrar variável dinâmica token será atualizado com o novo valor da resposta. E esta variável será armazenada em Projeto nó e, graças à herança, estará disponível para os descendentes.

Para acessar variáveis ​​dinâmicas, você deve usar variável incorporada $dynamicVar. Por exemplo, para acessar um token armazenado, você precisa chamar ${$dynamicVar.token}.

Passamos o token de autorização para solicitações

Nas etapas anteriores recebemos o token de autorização e tudo o que precisamos fazer é adicionar um cabeçalho Authorization com significado Bearer <tokenValue> em todas as solicitações que requerem autorização, incluindo criar-post. Existem várias maneiras de fazer isso:

  1. Copie manualmente o token e adicione um cabeçalho de autorização às solicitações de interesse. O método funciona, mas seu uso é limitado apenas a solicitações do tipo “feito e jogado fora”. Não é adequado para execução repetida de scripts
  2. Use a funcionalidade autorização.
  3. Usar cabeçalhos padrão

Usar o segundo método parece óbvio, mas no contexto deste artigo, esta abordagem é... desinteressante. Bem, realmente: o mecanismo de autorização mais menos é familiar para você de outras ferramentas (mesmo que tenhamos coisas como herança de autorização) e é improvável que levante questões.

Outra coisa são os cabeçalhos padrão! Resumindo, os cabeçalhos padrão são cabeçalhos HTTP herdados que são adicionados à solicitação por padrão, a menos que sejam explicitamente desativados. Usando esta funcionalidade, você pode, por exemplo, implementar autorização personalizada ou simplesmente se livrar da duplicação em scripts. Vamos usar esse recurso para passar um token nos cabeçalhos.

Anteriormente, salvamos prudentemente o token em uma variável dinâmica $dynamicVar.token no nível do nó do projeto. Tudo o que resta é fazer o seguinte:

  1. Definir título padrão Authorization com valor Bearer ${$dynamicVar.token} no nível do nó do projeto. Para fazer isso, na interface Projeto do nó você precisa abrir uma caixa de diálogo com títulos padrão (botão Cabeçalhos no canto superior direito) e adicione um título correspondente. A caixa de diálogo com os valores preenchidos ficará assim:
    Teste Mace. Início rápido
  2. Desative este cabeçalho da solicitação de login. Isso é compreensível: no momento do login ainda não temos token e iremos instalá-lo com esta solicitação. Portanto, na interface de login da solicitação na aba Cabeçalhos em torno de Herdado desmarque o cabeçalho Autorização.

Isso é tudo. Agora o cabeçalho de autorização será adicionado a todas as solicitações filhas do nó Projeto, exceto o nó login. Acontece que nesta fase já temos um script pronto e basta lançá-lo. Você pode executar o script selecionando Execute no menu de contexto do nó Projeto.

Verificando a exatidão da pós-criação

Nesta fase, nosso script pode fazer login e, usando um token de autorização, criar uma postagem. No entanto, precisamos ter certeza de que a postagem recém-criada tenha o nome correto. Ou seja, em essência, tudo o que resta é fazer o seguinte:

  • Envie uma solicitação para receber uma postagem por id,
  • Verifique se o nome recebido do servidor corresponde ao nome enviado ao criar a postagem

Vejamos o primeiro passo. Como o valor do id é determinado durante a execução do script, você precisa criar uma variável dinâmica (vamos chamá-la postId) do nó criar-post no nível do nó do projeto. Já sabemos como fazer isso, basta consultar a seção Salve o token em uma variável. Resta criar uma solicitação para receber uma postagem usando esse id. Para fazer isso, vamos criar um RequestStep obter postagem com os seguintes parâmetros:

  • Tipo de solicitação: GET
  • URL: ${domínio}/posts/${$dynamicVar.postId}

Para implementar a segunda etapa, precisamos nos familiarizar com afirmação nó. Um nó Assertion é um nó que permite escrever cheques para solicitações específicas. Cada nó Assertion pode conter diversas asserções (verificações). Você pode ler mais sobre todos os tipos de afirmações em nosso documentação. Nós vamos usar Compare afirmação com operador equal. Existem várias maneiras de criar asserções:

  1. Longo. Crie manualmente um nó Assertion no menu de contexto do nó RequestStep. No nó Assertion criado, adicione a assertiva de interesse e preencha os campos.
  2. Rápido. Crie um nó Assertion junto com uma asserção da resposta do nó RequestStep usando o menu de contexto

Vamos usar o segundo método. É assim que será no nosso caso.

Teste Mace. Início rápido

Para quem não entende, eis o que está acontecendo:

  1. Faça uma solicitação no nó obter postagem
  2. Na guia Analisado atender, chame o menu de contexto e selecione Criar afirmação -> Comparar -> Igual

Parabéns, criamos nosso primeiro teste! Simples, não é? Agora você pode executar o script completamente e aproveitar o resultado. Só falta refatorar um pouco e retirar title em uma variável separada. Mas deixaremos isso para você como lição de casa)

Conclusão

Neste guia, criamos um cenário completo e ao mesmo tempo revisamos alguns recursos do nosso produto. É claro que não usamos todas as funcionalidades e nos artigos a seguir forneceremos uma visão geral detalhada dos recursos do TestMace. Fique atento!

PS Para quem tem preguiça de reproduzir todos os passos, gentilmente gravamos repositório com o projeto do artigo. Você pode abri-lo com Envie o -> Projeto aberto e selecione a pasta Projeto.

Fonte: habr.com

Adicionar um comentário