Configurando Propriedades em JMeter
Tabela de conteúdos
Novato - This article is part of a series.
Nesta entrada, apresentamos duas opções para inicializar propriedades em JMeter.
Começamos definindo o que é uma propriedade. Na JMeter, uma propriedade é um valor dinâmico que é comum a todas as threads/VUsers. Geralmente é usado para definir informações específicas para o ambiente de execução de um teste. Acessar propriedades é através da função __P(). Por exemplo, a propriedade PropX será lida usando ${__P(PropX)}.
NOTA: No meu último blog, mencionei duas práticas boas relacionadas a este tópico:
Use a modo não-GUI (modo CLI) Variáveis e Propriedades
Importância #
A capacidade de inicializar propriedades tem um importante avanço em poder modificar o comportamento do script externamente e dinamicamente. Por exemplo, suponha que tenhamos uma script que teste a performance de um aplicativo na Web. Durante o desenvolvimento deste aplicativo, a test pode ser direcionado inicialmente para o ambiente de desenvolvimento, e posteriormente para o ambiente de QA. Neste caso, usando uma propriedade para configurar o script, podemos alterar a URL que representa o ambiente de teste sem precisar editar ou modificar diretamente o script.
Exemplo #
Na seguinte figura, iniciamos um grupo de threads usando três propriedades:
NOTA: Propriedades podem ser usadas para configurar múltiplos elementos em um plano de teste (tempo, variáveis, laços, etc).
Primeira opção: Inicializar propriedades através da linha de comando (CLI) #
A primeira opção é inicializar as propriedades desta aplicação através deste método na linha de comando:
jmeter -n -t EjemploPropiedades.jmx -J THREADS=100 -J RAMP_TIME=10 -J RUN_TIME=600
Neste exemplo, estamos atribuindo valores às propriedades THREADS, RAMPUP e DURATION.
Segunda Opção: Usando um Arquivo de Propriedades #
Neste caso, os propriedades são incluídas em um arquivo da seguinte maneira:
#######################################
# Ambiente QA: propiedades específicas
HILOS=100
RAMPUP=10
DURACION=600
#######################################
Segundo, usamos este arquivo no terminal (CLI):
jmeter -p pruebaQA_05-12-20.properties -n -t EjemploPropiedades.jmx
Neste caso, os variáveis são inicializadas usando os valores contidos no arquivo de propriedades.
NOTA: É possível incluir essas propriedades diretamente no arquivo user.properties, localizado na pasta $JMETER_HOME/libexec/lib, mas minha opinião favorece a colocação do arquivo nessa mesma localização dos scripts de teste.
O melhor opção é: #
Para os seguintes motivos, o melhor opção é usar um arquivo de propriedades.
- Flexibilidade: podemos criar arquivos de propriedades para diferentes finalidades: definir ambientes de teste específicos, alterar o número de usuários e threads, definir o tempo do teste, etc.
- Documentação: permite documentar as propriedades detalhadamente para cada teste.
- Productividade: uma script pode ser usada em múltiplas testes alternando o arquivo de propriedade.
Mais Flexibilidade #
Para maior flexibilidade, é possível usar uma combinação de atribuir propriedades no linha de comando com o uso de um arquivo de propriedades.
jmeter -p pruebaQA_05-12-20.properties -n -t EjemploPropiedades.jmx -J THREADS=200
Neste caso, o valor da propriedade HILOS é substituído pelo que estava previamente definido no arquivo de propriedades mencionado anteriormente. As outras propriedades permanecem inalteradas.
Conclusão #
A utilização de propriedades para modificar o comportamento de um script proporciona flexibilidade, produtividade e documentação que resulta em uma significativa aumento na eficiência da execução de testes de carga.