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
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 |
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: