Feather Background Waves Background
Ir para o conteúdo principal
Feather Background Waves Background
Feather Background Waves Background
  1. JMeter em Português/

Usando Templates para Testes de Carregamento API

Tabela de conteúdos
intermediário - This article is part of a series.

template

Neste entr'do, discutimos o tópico de usar templates (templates) na etapa de teste de carga para APIs. Este blog é, em alguma medida, uma continuação da nossa blog do nosso post anterior onde propusmos os benefícios de alterar as scripts JMeter externamente e dinamicamente. Embora seja verdade que essa técnica possa ser complexa, é importante saber sobre ela e incorporá-la em seu conjunto de ferramentas.

Exemplo>

Exemplo #

Como sabemos, os testes de carga de API geralmente exigem enviar um bloco de dados em formato JSON. (Nota: este bloco de dados é conhecido como payload em inglês.) Este bloco consiste em pares de nomes/valores como esta:

{
  "Paciente":{
    "Identificación": "123456789",
    "Médico": "Dr. MataSanos",
    "Hospital": "LaBuenaMuerte"
  }
}

No nosso exemplo, o objetivo da testagem é criar pacientes em uma determinada aplicação. Para isso, incluímos um elemento Request de HTTP, onde adicionamos o payload no campo Dados do corpo da ordem:

graph1

A gráfica mostra como a variável Identificação é atribuída um número aleatório usando parte da variável __UUID. Também definimos as variáveis Médico e Hospital, cujos valores serão lidos usando o elemento [Configuração de Dados CSV]. Este é o processo padrão.

O Problema>

O Problema #

O problema ocorre quando as partes do API mudam, causando que precisemos editar o script (usando a interface gráfica) para alterar a estrutura JSON. Este problema é agravado ainda mais quando essa estrutura é usada por múltiplas scripts.

{
 "Paciente":{
   "Identificación": "LT${__substring(${__UUID()}, 0, 8)}",
   "Médico": "${__eval(${MD_NAME})}",
   "Hospital": "${__eval(${HOSPITAL_NAME})}"
 }
}

É importante mencionar que este modelo contém apenas as referências às valores das variáveis. Atualmente, os dados (medicina e hospital) existem no arquivo CSV (como mencionamos anteriormente). Note que usamos a função JMeter __eval para forçar a avaliação das variáveis durante o tempo de execução.

Implementamos este método em três etapas:

Passo 1:>

Passo 1: #

graph2

Usando o elemento de Configuração Variáveis Personalizadas, criamos/atribuímos uma variável que contém a localização onde está o arquivo de modelo.

Passo 2:>

Passo 2: #

graph3

Usando o elemento Parâmetros do Usuário Pre-Processador, criamos/atribuímos um parâmetro (PATIENT_JSON) que durante a execução assume o valor da template, desta forma:

CASE_JSON={
 "Paciente":{
    "Identificación": "LT${__substring(${__UUID()}, 0, 8)}",
    "Médico": "${__eval(${MD_NAME})}",
    "Hospital": "${__eval(${HOSPITAL_NAME})}"
  }
}
Passo 3:>

Passo 3: #

graph4

Finalmente, neste passo, adicionamos uma expressão ao Dados do corpo da Solicitação HTTP, que assegurará valores dinâmicos para as variáveis MD_NAME e HOSPITAL_NAME durante a execução. Estes valores são extraídos dos respectivos arquivos CSV.

Conclusão>

Conclusão #

Usando templates em um script proporciona flexibilidade e produtividade que resultam em uma significativa aumento na eficiência das testes de scripts.



intermediário - This article is part of a series.