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.