12. Introdução aos ouvintes

Um ouvinte é um componente que mostra os resultados das amostras. Os resultados podem ser mostrados em uma árvore, tabelas, gráficos ou simplesmente gravados em um arquivo de log. Para visualizar o conteúdo de uma resposta de qualquer amostrador, inclua um dos Ouvintes " Exibir árvore de resultados " ou " Exibir resultados na tabela " a um plano de teste. Para visualizar o tempo de resposta graficamente, adicione os resultados do gráfico. A seção de ouvintes da página de componentes tem descrições completas de todos os ouvintes.

Diferentes ouvintes exibem as informações de resposta de maneiras diferentes. No entanto, todos eles gravam os mesmos dados brutos no arquivo de saída - se um for especificado.

O botão " Configurar " pode ser usado para especificar quais campos devem ser gravados no arquivo e se devem ser gravados como CSV ou XML. Os arquivos CSV são muito menores que os arquivos XML, portanto, use CSV se estiver gerando muitas amostras.

O nome do arquivo pode ser especificado usando um nome de caminho relativo ou absoluto. Os caminhos relativos são resolvidos em relação ao diretório de trabalho atual (que tem como padrão o diretório bin/ ). O JMeter também suporta caminhos relativos ao diretório que contém o plano de teste atual (arquivo JMX). Se o nome do caminho começar com " ~/ " (ou o que estiver na propriedade JMeter jmeter.save.saveservice.base_prefix ), o caminho será considerado relativo ao local do arquivo JMX.

Se você deseja gravar apenas alguns samples, adicione o Listener como filho do sampler. Ou você pode usar um Simple Controller para agrupar um conjunto de samplers e adicionar o Listener a ele. O mesmo nome de arquivo pode ser usado por vários samplers - mas certifique-se de que todos usem a mesma configuração!

12.1 Configuração Padrão

Os itens padrão a serem salvos podem ser definidos no arquivo jmeter.properties (ou user.properties ). As propriedades são usadas como as configurações iniciais para o pop-up Listener Config e também são usadas para o arquivo de log especificado pelo sinalizador de linha de comando -l (comumente usado para execuções de teste do modo CLI).

Para alterar o formato padrão, localize a seguinte linha em jmeter.properties :

jmeter.save.saveservice.output_format=

As informações a serem salvas são configuráveis. Para obter o máximo de informações, escolha " xml " como formato e especifique " Modo de teste funcional " no elemento Plano de teste. Se esta caixa não estiver marcada, os dados salvos padrão incluirão um carimbo de hora (o número de milissegundos desde a meia-noite de 1º de janeiro de 1970 UTC), o tipo de dados, o nome do encadeamento, o rótulo, o tempo de resposta, a mensagem e o código, e um indicador de sucesso. Se marcado, todas as informações, incluindo os dados de resposta completos, serão registradas.

O exemplo a seguir indica como definir propriedades para obter um formato delimitado por barra vertical (" | ") que produzirá resultados como:.

timeStamp|time|label|responseCode|threadName|dataType|success|failureMessage
02/06/03 08:21:42|1187|Home|200|Thread Group-1|text|true|
02/06/03 08:21:42|47|Login|200|Thread Group-1|text|false|Teste falhou:
    deve conter: senha etc.

Os jmeter.properties correspondentes que precisam ser configurados são mostrados abaixo. Uma curiosidade neste exemplo é que o output_format é definido como csv , que normalmente indica valores separados por vírgula. No entanto, o default_delimiter foi definido como uma barra vertical em vez de uma vírgula, portanto, a tag csv é um nome incorreto neste caso. (Pense em CSV como significando valores separados por caracteres)

jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.assertion_results_failure_message=true
jmeter.save.saveservice.default_delimiter=|

O conjunto completo de propriedades que afetam a saída do arquivo de resultados é mostrado abaixo.

#------------------------------------------------- --------------------------
# Configuração do arquivo de resultados
#------------------------------------------------- --------------------------

# Esta seção ajuda a determinar como os dados de resultados serão salvos.
# Os valores comentados são os padrões.

# valores legítimos: xml, csv, db. Apenas xml e csv são suportados atualmente.
#jmeter.save.saveservice.output_format=csv


# true quando o campo deve ser salvo; falso caso contrário

# assertion_results_failure_message afeta apenas a saída CSV
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# valores legítimos: nenhum, primeiro, todos
#jmeter.save.saveservice.assertion_results=nenhum
#
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
# response_data não é compatível atualmente com saída CSV
#jmeter.save.saveservice.response_data=false
# Salvar ResponseData para amostras com falha
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
#jmeter.save.saveservice.connect_time=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
#jmeter.save.saveservice.sent_bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=true
#jmeter.save.saveservice.sample_count=false
#jmeter.save.saveservice.idle_time=true

# Formato de carimbo de data/hora - isso afeta apenas os arquivos de saída CSV
# valores legítimos: none, ms ou um formato adequado para SimpleDateFormat
#jmeter.save.saveservice.timestamp_format=ms
#jmeter.save.saveservice.timestamp_format=aaaa/MM/dd HH:mm:ss.SSS

# Para uso com arquivos de valores separados por vírgula (CSV) ou outros formatos
# onde os valores dos campos são separados por delimitadores especificados.
# Predefinição:
#jmeter.save.saveservice.default_delimiter=,
# Para TAB, desde o JMeter 2.3 pode-se usar:
#jmeter.save.saveservice.default_delimiter=\t

# Aplica-se apenas a arquivos no formato CSV:
# Imprime os nomes dos campos como primeira linha no CSV
#jmeter.save.saveservice.print_field_names=true

# Lista opcional de nomes de variáveis ​​JMeter cujos valores devem ser salvos nos arquivos de dados de resultados.
# Use vírgulas para separar os nomes. Por exemplo:
#sample_variables=SESSION_ID,REFERENCE
# NB A implementação atual salva os valores em XML como atributos,
# então os nomes devem ser nomes XML válidos.
# JMeter envia a variável para todos os servidores
# para garantir que os dados corretos estejam disponíveis no cliente.

# Instrução de processamento xml opcional para a linha 2 do arquivo:
#jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="sample.xsl"?>

# Prefixo usado para identificar nomes de arquivos que são relativos à base atual
#jmeter.save.saveservice.base_prefix=~/

# AutoFlush em cada linha escrita na saída XML ou CSV
# Definir isso como verdadeiro resultará em menos perda de dados de resultados de teste em caso de falha
# mas com impacto nas performances, principalmente para testes intensivos (poucas ou sem pausas)
# Desde o JMeter 2.10, isso é falso por padrão
#jmeter.save.saveservice.autoflush=false

# Coloque o carimbo de hora de início nos logs em vez do fim
sampleresult.timestamp.start=true

# Se deve usar System.nanoTime() - caso contrário, use apenas System.currentTimeMillis()
#sampleresult.useNanoTime=true

# Use um thread em segundo plano para calcular o deslocamento nanoTime
# Defina isso como ≤ 0 para desabilitar o thread em segundo plano
#sampleresult.nanoThreadSleep=5000

O formato de data a ser usado para timestamp_format é descrito em SimpleDateFormat . O formato timestamp é usado para gravar e ler arquivos. Se o formato estiver definido como " ms " e a coluna não for analisada como um inteiro longo, o JMeter (2.9+) tentará os seguintes formatos:

  • aaaa/MM/dd HH:mm:ss.SSS
  • aaaa/MM/dd HH:mm:ss
  • aaaa-MM-dd HH:mm:ss.SSS
  • aaaa-MM-dd HH:mm:ss
  • MM/dd/aa HH:mm:ss (isso é para compatibilidade com versões anteriores; não é recomendado como formato)
A correspondência agora também é estrita (não tolerante). O JMeter 2.8 e versões anteriores usavam o modo leniente que poderia resultar em carimbos de data e hora com datas incorretas (os horários geralmente estavam corretos).

12.1.1 Variáveis ​​de Amostra

O JMeter suporta a propriedade sample_variables para definir uma lista de variáveis ​​JMeter adicionais que devem ser salvas com cada amostra nos arquivos JTL. Os valores são gravados em arquivos CSV como colunas adicionais e como atributos adicionais em arquivos XML. Veja acima um exemplo.

12.1.2 Configuração de Salvamento de Resultado de Amostra

Os ouvintes podem ser configurados para salvar itens diferentes nos arquivos de log de resultados (JTL) usando o pop-up Config conforme mostrado abaixo. Os padrões são definidos conforme descrito na seção Configuração padrão do ouvinte acima. Itens com (CSV) após o nome só se aplicam ao formato CSV; itens com (XML) só se aplicam ao formato XML. O formato CSV não pode ser usado atualmente para salvar itens que incluem quebras de linha.


Diálogo de configuração

Observe que os cookies, o método e a string de consulta são salvos como parte da opção " Sampler Data ".

12.2 execuções de teste do modo CLI (lote)

Ao executar no modo CLI, o sinalizador -l pode ser usado para criar um ouvinte de nível superior para a execução de teste. Isso é um acréscimo a quaisquer Ouvintes definidos no plano de teste. A configuração deste listener é controlada por entradas no arquivo jmeter.properties conforme descrito na seção anterior.

Esse recurso pode ser usado para especificar dados e arquivos de log diferentes para cada execução de teste, por exemplo:

jmeter -n -t plano de teste.jmx -l plano de teste_01.jtl -j plano de teste_01.log
jmeter -n -t plano de teste.jmx -l plano de teste_02.jtl -j plano de teste_02.log

Observe que as mensagens de log do JMeter são gravadas no arquivo jmeter.log por padrão. Este arquivo é recriado a cada vez, portanto, se você quiser manter os arquivos de log para cada execução, precisará renomeá-lo usando a opção -j , conforme acima.

O JMeter suporta variáveis ​​no nome do arquivo de log. Se o nome do arquivo contiver aspas simples pareadas, o nome será processado como um formato SimpleDateFormat aplicado à data atual, por exemplo: log_file='jmeter_'yyyyMMddHHmmss'.tmp' . Isso pode ser usado para gerar um nome exclusivo para cada execução de teste.

12.3 Uso de recursos

Os ouvintes podem usar muita memória se houver muitas amostras.

A maioria dos ouvintes atualmente mantém uma cópia de todas as amostras que exibem, além de:

  • Gravador de dados simples
  • Ouvinte BeanShell/JSR223
  • Visualizador de mala direta
  • Monitorar resultados
  • Relatório resumido

Os seguintes ouvintes não precisam mais manter cópias de cada amostra. Em vez disso, as amostras com o mesmo tempo decorrido são agregadas. Menos memória agora é necessária, especialmente se a maioria das amostras levar apenas um ou dois segundos no máximo.

  • Relatório agregado
  • Gráfico agregado

Para minimizar a quantidade de memória necessária, use o Simple Data Writer e use o formato CSV.

12.4 Formato de log CSV

O formato de log CSV depende de quais itens de dados são selecionados na configuração. Apenas os itens de dados especificados são registrados no arquivo. A ordem de aparecimento das colunas é fixa e é a seguinte:

  • timeStamp - em milissegundos desde 01/01/1970
  • decorrido - em milissegundos
  • rótulo - rótulo do amostrador
  • código de resposta - por exemplo , 200 , 404
  • responseMessage - por exemplo, OK
  • nome do tópico
  • dataType - por exemplo , texto
  • sucesso - verdadeiro ou falso
  • mensagem de falha - se houver
  • bytes - número de bytes na amostra
  • sentBytes - número de bytes enviados para a amostra
  • grpThreads - número de threads ativos neste grupo de threads
  • allThreads - número total de threads ativos em todos os grupos
  • URL
  • Nome do arquivo - se Salvar resposta no arquivo foi usado
  • latência - tempo até a primeira resposta
  • connect - tempo para estabelecer a conexão
  • codificação
  • SampleCount - número de amostras (1, a menos que várias amostras sejam agregadas)
  • ErrorCount - número de erros (0 ou 1, a menos que várias amostras sejam agregadas)
  • Nome do host - onde a amostra foi gerada
  • IdleTime - número de milissegundos de tempo 'Ocioso' (normalmente 0)
  • Variáveis , se especificadas

12.5 Formato de log XML 2.1

O formato do XML atualizado (2.1) é o seguinte (as quebras de linha serão diferentes):

<?xml version="1.0" encoding="UTF-8"?>
<testResults version="1.2">

-- Amostra HTTP, com amostras aninhadas

<httpAmostra t="1392" lt="351" ts="1144371014619" s="true"
     lb="Solicitação HTTP" rc="200" rm="OK"
     tn="Ouvir 1-1" dt="texto" de="iso-8859-1" by="12407">
  <httpAmostra t="170" lt="170" ts="1144371015471" s="true"
        lb="http://www.apache.org/style/style.css" rc="200" rm="OK"
        tn="Ouvir 1-1" dt="texto" de="ISO-8859-1" by="1002">
    <responseHeader class="java.lang.String">HTTP/1.1 200 OK
Data: Sex, 07 de abril de 2006 00:50:14 GMT
⋮
Tipo de conteúdo: texto/css
</responseHeader>
    <requestHeader class="java.lang.String">MeuCabeçalho: MeuValor</requestHeader>
    <responseData class="java.lang.String">corpo, td, th {
    tamanho da fonte: 95%;
    família de fontes: Arial, Genebra, Helvetica, sem serifa;
    cor preta;
    cor de fundo: branco;
}
⋮
</responseData>
    <cookies class="java.lang.String"></cookies>
    <method class="java.lang.String">GET</method>
    <queryString class="java.lang.String"></queryString>
    <url>http://www.apache.org/style/style.css</url>
  </httpAmostra>
  <httpAmostra t="200" lt="180" ts="1144371015641" s="true"
     lb="http://www.apache.org/images/asf_logo_wide.gif"
     rc="200" rm="OK" tn="Ouvir 1-1" dt="bin" de="ISO-8859-1" by="5866">
    <responseHeader class="java.lang.String">HTTP/1.1 200 OK
Data: Sex, 07 de abril de 2006 00:50:14 GMT
⋮
Tipo de conteúdo: imagem/gif
</responseHeader>
    <requestHeader class="java.lang.String">MeuCabeçalho: MeuValor</requestHeader>
    <responseData class="java.lang.String">http://www.apache.org/asf.gif</responseData>
      <responseFile class="java.lang.String">Mixed1.html</responseFile>
    <cookies class="java.lang.String"></cookies>
    <method class="java.lang.String">GET</method>
    <queryString class="java.lang.String"></queryString>
    <url>http://www.apache.org/asf.gif</url>
  </httpAmostra>
  <responseHeader class="java.lang.String">HTTP/1.1 200 OK
Data: Sex, 07 de abril de 2006 00:50:13 GMT
⋮
Tipo de conteúdo: texto/html; conjunto de caracteres=ISO-8859-1
</responseHeader>
  <requestHeader class="java.lang.String">MeuCabeçalho: MeuValor</requestHeader>
  <responseData class="java.lang.String"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
⋮
<html>
 <cabeça>
⋮
 </head>
 <corpo>
⋮
 </body>
</html>
</responseData>
  <cookies class="java.lang.String"></cookies>
  <method class="java.lang.String">GET</method>
  <queryString class="java.lang.String"></queryString>
  <url>http://www.apache.org/</url>
</httpAmostra>

-- amostra não HTTP

<sample t="0" lt="0" ts="1144372616082" s="true" lb="Exemplo de amostra"
    rc="200" rm="OK" tn="Ouvir 1-1" dt="texto" de="ISO-8859-1" by="10">
  <responseHeader class="java.lang.String"></responseHeader>
  <requestHeader class="java.lang.String"></requestHeader>
  <responseData class="java.lang.String">Ouça 1-1</responseData>
  <responseFile class="java.lang.String">Mixed2.unknown</responseFile>
  <samplerData class="java.lang.String">ssssss</samplerData>
</amostra>

</testResults>

Observe que o nome do nó de amostra pode ser " amostra " ou " httpSample ".

12.6 Formato de log XML 2.2

O formato dos arquivos JTL é idêntico para 2.2 e 2.1. O formato 2.2 afeta apenas arquivos JMX.

12.7 Atributos de Amostra

Os atributos de amostra têm o seguinte significado:

AtributoContente
porBytes
sbyBytes enviados
deCodificação de dados
dtTipo de dados
ecContagem de erros (0 ou 1, a menos que várias amostras sejam agregadas)
hnNome do host em que a amostra foi gerada
istoTempo ocioso = tempo não gasto na amostragem (milissegundos) (geralmente 0)
LibraEtiqueta
ltLatência = tempo para resposta inicial (milissegundos) - nem todos os samplers suportam isso
ctConnect Time = tempo para estabelecer a conexão (milissegundos) - nem todos os samplers suportam isso
n / DNúmero de threads ativos para todos os grupos de threads
ngNúmero de tópicos ativos neste grupo
rcCódigo de resposta (por exemplo , 200 )
rmMensagem de resposta (por exemplo , OK )
sSinalizador de sucesso ( verdadeiro / falso )
scContagem de amostras (1, a menos que várias amostras sejam agregadas)
tTempo decorrido (milissegundos)
tnNome do Tópico
tstimeStamp (milissegundos desde a meia-noite de 1º de janeiro de 1970 UTC)
varnameValor da variável nomeada
O JMeter permite que variáveis ​​adicionais sejam salvas com o plano de teste. Atualmente, as variáveis ​​são salvas como atributos adicionais. O nome da variável testplan é usado como o nome do atributo. Consulte Variáveis ​​de amostra (acima) para obter mais informações.

12.8 Salvando dados de resposta

Conforme mostrado acima, os dados de resposta podem ser salvos no arquivo de log XML, se necessário. No entanto, isso pode tornar o arquivo bastante grande e o texto deve ser codificado para que ainda seja um XML válido. Além disso, as imagens não podem ser incluídas. Apenas respostas de amostra com o tipo TEXT podem ser salvas.
Outra solução é usar o Post-Processor Save_Responses_to_a_file . Isso gera um novo arquivo para cada amostra e salva o nome do arquivo com a amostra. O nome do arquivo pode então ser incluído na saída do log de amostra. Os dados serão recuperados do arquivo, se necessário, quando o arquivo de log de amostra for recarregado.

12.9 Carregando (lendo) dados de resposta

Para visualizar um arquivo de resultados existente, você pode usar o botão Arquivo " Procurar… " para selecionar um arquivo. Se necessário, basta criar um plano de teste fictício com o Listener apropriado.

Os resultados podem ser lidos de arquivos de formato XML ou CSV. Ao ler arquivos de resultados CSV, o cabeçalho (se houver) é usado para determinar quais campos foram salvos. Para interpretar corretamente um arquivo CSV sem cabeçalho, as propriedades apropriadas do JMeter devem ser configuradas.

O JMeter não limpa nenhum dado atual antes de carregar o novo arquivo, permitindo que os arquivos sejam mesclados. Se você quiser limpar os dados atuais, use o item de menu: Executar  →  Limpar ( Ctrl  +  Shift  +  E ) ou Executar  →  Limpar tudo ( Ctrl  +  E ) antes de carregar o arquivo.

12.10 Salvando dados da GUI do Listener

JMeter é capaz de salvar qualquer ouvinte como um arquivo PNG. Para fazer isso, selecione o ouvinte no painel esquerdo. Clique em Editar  →  Salvar nó como imagem . Uma caixa de diálogo de arquivo será exibida. Digite o nome desejado e salve o ouvinte.

Os ouvintes que geram saída como tabelas também podem ser salvos usando Copiar/Colar. Selecione as células desejadas na tabela e use o atalho de cópia do SO (normalmente Ctrl  +  C ). Os dados serão salvos na área de transferência, de onde podem ser colados em outro aplicativo, por exemplo, uma planilha ou editor de texto.

Figura 1 -
Figura 1 - Editar  →  Salvar nó como imagem
Go to top