Extrator de expressão regular de teste de desempenho Jmeter

Índice

Prefácio

1. Extrator de expressão regular Jmeter

2. Exemplo de primeiros passos

3. Exemplos avançados


Prefácio

O extrator de expressões regulares Jmeter é um tipo de pós-processador Jmeter e é usado para ler os resultados solicitados pelo amostrador na forma de expressões regulares.

1. Extrator de expressão regular Jmeter

1. Função

O extrator JSON só pode extrair conteúdo de resposta, enquanto o extrator de expressão regular pode extrair cabeçalhos de resposta, solicitar valores de cabeçalho e, claro, conteúdo de resposta.

Insira a descrição da imagem aqui

 2. Explicação detalhada dos parâmetros

Insira a descrição da imagem aqui

  • Aplicar a: Escopo do aplicativo, basta selecionar apenas a amostra principal padrão
  • Campos de resposta a serem verificados: intervalo de campos a serem extraídos
  1. Corpo: corpo da resposta, não inclui cabeçalhos de resposta; mais comumente usado
  2. body(unescaped): corpo da resposta, substituindo todos os caracteres de escape HTML; não recomendado
  3. body como um documento: extrai texto de diferentes tipos de arquivos; afeta o desempenho
  4. Cabeçalho de informações: cabeçalho de resposta
  5. Cabeçalhos de solicitação: cabeçalhos de solicitação
  6. URL:URL
  7. Código de resposta: código de resposta
  8. Mensagem de resposta: mensagem de resposta
  • Nome de referência: nome da variável que recebe o valor extraído, *Obrigatório
  • Expressões Regulares: Expressões Regulares
  • template: um modelo para criar uma string a partir das correspondências encontradas
  1. Se uma expressão regular tiver vários resultados de extração, os resultados da extração estarão na forma de uma matriz
  2. Modelo 1, 2... significa atribuir o valor analisado à variável, começando em 1 para corresponder
  3. 0 significa o que toda a expressão corresponde
  4. Se houver apenas um resultado, só pode ser 1
  • Número correspondente (0 significa aleatório): qual valor usar (0: aleatório, padrão; -1 para todos; 1 para o primeiro valor), opcional
  • Valor padrão: valor padrão. Este valor é obtido quando nenhum valor é correspondido. Não é obrigatório.
  • Usar valor padrão vazio: após a verificação, se nenhum valor puder ser extraído, uma string vazia será retornada

Nome da variável criada (armazene o valor interceptado pela expressão regular em uma variável e especifique o nome da variável).Ao
usar uma expressão regular para interceptar vários campos de uma informação de retorno de solicitação, você também pode preencher apenas uma variável, como mostrado abaixo.

Insira a descrição da imagem aquiNeste momento, os vários valores interceptados serão usados ​​com o nome da variável _g1 e o nome da variável _g2. Veja a imagem abaixo para obter detalhes. Esta é uma captura de tela do meu próprio experimento especial.

Insira a descrição da imagem aqui

  • Variável = todos os campos interceptados, separados por espaços, conforme mostra a primeira linha da figura acima.
  • Variável_g: deve representar o número de variáveis ​​interceptadas?
  • Variável _g0: O campo completo correspondido de acordo com a expressão regular (antes da interceptação).
  • Variable_g1: O primeiro campo interceptado, quando utilizado, é ${variable name_g1}.
  • Variable_g2: O segundo campo interceptado, ao usar ${variable name_g2}, conforme mostrado na figura abaixo.

Insira a descrição da imagem aqui

 Expressão regular

Você pode usar o Baidu 在线正则表达式para praticar expressões regulares. Aqui está um URL de expressão regular online .

Modelo ($1$ significa que você obterá os dados correspondentes à primeira expressão regular, a ser confirmada).De acordo com
meu próprio entendimento, o significado do modelo Modelo é o modelo de formato de retorno do resultado da extração (quando você o define em Regular Expressão) Quando houver vários pontos de extração, como "errmsg":"(.*)", "access_token":"(.+?)", os múltiplos valores extraídos serão retornados ao usuário no formato definido pelo modelo).

A informação que conheço atualmente de outros blogs de negócios on-line é que se vários pontos de extração forem preenchidos na expressão regular do extrator (por exemplo, "errmsg":"(.*)","access_token":"(.+? )". Para Jmeter, esta expressão será tratada como duas expressões regulares - "errmsg":"(.*)","access_token": e,"access_token":"(.+ ?)", você pode preencher $1 $, $2$, etc. no modelo. $1$ representa o resultado da interceptação da primeira expressão regular "errmsg":"(.*)","access_token":, $2$ representa o resultado da interceptação da primeira expressão regular " errmsg":"(.*)","access_token": Os resultados da interceptação das duas expressões regulares, "access_token": "(.+?)", e assim por diante (Nota: Se houver espaços entre $1$ e $2 $ preenchido no Template, os (.*) e ( .+?) extraídos também serão separados pelos espaços correspondentes).

$0$ refere-se à correspondência de texto completo, $1$ $2$ refere-se à obtenção do primeiro e do segundo pontos de extração ao mesmo tempo.

Nº da correspondência (correspondência bem-sucedida)
Valor padrão (quando nenhuma correspondência for encontrada, use este valor para retornar)

Os parâmetros são difíceis de entender, então vamos dar um exemplo~

3. Implementação do extrator de expressão regular

Vamos testar usando a interface neste endereço.

Interface gratuita YesApi para iniciantes | Guochuang Cloud, uma conta, cuida do desenvolvimento da interface

2. Exemplo de primeiros passos

Insira a descrição da imagem aqui

Conteúdo de resposta da interface de login do membro:

{
	"ret": 200,
	"data": {
		"err_code": 0,
		"err_msg": "",
		"uuid": "F118DD335346CE9D7094C97190587108",
		"token": "C1CA708E57F0C33E548745B0D82ADA2A800D886D17BA44261459C39C52376C0D",
		"role": "user"
	},
	"msg": "V3.3.0 YesApi App.User.Login 2022-03-20 10:25:40 hd215"
}

Extrator de expressão regular - extrato de token:

Insira a descrição da imagem aqui

 Extrator de expressão regular - extrair uuid:

Insira a descrição da imagem aqui

  1. Expressão regular----- ( )Escreva regras de correspondência dentro, usadas para analisar expressões regulares
  2. Expressão regular----- .*?significa corresponder a qualquer caractere de qualquer comprimento. Esta também é a expressão regular mais comumente usada.
  3. Geralmente (.+?) e (.*?) podem atender 80% dos nossos cenários de uso

Outras interfaces chamam expressões regulares para extrair variáveis:

Insira a descrição da imagem aqui

3. Exemplos avançados

Interface de teste: http://api.yesapi.cn/docs-api-App.User.GetList.html

Conteúdo da resposta:

{
    "ret":200,
    "data":
    {
        "err_code":0,
        "err_msg":"",
        "users":
        [
            {
                "uuid":"F118DD335346CE9D7094C97190587108",
                "username":"xey032001",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-20 10:25:40",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"AAC71046CFA51B8A55D4367652791D66",
                "username":"xey04",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:22:24",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"97F22D1CD99D17C2CF29510C728F6570",
                "username":"xey03",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:18:56",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"770A6910AF264AEB73F6ECAFEB5BBFB6",
                "username":"xey02",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:15:35",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"690815A62298F01009010BA062773A9F",
                "username":"xey01",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:14:03",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"24249E71ABBD72D7C1DE8B3E95A0FBBE",
                "username":"xey",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:08:25",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            }
        ],
        "total":6
    },
    "msg":"V3.3.0 YesApi App.User.GetList 2022-03-20 11:16:58 hd215"
}

1) Extraia um valor:

Apenas um valor é extraído da expressão regular e o número correspondente não é -1

1. O modelo não está preenchido

Insira a descrição da imagem aqui

PS: Preencha 1 para o número correspondente, o que significa que se houver vários uuids, o primeiro será correspondido. É o mesmo que o extrator JSON.

Resultado dos testes:

uuid=
uuid_g=1
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
uuid_g1=F118DD335346CE9D7094C97190587108

Como você pode ver, se a expressão regular corresponder ao valor, mas o modelo não for preenchido, será retornado um vazio.

2. Escreva $0$ no modelo

Insira a descrição da imagem aqui

Resultado dos testes:

uuid="uuid":"F118DD335346CE9D7094C97190587108"
uuid_g=1
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
uuid_g1=F118DD335346CE9D7094C97190587108

Você pode ver que se o modelo for preenchido com $0$, o uuid é uuid_g0

3. Escreva $1$ no modelo

Resultado dos testes:

uuid=F118DD335346CE9D7094C97190587108
uuid_g=1
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
uuid_g1=F118DD335346CE9D7094C97190587108

Você pode ver que se o modelo escrever $1$, o uuid é uuid_g1

4. Escreva $2$ no modelo (não existe)

Resultado dos testes:

uuid=null
uuid_g=1
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
uuid_g1=F118DD335346CE9D7094C97190587108

Como você pode ver, se o modelo não existir, o uuid será nulo (nulo será retornado mesmo se Usar valor padrão vazio estiver marcado)

2) Extraia vários valores:

Insira a descrição da imagem aqui

Resultado dos testes:

uuid_1=F118DD335346CE9D7094C97190587108
uuid_1_g=1
uuid_1_g0="uuid":"F118DD335346CE9D7094C97190587108"
uuid_1_g1=F118DD335346CE9D7094C97190587108
uuid_2=AAC71046CFA51B8A55D4367652791D66
uuid_2_g=1
uuid_2_g0="uuid":"AAC71046CFA51B8A55D4367652791D66"
uuid_2_g1=AAC71046CFA51B8A55D4367652791D66
uuid_3=97F22D1CD99D17C2CF29510C728F6570
uuid_3_g=1
uuid_3_g0="uuid":"97F22D1CD99D17C2CF29510C728F6570"
uuid_3_g1=97F22D1CD99D17C2CF29510C728F6570
uuid_4=770A6910AF264AEB73F6ECAFEB5BBFB6
uuid_4_g=1
uuid_4_g0="uuid":"770A6910AF264AEB73F6ECAFEB5BBFB6"
uuid_4_g1=770A6910AF264AEB73F6ECAFEB5BBFB6
uuid_5=690815A62298F01009010BA062773A9F
uuid_5_g=1
uuid_5_g0="uuid":"690815A62298F01009010BA062773A9F"
uuid_5_g1=690815A62298F01009010BA062773A9F
uuid_6=24249E71ABBD72D7C1DE8B3E95A0FBBE
uuid_6_g=1
uuid_6_g0="uuid":"24249E71ABBD72D7C1DE8B3E95A0FBBE"
uuid_6_g1=24249E71ABBD72D7C1DE8B3E95A0FBBE
uuid_matchNr=6

Uma expressão regular tem múltiplos ( ):

1. O modelo está vazio:

Insira a descrição da imagem aqui

Resultado dos testes:

uuid=
uuid_g=2
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108","username":"xey032001"

uuid_g1=F118DD335346CE9D7094C97190587108
uuid_g2=xey032001

Você pode ver que se o modelo estiver vazio, o valor não poderá ser obtido e o uuid estará vazio.

2. Apenas um modelo:

Insira a descrição da imagem aqui

Resultado dos testes:

uuid=F118DD335346CE9D7094C97190587108
uuid_g=2
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108",
"username":"xey032001"

uuid_g1=F118DD335346CE9D7094C97190587108
uuid_g2=xey032001

Você pode ver que se houver apenas um modelo, uuid_g1 será obtido

3. Existem dois modelos:

Insira a descrição da imagem aqui

Resultado dos testes:

uuid=F118DD335346CE9D7094C971q90587108,
xey032001
uuid_g=2
uuid_g0="uuid":"F118DD335346CE9D7094C97190587108",
"username":"xey032001"

uuid_g1=F118DD335346CE9D7094C97190587108
uuid_g2=xey032001

Como você pode ver, uuid assume dois valores uuid_g1 e uuid_g2, e eles são separados por vírgulas

Perceber:

  • Você só precisa preencher um nome de referência, número correspondente e valor padrão, e não precisa corresponder ao número de expressões regulares.
  • Você também pode usar - emenda, desde que o gabarito também use. ou - emenda, por exemplo, preencha o gabarito: 1-2q

Artigo de referência:

Extrator de expressão regular Jmeter_extrator de expressão regular de jmeter_Blog de Long Junheng-blog CSDN

Tutorial introdutório básico do Jmeter [11] - Explicação detalhada das funções comuns: Regular extractor_jmeter regular extractor_Short-tailed little crocodile's blog-CSDN blog

Acho que você gosta

Origin blog.csdn.net/lovedingd/article/details/131979291
Recomendado
Clasificación