Jmeter (dez) - do básico ao proficiente - controlador lógico JMeter - médio (tutorial detalhado)

contente

1. Introdução

2. Classificação de controladores lógicos

3. Visualize o controlador lógico

4. Explicação detalhada dos controladores lógicos comuns


1. Introdução

A explicação do controlador lógico no site oficial do Jmeter é: "Controladores lógicos determinam a ordem em que os Samplers são processados.".

Ou seja, o controlador lógico pode controlar a ordem de execução dos amostradores. Pode-se ver que o controlador precisa ser usado com o amostrador, caso contrário o controlador não tem sentido. Todos os amostradores colocados sob o controlador serão tratados como um todo e serão executados juntos quando executados.

O controlador lógico JMeter pode controlar a lógica de execução do elemento.Além do controlador único, outros tipos de controladores lógicos podem ser aninhados.

2. Classificação de controladores lógicos

Os controladores lógicos no JMeter são divididos em duas categorias: (1) Controlar a sequência lógica de execução dos nós durante a execução do plano de teste, como: Loop Controller, If Controller, etc.; (2) Agrupar os scripts no teste plano para facilitar a execução estatística do JMeter Resultados e controle de tempo de execução de scripts, tais como: Controlador de Throughput, Controlador de Transação.

3. Visualize o controlador lógico

Primeiro, vamos dar uma olhada no controlador lógico do JMeter, o caminho: thread group (user) -> add -> logic controller (Logic Controller); podemos ver claramente que existem 17 controladores lógicos no JMeter5, conforme mostrado no seguinte figura:

 

Se você não consegue ver a imagem acima claramente, o irmão Hong resumiu um mapa mental, sobre o tipo de controlador lógico do JMeter5, conforme mostrado na figura a seguir:

 

Através do entendimento acima, temos uma compreensão geral e compreensão do controlador lógico. Abaixo, o irmão Hong compartilhará e explicará alguns controladores lógicos que normalmente são usados ​​no trabalho para pequenos parceiros ou calçados infantis.

4. Explicação detalhada dos controladores lógicos comuns

  Nesta seção, o irmão Hong explicará os controladores lógicos comumente usados ​​em detalhes de cima para baixo .

4.1 Controlador de Seção Crítica

Vamos dar uma olhada na explicação oficial original: O Critical Section Controller garante que seus elementos filhos (samplers/controllers, etc.)

Tradução do irmão Hong das duas facas, vamos traduzir essa linguagem de pássaros para você ver o que significa. O significado geral é: Controlador de Seção Crítica (controlador de seção crítica), certifique-se de que seus subelementos (amostradores/controladores, etc.) Executa apenas um thread como o bloqueio especificado antes de executar a sub-rotina do controlador. Ha ha! Você se sente confuso quando vê esta frase? Toquei meus poucos cabelos restantes e caí em contemplação... Não importa, não se preocupe com isso. O irmão Hong explicará isso com exemplos específicos mais tarde. Depois de ler Após a Por exemplo, volte e leia esta frase novamente, e de repente você perceberá isso.

1. Vamos dar uma olhada na aparência deste Critical Section Controller: Path: Thread Group > Add > Logic Controller > Critical Section Controller , conforme mostrado na figura a seguir:

 

2. Os principais parâmetros são descritos a seguir:

Nome: nome, pode ser definido à vontade, ou até vazio;

Comentários: Comentários, podem ser definidos à vontade, podem ser vazios;

Nome do bloqueio : nome do bloqueio, aqui você pode preencher o nome do thread executado em seu nó filho, este thread é armazenado como um bloqueio global

4.1.1 Explicação de exemplo

Esta parte é principalmente para entender o que a frase no início significa cooperando com exemplos.

1. Vamos falar sobre um cenário de teste para visitar a série de artigos JMeter no Hongge Blog Park: o primeiro passo é visitar a página inicial do blog park, o segundo passo é encontrar a página inicial da visita de Hongge ao Hongge Blog Park, e o terceiro passo é clicar na categoria JMeter. Conclua três etapas em sequência para concluir este cenário de teste. Em seguida, usamos o JMeter para adicionar amostradores para várias solicitações de acordo com esse cenário. Como mostrado abaixo:

2. A depuração do script foi bem-sucedida, execute o JMeter e visualize a árvore de resultados, conforme mostrado na figura a seguir:

 

3. Da figura anterior, a visualização da árvore de resultados mostra que os dados do resultado da solicitação não são solicitados em ordem e não atendem às expectativas. Neste momento, adicione um controlador de seção crítica (controlador de seção crítica) e adicione um bloqueio para controlar a execução pedido. Como mostrado abaixo:

4. A depuração do script foi bem-sucedida. Execute o JMeter e visualize a árvore de resultados. Pode-se ver claramente que as solicitações são executadas na ordem esperada. No entanto, o tempo de resposta será muito longo, o que será explicado mais adiante. Como mostrado abaixo:

 

4.1.2 Classificação de nomes de bloqueio

(1) O nome do bloqueio está vazio e cada bloqueio é considerado um bloqueio diferente

1. Vamos dar uma olhada em um exemplo específico para criar um controlador de peça crítica com um nome de bloqueio vazio, conforme mostrado na figura a seguir:

2. Execute o JMeter e visualize a árvore de resultados, conforme mostrado na figura a seguir:

 

(2) Os nomes dos bloqueios são os mesmos, vários bloqueios são considerados o mesmo bloqueio e apenas uma operação pode existir ao mesmo tempo

1. Vamos dar uma olhada em um exemplo específico para criar um controlador de peça crítica com o mesmo nome de bloqueio, conforme mostrado na figura a seguir:

2. Execute o JMeter e visualize a árvore de resultados, conforme mostrado na figura a seguir:

 

(3) O nome do bloqueio é uma variável, e é julgado se pertence ao mesmo bloqueio de acordo com o valor da variável. Quando o valor da variável é o mesmo, considera-se o mesmo bloqueio

1. Vamos dar uma olhada em um exemplo específico e criar um controlador de peça crítica com uma variável de bloqueio chamada, conforme mostrado na figura a seguir:

 

2. Execute o JMeter e visualize a árvore de resultados, conforme mostrado na figura a seguir:

 

4.2 Para Cada Controlador

Controlador ForEach: geralmente usado com variáveis ​​de usuário. As variáveis ​​definidas pelo usuário são chamadas em sequência até a última, encerrando o loop. Para atender aos requisitos do ForEach Controller para extrair dados, o formato de nomenclatura da variável é geralmente "variable name_number", onde o número começa em 1. 1. Atravessar o controlador de loop, como o nome sugere, define uma regra de loop. 2. Todos os cenários executáveis ​​usados ​​para percorrer o elemento atual. 3. Leia uma série de variáveis ​​relacionadas nas variáveis ​​definidas pelo usuário, o amostrador ou controlador sob o controlador será executado uma ou mais vezes e diferentes valores de variáveis ​​serão lidos a cada vez. 4. Este controlador é geralmente usado em conjunto com o elemento de configuração → extrator de expressão regular, que pode processar repetidamente certos elementos na página.

1. Vamos dar uma olhada na aparência deste ForEach Controller: Path: Thread Group > Add > Logic Controller > ForEach Controller , conforme mostrado na figura a seguir:

 

2. Os principais parâmetros são descritos a seguir:

Nome: nome, pode ser definido à vontade, ou até vazio;

Comentários: Comentários, podem ser definidos à vontade, podem ser vazios;

Prefixo da variável de entrada : prefixo da variável de entrada, você pode definir um conjunto de variáveis ​​em "variável definida pelo usuário", o controlador de loop pode obter o valor correspondente à variável e usá-lo como condição de loop do controlador de loop, você também pode enviar a variável como um parâmetro do amostrador.

Start index for loop: O ponto inicial do subscrito da variável de loop. Início do índice de loop (único) → percorre o intervalo de variáveis ​​da consulta, o valor inicial (se não preenchido aqui, o padrão começa em 1, se não houver variável começando com 1, um erro será relatado durante a execução)

Índice final para loop: O ponto final do subscrito da variável de loop. final do índice do loop (inclusive) → percorre o intervalo de variáveis ​​da consulta, o valor do final

Nome da variável de saída: O nome da variável de saída, o nome da variável gerada pelo controlador de loop. Referências subsequentes podem ser feitas por meio de ${}

Adicionar "_" antes do número ?: Se deve adicionar "_" como separador após o prefixo da variável. Se houver um sublinhado no nome da variável definida, você deve marcar este item, caso contrário não será encontrado; caso contrário, não marque se não houver, caso contrário a variável também não será encontrada.

4.2.1 Explicação de exemplo

1. Primeiro, personalize 5 variáveis ​​prefixadas com Beijing Hongge, e os valores são abcde. E os números após Beijing Hongge são contínuos. Se não forem contínuos, não serão alternados, conforme mostrado na figura a seguir:

 

2. Configure o controlador ForEach conforme mostrado abaixo:

 

3. Adicione uma solicitação para visitar a página inicial do jardim do blog + valor de saída: ${Hongge}, o valor de saída é a variável de saída Hongge do controlador e o valor da variável de saída é obtido por meio de ${Hongge}, conforme mostrado na figura a seguir:

 

4. Adicione a árvore de resultados da visualização, execute o JMeter e visualize a árvore de resultados, conforme mostrado na figura a seguir:

 

Nota: Bata na lousa, bata na cabeça! ! !

1. Os valores dos sufixos das variáveis ​​de entrada devem ser contínuos, como Beijing Hongge_1, Beijing Hongge_2, Beijing Hongge_3... Desta forma, se houver descontinuidade no meio, o loop será interrompido

2. A configuração do início do loop: se as variáveis ​​forem Pequim Hongge_1, Pequim Hongge_2, Pequim Hongge_3 e o início definido for 1, o loop começará em Pequim Hongge_2

3. A configuração do final do loop: Se a variável tiver 3 Beijing Hongge_1, Beijing Hongge_2, Beijing Hongge_3 e o final do conjunto for 5, ela só fará o loop Beijing Hongge_1, Pequim Hongge_2, Pequim Hongge_3, se o final do conjunto for 2, ele fará um loop Pequim Hongge_1, Pequim Hongge_2.

4.3 Incluir Controlador

O controlador Include é usado para importar fragmentos de teste externos (planos de teste não completos). O plano de teste importado será executado durante a execução, mas o plano de teste importado possui requisitos especiais. Ele não pode ter grupos de threads e pode conter apenas controladores simples. e componentes sob o controlador. Em outras palavras, equivale a adicionar uma unidade de execução, uma unidade de operação de negócios encapsulada, semelhante à função (método) no desenvolvimento do nosso programa. Por exemplo, usamos um amostrador para simular uma operação de negócios de consulta de informações do aluno e, em seguida, o colocamos em um controlador simples como uma unidade de execução. Quando usado em outro lugar, podemos nos referir diretamente a ele sem reinventar a roda.

De um modo geral, é mais comum usar o controlador Include com o fragmento de teste (Test Fragment).

1. Vamos dar uma olhada na aparência deste controlador include: Path: Thread Group > Add > Logic Controller > Include Controller , conforme mostrado na figura a seguir:

 

2. Os principais parâmetros são descritos a seguir:

Nome: nome, pode ser definido à vontade, ou até vazio;

Comentários: Comentários, podem ser definidos à vontade, podem ser vazios;

Nome do arquivo: nome do arquivo, um campo obrigatório, caso contrário, um erro será relatado. Consulte o arquivo jmx externo pelo caminho e nome de arquivo de Filename.

Brother Hong recomenda que amigos ou sapatos infantis possam comparar o controlador Include e o controlador Module (portal) para aprender. O controlador Include é referenciado a partir de um arquivo externo e só pode referenciar o conteúdo de todo o segmento de teste. O controlador Module é do A referência no arquivo é relativamente flexível e apenas parte do fragmento de teste ou conteúdo do módulo pode ser referenciado. Isso não é apenas fácil de entender, mas também fácil de lembrar e aprender.

4.3.1 Exemplos

(1) Quando o valor do caminho do nome do arquivo estiver vazio, a execução do programa relatará um erro, a execução do script será encerrada e o conteúdo do script a seguir não continuará a ser executado.

1. Primeiro, crie um plano de teste com um caminho de nome de arquivo vazio, conforme mostrado na figura a seguir:

 

2. Execute o JMeter e visualize a árvore de resultados (a execução do programa relata um erro, a execução do script é abortada e o amostrador abaixo do Visit Blog Park Homepage não continuará a ser executado), conforme mostrado na figura a seguir:

 

(2) Quando o arquivo no caminho do nome do arquivo não existe, o programa exibe um erro diretamente e interrompe a execução.

1. Primeiro, crie um plano de teste no qual o arquivo no caminho do nome do arquivo não exista. Ao clicar no botão "Salvar", um erro aparecerá diretamente. Como mostrado abaixo:

 

(3) Quando o arquivo no caminho do nome do arquivo não contém o fragmento de teste, ignore o controlador e continue a executar para baixo.

1. Primeiro, crie um plano de teste sem referências externas aos fragmentos de teste, conforme mostrado na figura a seguir:

 2. Crie um plano de teste que não contenha fragmentos de teste no arquivo com o caminho do nome do arquivo e adicione o arquivo de fragmento de referência externo-no teste acima ao controlador Include, conforme mostrado na figura a seguir:

 

3. Execute o JMeter e visualize a árvore de resultados (pule o controlador e continue a executar o amostrador na página inicial do jardim do blog), conforme mostrado na figura a seguir:

 

(3) Quando o arquivo no caminho Filename contiver o fragmento de teste, após executar o controlador, continue a executar para baixo.

1. Primeiro, crie um plano de teste com referências externas aos fragmentos de teste, conforme mostrado na figura a seguir:

 

2. Crie um plano de teste que contenha fragmentos de teste no arquivo com o caminho Filename e adicione o arquivo de fragmento de teste de referência externa acima ao controlador Include, conforme mostrado na figura a seguir:

 

3. Execute o JMeter e visualize a árvore de resultados (após executar o fragmento de teste no controlador, continue executando o amostrador na página inicial do jardim do blog), conforme mostrado na figura a seguir:

Neste ponto, você deve entender o Include Controller e o Test Fragment . O entendimento do irmão Hong é que o Test Fragment é equivalente a uma parte independente, que pode ser referenciada por outros planos de teste para alcançar a fragmentação e modularização das amostras. Ao encontrar necessidades repetidas, como login e registro, o Test Fragment pode ser usado . Fragment and Include Controlador também. Isso evita reinventar a roda e fazer muito trabalho inútil.

Acho que você gosta

Origin blog.csdn.net/ZangKang1/article/details/124170565
Recomendado
Clasificación