Jmeter (34) - Do nível básico ao avançado - Parametrização (tutorial detalhado)

1. Introdução

  Os cerca de trinta artigos anteriores introduziram principalmente algumas operações e conhecimentos básicos do Jmeter, que podem ser considerados como alguns pontos de conhecimento de nível básico.A partir deste artigo, aprenderemos as operações mais avançadas e os pontos de conhecimento aprofundados do Jmeter. O artigo de hoje é principalmente sobre parametrização. Na verdade, pontos de conhecimento semelhantes foram introduzidos mais ou menos antes. Não há explicação sistemática do conhecimento. Como isso é usado com mais frequência no trabalho real, o irmão Hong irá apresentá-lo hoje. Ele irá ser sistematicamente explicado como um tópico separado.

Principalmente ao usar a ferramenta jmeter, seja fazendo testes de interface ou testes de desempenho , a parametrização é um ponto de conhecimento que deve ser dominado e é muito útil. Cenários de uso parametrizados, como:

  1) Múltiplas solicitações têm o mesmo endereço IP. Se o endereço do servidor for alterado, o script precisará alterar o IP de cada solicitação.

  2) Cadastre uma conta e não permita contas duplicadas; quando quiser cadastrar usuários em lotes

  3) Simule logins de vários usuários e precise usar informações de usuário diferentes para fazer login

  4) O resultado de saída da solicitação anterior é usado para passar os parâmetros da próxima solicitação, como as informações do token obtidas ao fazer login e a chamada do parâmetro usada para enviar a solicitação de fatura.

2. O que é parametrização?

  Conceito: Processo de obtenção dinâmica de dados e atribuição de valores de acordo com requisitos.

  Parametrização: Em termos leigos, os dados de teste são uma preparação importante durante o teste. Quando os dados de cada iteração são diferentes, a parametrização precisa ser realizada e os dados de teste são lidos do arquivo parametrizado. Por exemplo: um usuário de teste precisa inserir um nome de usuário e senha ao fazer login. Se o sistema não permitir que o mesmo nome de usuário e senha façam login ao mesmo tempo, ou se você quiser simular melhor o login de vários usuários no sistema. Neste momento, o nome de usuário e a senha precisam ser parametrizados para que cada usuário virtual utilize um nome de usuário e uma senha diferentes para acesso.

Se você quiser aprender testes automatizados, recomendo um conjunto de vídeos para você. Este vídeo pode ser considerado o tutorial de teste automatizado número um em toda a rede reproduzida por Bilibili. O número de pessoas online ao mesmo tempo atingiu 1.000 , e também há notas que podem ser coletadas e comunicadas por diversos canais.Mestre comunicação técnica: 798478386   

[Atualizado] Uma coleção completa dos tutoriais práticos mais detalhados sobre testes automatizados de interface Python ministrados por Bilibili (a versão prática mais recente)_bilibili_bilibili [Atualizado] Uma coleção completa dos tutoriais práticos mais detalhados sobre testes automatizados de interface Python ministrados por Bilibili (versão prática ) A versão mais recente) tem um total de 200 vídeos, incluindo: 1. Por que a automação de interface deve ser feita para automação de interface, 2. Visão geral da solicitação de automação de interface, 3. Prática de interface para automação de interface, etc. do UP master, siga a conta UP. icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

3. Vários métodos de parametrização do jmeter

Aqui está a seguinte interface de registro como exemplo: Endereço da interface: https://api.apiopen.top/api.html

Cadastro de desenvolvedor

Método de solicitação: POST

Endereço de solicitação: https://api.apiopen.top/developerRegister

Nome do parâmetro de consulta tipo obrigatório descrever Exemplo, por exemplo
nome corda sim nome de usuário picochao
senha corda sim senha 123456
e-mail corda sim E-mail, o feedback do usuário será notificado por e-mail. [email protected]

Exemplo de retorno:

{
    "code": 200,
    "message": "成功!",
    "result": {
        "apikey": "b9b3a96f7554e3bead2eccf16506c13e"
    }
}

 

3.1 No jmeter, obtenha o valor do parâmetro por meio de ${nome da variável}.

1. Variáveis ​​definidas pelo usuário

1) Clique com o botão direito no grupo de threads para adicionar-->Componentes de configuração-->Variáveis ​​definidas pelo usuário e a seguinte página de configuração aparece.

  Digite o nome e o valor; obs: o nome pode ser customizado, conforme figura abaixo:

2) Em seguida, parametrize o nome da variável definida para ${ip}, ${email} nas solicitações de registro e login.

  Nota: O nome do parâmetro referenciado deve ser consistente com o nome da configuração da variável definida pelo usuário. O irmão Hong aqui dá um exemplo de registro, conforme mostrado na figura abaixo:

 3) Clique em Executar para visualizar a árvore de resultados, que mostra sucesso, conforme mostrado na figura abaixo:

2. Assistente de função obtém valor do parâmetro

1) Selecione a opção da barra de menu -> caixa de diálogo Assistente de função e a caixa do assistente de função aparecerá. Existem várias funções para escolher na função. Veremos principalmente __RandomString. Você pode aprender sobre as outras por si mesmo .

2) Para registrar múltiplas contas (por exemplo, 10 usuários), as informações de registro exigem que o endereço de e-mail e o nome de usuário  não possam ser repetidos; então você pode pensar desta forma, o segmento @qq.com atrás da caixa de correio QQ é fixo , então o segmento na frente da caixa de correio QQ Várias pessoas são selecionadas aleatoriamente e as configurações da página são mostradas na figura abaixo:

 3) Copie a string da função gerada e cole-a para referência do parâmetro, conforme mostrado na figura abaixo:

4) Defina o número de threads no grupo de threads como 10 e simule o cadastro de 10 usuários virtuais, conforme mostrado na figura a seguir:

 5) Clique em Executar para visualizar a árvore de resultados, que mostra sucesso. (O irmão Hong aqui dá apenas um exemplo do endereço de e-mail. Você pode imitar o nome de usuário após configurá-lo. "O irmão Hong aqui adicionou uma função aleatória aleatória após" Irmão Pequim Hong", então irmão Hong Beijing Somente se houver um número no final para que não se repita" o registro poderá ser bem-sucedido, caso contrário será relatado um erro de nome de usuário duplicado) conforme mostrado na figura abaixo:

3. CSV Data Set Config obtém valores de parâmetros

1) Se a caixa de correio QQ que precisa ser registrada não pode ser aleatória e deve ser a caixa de correio QQ realmente fornecida pelo usuário para registro, use o seguinte método para coletar o número QQ real e o apelido do usuário com antecedência e armazená-los em um txt local ou arquivo CSV (padrões de arquivo CSV separados por vírgulas), conforme mostrado abaixo:

2) Clique com o botão direito no grupo de threads e adicione-->Configuration Component-->CSV Data Set Config, conforme mostrado na figura abaixo:

 

Descrição do parâmetro principal:

  Nome do arquivo: O caminho completo do arquivo precisa ser passado. Meu arquivo está localizado no diretório da unidade C e é denominado users.txt.

  Codificação de arquivo: O formato de codificação do arquivo de parâmetro. Você não precisa preenchê-lo.

  Nomes de variáveis: os nomes de variáveis ​​correspondentes a cada coluna no arquivo de parâmetros, que também são os nomes de variáveis ​​de parâmetros que você deseja referenciar na solicitação. A primeira coluna aqui é o nome de usuário, a segunda coluna é a senha e a terceira coluna é o endereço de e-mail. Os nomes das variáveis ​​podem ser personalizados.

  igonre primeira linha (usado somente se Variable Names não estiver vazio): Quando o nome da variável é definido na primeira linha do arquivo CSV, este item é definido como verdadeiro. Neste momento, toda vez que uma solicitação é feita para ler o arquivo , a primeira linha será automaticamente ignorada e lida diretamente. A segunda linha de dados. Se a primeira linha não estiver definida, selecione False

  Delimitador: O delimitador no arquivo, o padrão é a separação por vírgula em inglês. Portanto, observe que vários parâmetros em cada linha do documento txt são separados por vírgulas.

  Reciclar em EOF: Quando definido como True, o valor pode ser reciclado desde o início; para False, quando o arquivo é lido até o final, a leitura do arquivo é interrompida.

Parar Thread EOF: Quando Recycle on EOF é falso e Stop Thread EOF é verdadeiro, após ler os registros  no arquivo csv , ele para de ser executado e o número de threads e os tempos de execução são inválidos.

  Modo de compartilhamento: modo de compartilhamento. Todos os threads: todos os threads, todos os threads fazem loop para obter valores, thread 1 obtém a primeira linha, thread 2 obtém a próxima linha; Grupo de threads atual: grupo de threads atual, cada grupo de threads faz loop para obter valores respectivamente; Thread atual: atual thread, este plano de teste Todos os threads internos ocupam a primeira linha.

Observações: Aqui usarei uma linguagem popular para falar brevemente sobre a relação entre Reciclar no EOF e Parar thread nos resultados do EOF.

Reciclar no EOF: Ao chegar ao final do arquivo, seja para ler parâmetros em loop, opções: verdadeiro e falso

Parar thread em EOF: se deve parar o thread quando ele chegar ao final do arquivo, opções: verdadeiro e falso

Quando Recycle on EOF seleciona true, não faz sentido selecionar true ou false para Stop thread on EOF. Em termos leigos, a leitura do loop contínuo é controlada na frente e não faz sentido parar ou executar mais tarde.

Quando Recycle on EOF seleciona false, Stop thread on EOF seleciona true, existem 4 threads e 3 parâmetros, então apenas 3 solicitações serão feitas.

Quando Recycle on EOF seleciona flase, Stop thread on EOF seleciona flase, existem 4 threads e 3 parâmetros, então será solicitado 4 vezes, mas não há parâmetros disponíveis para a 4ª vez, e o loop não é permitido, então o A quarta solicitação está errada.

3) Use a configuração do conjunto de dados CSV para definir

a. Referência direta parametrizada, conforme mostrado na figura abaixo:

b. Faça referências parametrizadas através de assistentes de função, conforme figura abaixo:

 

4) Defina o número de threads no grupo de threads como 3. Após a execução, será gerado o seguinte resultado: Sucesso, conforme mostrado na figura abaixo:

 

Acho que você gosta

Origin blog.csdn.net/Faith_Lzt/article/details/132691889
Recomendado
Clasificación