jMeter - Funções

Funções JMeter e variáveis ​​de usuário

As funções JMeter são valores especiais que podem preencher campos de qualquer Sampler ou outro elemento em uma árvore de teste.

  • Uma chamada de função se parece com isto -

${__functionName(var1,var2,var3)}
  • _functionName corresponde ao nome de uma função. Por exemplo${__threadNum}.

  • Se um parâmetro de função contém uma vírgula, certifique-se de escapar disso com "\" conforme mostrado abaixo -

${__time(EEE\, d MMM yyyy)}
  • Variáveis ​​são referenciadas como -

${VARIABLE}

Lista de funções

A tabela a seguir lista um grupo de funções agrupadas livremente em tipos -

Tipo de Função Nome Comente
Em formação threadNum Obtenha o número do tópico.
Em formação samplerName Obtenha o nome do amostrador (rótulo).
Em formação máquinaIP Obtenha o endereço IP da máquina local.
Em formação nome da maquina Obtenha o nome da máquina local.
Em formação Tempo Retorna a hora atual em vários formatos.
Em formação registro Registrar (ou exibir) uma mensagem (e retornar o valor).
Em formação logn Registrar (ou exibir) uma mensagem (valor de retorno vazio).
Entrada StringFromFile Leia uma linha de um arquivo.
Entrada FileToString Leia um arquivo inteiro.
Entrada CSVRead Leia o arquivo delimitado por CSV.
Entrada XPath Use uma expressão XPath para ler um arquivo.
Cálculo contador Gere um número crescente.
Cálculo intSum Adicione números internos.
Cálculo longSum Adicione números longos.
Cálculo Aleatória Gere um número aleatório.
Cálculo RandomString Gere uma string aleatória.
Cálculo UUID Gere um UUID tipo 4 aleatório.
Scripting BeanShell Execute um script BeanShell.
Scripting javaScript Processar JavaScript (Mozilla Rhino).
Scripting jexl, jexl2 Avalie uma expressão Commons Jexl.
Propriedades propriedade Leia uma propriedade.
Propriedades P Leia uma propriedade (método abreviado).
Propriedades setProperty Defina uma propriedade JMeter.
Variáveis Dividido Divida uma string em variáveis.
Variáveis V Avalie o nome de uma variável.
Variáveis avaliação Avalie uma expressão de variável.
Variáveis evalVar Avalie uma expressão armazenada em uma variável.
Corda regexFunction Analisa a resposta anterior usando uma expressão regular.
Corda escapeOroRegexpChars Cite meta chars usados ​​pela expressão regular ORO.
Corda Caracteres Gere valores de caracteres Unicode de uma lista de números.
Corda unescape Processar strings contendo escapes Java (por exemplo, \ n & \ t).
Corda unescapeHtml Decodifique strings codificadas em HTML.
Corda escapeHtml Codifique strings usando codificação HTML.
Corda TestPlanName Retorne o nome do plano de teste atual.
  • Existem dois tipos de funções -

    • Valores estáticos definidos pelo usuário (ou variáveis)

    • Funções integradas

  • Os valores estáticos definidos pelo usuário permitem que o usuário defina as variáveis ​​a serem substituídas por seus valores estáticos quando uma árvore de teste é compilada e enviada para execução.

  • As variáveis ​​não podem ser aninhadas; ie${Var${N}} não funciona.

  • A função __V (variável) (versões posteriores a 2.2) pode ser usada para fazer isso - $ {__ V (Var $ {N})}.

  • Este tipo de substituição é possível sem funções, mas é menos conveniente e menos intuitivo.

Onde usar funções e variáveis

Funções e variáveis ​​podem ser escritas em qualquer campo de qualquer componente de teste.

As funções a seguir devem funcionar bem em um plano de teste -

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • funções de propriedade
  • funções de registro

As funções que são usadas no Plano de Teste têm algumas restrições. As variáveis ​​de thread do JMeter não terão sido totalmente configuradas quando as funções forem processadas, portanto, os nomes das variáveis ​​passados ​​como parâmetros não serão configurados e as referências às variáveis ​​não funcionarão. Portanto, split () e regex () e as funções de avaliação de variáveis ​​não funcionarão. A função threadNum () não funcionará e não faz sentido no nível do plano de teste.

Variáveis ​​de referência e funções

  • Referenciar uma variável em um elemento de teste é feito colocando o nome da variável entre '$ {' e '}'.

  • As funções são referenciadas da mesma maneira, mas por convenção, os nomes das funções começam com "__" para evitar conflito com os nomes dos valores do usuário.

  • Algumas funções usam argumentos para configurá-los, e estes são colocados entre parênteses, delimitados por vírgulas. Se a função não aceitar argumentos, os parênteses podem ser omitidos. Por exemplo -

${__BeanShell(vars.put("name"\,"value"))}
  • Alternativamente, você pode definir seu script como uma variável, por exemplo, no Plano de Teste -

SCRIPT     vars.put("name","value")
  • O script pode ser referenciado da seguinte forma -

${__BeanShell(${SCRIPT})}

A caixa de diálogo do auxiliar de função

A caixa de diálogo do auxiliar de função está disponível no JMeter's Options aba.

  • Usando o auxiliar de função, você pode selecionar uma função no menu suspenso e atribuir valores para seus argumentos. A coluna esquerda da tabela fornece uma breve descrição do argumento, e a coluna direita é onde você escreve o valor para esse argumento. Funções diferentes usam argumentos diferentes.

  • Depois de fazer isso, clique no botão "Gerar" e a string apropriada é gerada, que você pode copiar e colar no plano de teste sempre que precisar.

Variáveis ​​Pré-definidas

Algumas variáveis ​​são definidas internamente pelo JMeter. Eles são -

  • COOKIE_cookiename - contém o valor do cookie.

  • JMeterThread.last_sample_ok - se a última amostra foi ou não OK - verdadeiro / falso. Observação - isso é atualizado depois que PostProcessors e Assertions foram executados.

  • Variáveis ​​de START.

Propriedades pré-definidas

Algumas propriedades integradas são definidas pelo JMeter. Eles estão listados abaixo. Por conveniência, as propriedades START também são copiadas para variáveis ​​com os mesmos nomes.

  • START.MS - hora de início do JMeter em milissegundos.

  • START.YMD - hora de início do JMeter como aaaaMMdd.

  • START.HMS - hora de início do JMeter como HHmmss.

  • TESTSTART.MS - hora de início do teste em milissegundos.

Observe que as variáveis ​​/ propriedades de INÍCIO representam o tempo de inicialização do JMeter, não o tempo de início do teste. Eles se destinam principalmente ao uso em nomes de arquivos, etc.