Histórico de alterações anteriores

Esta página detalha as alterações feitas apenas nas versões anteriores.
As alterações atuais são detalhadas em Alterações .

As seções de alterações são ordenadas cronologicamente de cima (mais recente) para baixo (menos recente)

Versão 5.4.2

Resumo

Esta versão é uma versão de correção contra a vulnerabilidade CVE-2021-44228: os recursos Apache Log4j2 JNDI não protegem contra LDAP controlado por invasores e outros endpoints relacionados a JNDI.

Novo e notável

Melhorias de experiência do usuário

Alterações incompatíveis

Melhorias

Amostradores HTTP e Gravador de Script de Teste

Outros amostradores

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

Em geral

Alterações não funcionais

  • Atualizado o log4j2 do Apache para 2.16.0 (de 2.13.3).

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

Outros Amostradores

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

Documentação

Em geral

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.
  • Desde o Java 11, a implementação de JavaScript Nashorn foi preterida . Java emitirá os seguintes avisos de descontinuação, se você estiver usando JavaScript baseado em Nashorn.
    Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK
    
    Para silenciar esses avisos, adicione -Dnashorn.args=--no-deprecation-warning aos seus argumentos Java. Isso pode ser alcançado definindo a variável de ambiente JVM_ARGS
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • Com Java 15 a implementação JavaScript Nashorn foi removida . Para adicionar novamente um mecanismo JavaScript compatível com JSR-223, você tem duas opções:
    Usar Mozilla Rhino
    Copie rhino-engine-1.7.13.jar em $JMETER_HOME/lib/ext .
    Usar OpenJDK Nashorn
    A implementação do OpenJDK Nashorn vem como um módulo. Para usá-lo, você terá que baixá-lo e adicioná-lo ao caminho do módulo. Uma maneira hacky de baixar a versão 15.0 e suas dependências e definir o caminho do módulo é descrita abaixo:
    mkdir biblioteca/módulos
    pushd lib/modules
    wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.0/nashorn-core-15.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.0/asm-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.0/asm-commons-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.0/asm-util-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.0/asm-tree-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.0/asm-analysis-9.0.jar
    popd
    export JVM_ARGS="--modulepath $PWD/lib/modules"
    ./bin/jmeter
          

Versão 5.4.1

Resumo

Novo e notável

Melhorias de experiência do usuário

Alterações incompatíveis

  • Reiniciar após a alteração do LAF ter sido restabelecida, ela foi removida no JMeter 5.3

Melhorias

Amostradores HTTP e Gravador de Script de Teste

Outros amostradores

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

Em geral

  • Bug 65028 - Adicionar documentação para a propriedade client.rmi.localport
  • Bug 65012 - Melhor manuseio da exibição de comentários longos na GUI

Alterações não funcionais

  • SaxonHE atualizado para 9.9.1-8 (de 9.9.1-7)
  • ASM atualizado para 9.0 (de 7.3.1)
  • Bouncycastle atualizado para 1,67 (de 1,66)
  • Cafeína atualizada para 2.8.8 (de 2.8.0)
  • Atualizado o codec comum para 1.15 (de 1.14)
  • Commons-io atualizado para 2.8.0 (de 2.7)
  • Atualizado commons-net para 3.7.2 (de 3.7)
  • Jackson atualizado para 2.10.5 (de 2.10.3)
  • Junit atualizado para 4.13.1 (de 4.13)
  • Atualizado ph-commons para 9.5.1 (de 9.4.1)
  • Ph-css atualizado para 6.2.3 (de 6.2.1)
  • Atualizado groovy para 3.0.7 (de 3.0.5)
  • Xstream atualizado para 1.4.15 (de 1.4.14)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 64955 - A senha do keystore não é redefinida ao recarregar
  • Bug 65002 - O gravador de script de teste HTTP(S) cria uma URL de autenticação básica inválida. Contribuição de Ubik Load Pack (https://ubikloadpack.com)
  • Bug 65004 - O gravador de script de teste HTTP(S) calcula a solicitação HTTP incorreta que interrompe o aplicativo. Contribuição de Ubik Load Pack (https://ubikloadpack.com)
  • Bug 64543 - No MacOSX, Darklaf- IntelliJ Theme lança NPE em javax.swing.ToolTipManager.initiateToolTip
  • Bug 65024 - Enviando tipo mime com parâmetro lança IllegalArgumentException
  • Bug 65029 - Tente adivinhar corretamente o URL para applets, quando o download de URLs incorporados está ativado

Outros Amostradores

  • Bug 65034 - Ignore SocketTimeoutException em BinaryTCPClientImpl , quando nenhum EOM Byte é definido. Regressão introduzida pelo commit c190641e4f0474a34a366a72364b0a8dd25bfc81 que corrigiu o Bug 52104 - . Esse bug era lidar com o caso de esperar por uma MOE.

Controladores

Ouvintes

  • Bug 64821 - Ao importar arquivos jtl formatados em XML, os subamostradores serão renomeados
  • Bug 65052 - XPath2 Tester e JSON JMESPath Tester estão ausentes na propriedade view.results.tree.renderers_order

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

Documentação

  • Bug 64960 - Altere a referência do agendador na documentação do Thread Group. Contribuição de Ori Marko
  • Bug 65006 - Ilustração para o elemento HTTP Request Defaults concluído (Figura 4.4) contém informações enganosas

Em geral

  • Bug 64957 - Ao importar o plano de teste de exemplo, o JMeter exibe um NullPointerException
  • Bug 64961 - Darklaf: no Windows 7, NPE em BasicEditorPaneUI.cleanDisplayProperties com Darklaf Intellij
  • Bug 64963 - A dica de ferramenta de comentário em branco é visível
  • Bug 64969 - RemoteJMeterEngineImpl#rexit não desexporta RemoteJMeterEngineImpl na saída. Contribuição de luo_isaiah em qq.com
  • Bug 64984 - Darklaf LAF: Selecionar um elemento de teste não funciona em determinadas resoluções de tela no Windows. Com a ajuda de Jannis Weis
  • Bug 65008 - SampleResult.setIgnore() chamado de PostProcessor não é considerado
  • Bug 64993 - Daklaf LAF: A navegação do menu não funciona com atalhos de teclado. Com a ajuda de Jannis Weis
  • Bug 65013 - O código POST multipart/form-data cURL com argumentos entre aspas não é importado corretamente

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.
  • Desde o Java 11, a implementação de JavaScript Nashorn foi preterida . Java emitirá os seguintes avisos de descontinuação, se você estiver usando JavaScript baseado em Nashorn.
    Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK
    
    Para silenciar esses avisos, adicione -Dnashorn.args=--no-deprecation-warning aos seus argumentos Java. Isso pode ser alcançado definindo a variável de ambiente JVM_ARGS
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • Com Java 15 a implementação JavaScript Nashorn foi removida . Para adicionar novamente um mecanismo JavaScript compatível com JSR-223, você tem duas opções:
    Usar Mozilla Rhino
    Copie rhino-engine-1.7.13.jar em $JMETER_HOME/lib/ext .
    Usar OpenJDK Nashorn
    A implementação do OpenJDK Nashorn vem como um módulo. Para usá-lo, você terá que baixá-lo e adicioná-lo ao caminho do módulo. Uma maneira hacky de baixar a versão 15.0 e suas dependências e definir o caminho do módulo é descrita abaixo:
    mkdir biblioteca/módulos
    pushd lib/modules
    wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.0/nashorn-core-15.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.0/asm-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.0/asm-commons-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.0/asm-util-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.0/asm-tree-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.0/asm-analysis-9.0.jar
    popd
    export JVM_ARGS="--modulepath $PWD/lib/modules"
    ./bin/jmeter
          

Versão 5.4

Resumo

Novo e notável

Melhorias de experiência do usuário

Bug 62179 - Bug 64658 - A tela inicial agora é modal de aplicativo em vez de modal de sistema, portanto não bloqueia outros aplicativos quando o JMeter está inicializando.

Alterações incompatíveis

  • Remova a funcionalidade do registrador LogKit de algumas classes. Isso foi feito para remover completamente a classe LoggingManager (ela está obsoleta desde o JMeter 3.2), mas como jmeter-plugins dependiam dela, LoggingManager e nosso adaptador LogKit permanecerão para esta versão (mas ainda está obsoleto).

Melhorias

Amostradores HTTP e Gravador de Script de Teste

Outros amostradores

  • Bug 64555 - Defina o campo de cabeçalho JMSType por meio de JMSProperties. Contribuição de Daniel van den Ouden

Controladores

Ouvintes

  • Pull request #544 - Adicione BackendListener que envia resultados "brutos" para o InfluxDB. Contribuição de Graham Russell (graham em ham1.co.uk)

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

  • Bug 64824 - Relatório de painel/HTML: renomear KO para FAIL
  • Bug 64936 - Aumente o generate_report_ui.generation_timeout para 5 minutos para lidar com grandes testes de desempenho

Em geral

  • Bug 64446 - Melhor análise de comandos curl com barra invertida nos finais de linha e suporte ao método PUT com argumentos de dados
  • Pull request #599 - Certifique-se de que todos os botões adicionados à barra de ferramentas se comportem/apareçam de forma consistente. Contribuição de Jannis Weis
  • Bug 64581 - Permitir que SampleResult#setIgnore influencie o comportamento no erro do amostrador
  • Bug 64680 - Volte para JMETER_HOME na inicialização para detectar o diretório de instalação do JMeter
  • Bug 64787 - Pull request #630 - Adicione tradução coreana. Contribuição de Woonsan Ko (woonsan em apache.org)
  • Bug 64776 - Adicione a capacidade de instalar SecurityProvider adicional. Contribuição de Timo (ASF.Software.Timo em Leefers.eu)

Alterações não funcionais

  • Sistema de compilação atualizado do Gradle para 6.7 (de 6.6)
  • Pull request #594 - Atualizado neo4j-java-driver para 4.2.0 (de 1.7.5)
  • Bug 64454 - Mensagem de erro mais precisa, quando nenhum valor de fonte de dados pode ser encontrado no amostrador JDBC
  • Bug 64440 - Exceções de log relatadas via JMeterUtils#reportToUser mesmo quando no modo GUI
  • Pull request #591 - Remova o sinalizador sudo obsoleto do arquivo travis. Deng Liming (liming.d.pro em gmail.com)
  • Darklaf atualizado para 2.4.10 (de 2.1.1)
  • Groovy atualizado para 3.0.5 (de 3.0.3)
  • Pull request #596 - Use palavras neutras na documentação
  • Bug 63809 - Pull request #557 - Atualizado commons-collections para 4.4 (de 3.2.2) mantendo os jars para o antigo commons-collections 3.x para compatibilidade
  • Pull request #598 - Adicione outra opção para criar diferenças na página de construção. Contribuição de jmetertea (github.com/jmetertea)
  • Pull request #609 - Faça uso da API mais recente para instalação do darklaf. Jannis Weis
  • Pull request #612 - Corrija erros de digitação em README.md . Baseado em patches de Pooja Chandak (poojachandak002 em gmail.com)
  • Pull request #613 - Adicione documentação para propriedades Darklaf. Jannis Weis
  • Atualize SpotBugs para 4.1.2 (de 4.1.1), atualize spotbugs-gradle-plugin para 4.5.0 (de 2.0.0)
  • Atualize o plug-in Gradle org.sonarqube para 3.0 (de 2.7.1)
  • Atualize o Apache ActiveMQ para 5.16.0 (de 5.15.11)
  • Atualize o Bouncycastle para 1.66 (de 1.64)
  • Atualize o Apache commons-io para 2.7 (de 2.6)
  • Atualize o Apache commons-lang3 para 3.11 (de 3.10)
  • Atualize o Apache commons-net para 3.7 (de 3.6)
  • Atualize o Apache commons-pool2 para 2.9.0 (de 2.8.0)
  • Atualize o texto comum do Apache para 1.9 (de 1.8)
  • Atualize equalsverifier para 3.4.2 (de 3.1.13)
  • Atualize junit5 para 5.6.2 (de 5.6.0)
  • Atualize o log4j2 do Apache para 2.13.3 (de 2.13.1)
  • Atualize rsyntaxtextarea para 3.1.1 (de 3.1.0)
  • Atualize JUnit5 para 5.7.0 (de 5.6.2)
  • Atualize o Rhino para 1.7.13 (de 1.7.12)
  • Atualize o XStream para 1.4.14 (de 1.4.14.1)
  • Atualize o Apache commons-dbcp2 para 2.8.0 (de 2.7.0)
  • Pull request #635 - Corrija algumas proporções de imagem na documentação. Patch fornecido por Vincent Daburon (vdaburon em gmail.com)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 64479 - Regressão: HTTP(s) Script Recorder impede o desligamento adequado no modo não-GUI
  • Bug 64653 - Excluir Javascript e JSON da análise de conjuntos de caracteres de formulários por proxy

Outros Amostradores

Controladores

  • Bug 64795 - Gerar relatório de resumo pode não gerar uma linha de resumo no intervalo configurado ( summariser.interval ): Esclarecer a documentação

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 64638 - JSON JMESPath Assertion / JSON Assertion: a GUI de abertura mostra uma barra de rolagem horizontal que continua deslizando
  • Bug 64915 - JMeter Cache Manager se comportando mal quando "Use Cache-Control/Expires header" está marcado

Funções

I18N

Relatório / Painel

  • Bug 64547 - Relatório/Painel: Garanta que os códigos de resposta dos gráficos por segundo não sejam quebrados pelo código de resposta vazio em SampleResult. Contribuição de Ubik Load Pack (https://ubikloadpack.com)
  • Bug 64617 - Relatório HTML: No gráfico, Percentis de tempo de resposta ao longo do tempo, o percentil 90,95,99 corresponde, na realidade, aos percentis 0,90, 0,95 e 0,99
  • Bug 64553 - Ao usar o Transaction Controller, os bytes de envio e os bytes recebidos são exibidos como 0 no influxdb(BackendListener)
  • Bug 64624 - Use escape menos agressivo para JSON Strings em mensagens de erro de relatórios

Documentação

  • Pull request #571 - Corrija o nome documentado da CA gerada ao usar o gravador de script de proxy. Parte de um PR maior. Vincent Daburon (vdaburon em gmail.com)
  • Altere a documentação da funcionalidade de cabeçalho especial do servidor espelho para refletir a implementação.

Em geral

  • Bug 64448 - Duplicação de variável definida pelo usuário no menu de contexto do botão direito
  • Bug 64499 - Sair do JMeter quando jmeterengine.stopfail.system.exit=true leva muito tempo se os encadeamentos não forem interrompidos
  • Bug 64510 - Darklaf- IntelliJ Theme lança NPE no DarkTreeUI no MacOS
  • Bug 64594 - Não é possível inserir valores de variáveis ​​em vez de valores numéricos em componentes usando PowerTableModel (impacta plugins de terceiros como Throughput Shaping Timer)
  • Bug 64475 - Menu Gerar Relatório HTML: Quando a geração do relatório falha devido ao tempo limite, a mensagem de erro não é explícita. Contribuição de Ubik Load Pack (https://ubikloadpack.com)
  • Bug 64627 - A manipulação programática do fluxo de controle via métodos de API do JMeterContext não está funcionando como antes da versão 5.0. Contribuição de Till Neunast
  • Bug 64647 - groovy-dateutil está ausente na distribuição
  • Bug 64640 - Darklaf: NPE em com.github.weisj.darklaf.ui.DarkPopupFactory.getPopupType(DarkPopupFactory.java:96)
  • Bug 64641 - Darklaf: NPE em com.github.weisj.darklaf.ui.tree.DarkTreeUI.isChildOfSelectionPath(DarkTreeUI.java:603) ~[darklaf-core-2.4.2-SNAPSHOT.jar:2.4.2-SNAPSHOT]
  • Bug 64453 - Darklaf: falha Salvar Plano de Teste como Nova Pasta
  • Bug 64625 - Darklaf: tentar selecionar uma pasta em Browse leva a um pop-up de erro e stacktrace
  • Bug 64711 - As cores da área de texto não são boas em modos escuros. Contribuição de Jannis Weis
  • Bug 64935 - Uma classe de plugin quebrada não deve impedir que o JMeter seja iniciado

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Michael Weidmann (https://github.com/michaelweidmann)
  • Deng Liming (liming.d.pro em gmail.com)
  • jmetertea (https://github.com/jmetertea)
  • Pacote de carregamento Ubik
  • Jannis Weis
  • Daniel van den Ouden
  • Até Neunast (https://github.com/tilln)
  • Pooja Chandak (poojachandak002 em gmail.com)
  • Vincent Daburon (vdaburon em gmail.com)
  • Woonsan Ko (woonsan em apache.org)
  • Timo (ASF.Software.Timo em Leefers.eu)
  • Graham Russell (graham em ham1.co.uk)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

  • Hiroyoshi Mitsumori (mitsumori em mis.dev)

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.
  • Desde o Java 11, a implementação de JavaScript Nashorn foi preterida . Java emitirá os seguintes avisos de descontinuação, se você estiver usando JavaScript baseado em Nashorn.
    Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK
    
    Para silenciar esses avisos, adicione -Dnashorn.args=--no-deprecation-warning aos seus argumentos Java. Isso pode ser alcançado definindo a variável de ambiente JVM_ARGS
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • Com Java 15 a implementação JavaScript Nashorn foi removida . Para adicionar novamente um mecanismo JavaScript compatível com JSR-223, você tem duas opções:
    Usar Mozilla Rhino
    Copie rhino-engine-1.7.13.jar em $JMETER_HOME/lib/ext .
    Usar OpenJDK Nashorn
    A implementação do OpenJDK Nashorn vem como um módulo. Para usá-lo, você terá que baixá-lo e adicioná-lo ao caminho do módulo. Uma maneira hacky de baixar a versão 15.0 e suas dependências e definir o caminho do módulo é descrita abaixo:
    mkdir biblioteca/módulos
    pushd lib/modules
    wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.0/nashorn-core-15.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.0/asm-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.0/asm-commons-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.0/asm-util-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.0/asm-tree-9.0.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.0/asm-analysis-9.0.jar
    popd
    export JVM_ARGS="--modulepath $PWD/lib/modules"
    ./bin/jmeter
          

Versão 5.3

Resumo

Novo e notável

Melhorias de experiência do usuário

Adicionado visual e sensação de Darklaf que melhora vários componentes.

O nível de recuo da árvore é mais fácil de seguir:

Árvore JMeter com tema Darklaf Darcula
Árvore JMeter com tema Darklaf Darcula
Árvore JMeter com tema Darklaf IntelliJ
Árvore JMeter com tema Darklaf IntelliJ

Novo visual e temas. Luz: IntellJ, Luz Solarizada, Luz de Alto Contraste. Escuro: OneDark, Solarized Dark, HighContrast Dark.

Quando um elemento na árvore está desabilitado, todos os seus descendentes são mostrados em cinza. Por exemplo, While Contoller está desabilitado na árvore a seguir, então seus filhos são cinza. É puramente uma alteração da interface do usuário e o comportamento não é alterado.

Enquanto o controlador está desabilitado, seus filhos são cinza
Enquanto o controlador está desabilitado, seus filhos são cinza

O menu de contexto da árvore é mostrado mesmo no caso de a seleção do nó ser alterada. Anteriormente, o pop-up desaparecia e era necessário selecionar um nó primeiro e só então iniciar o pop-up.

A aparência agora pode ser atualizada sem reinicialização

Use CTRL  +  ALT  +  roda para aumentar as fontes. O atalho anterior era CTRL  +  SHIFT  +  wheel , no entanto, entrava em conflito com a rolagem horizontal.

O zoom no aplicativo é mais consistente (por exemplo, às vezes nem todos os rótulos ou mesmo os painéis foram dimensionados). Por exemplo: visualizador de log, editor de código JSR223 não foram dimensionados anteriormente com recurso de zoom-in/out

O menu de contexto da árvore é mostrado para a linha completa, não apenas para o rótulo

Suporte para desfazer e refazer para campos editáveis. As teclas são CTRL  +  Z / CTRL  +  SHIFT  +  Z ou CMD  +  Z / CMD  +  SHIFT  +  Z , dependendo do sistema operacional. Desfazer é implementado em nível de campo (cada campo tem seu próprio histórico), e o histórico é invalidado quando a seleção da árvore é alterada.

Marque o idioma atualmente selecionado no menu de opções.

Marque o nível de log atualmente selecionado no menu de opções.

Retrabalho de muitas UI de elemento de teste (solicitação JUnit, controlador ForEach, controlador if, controlador de taxa de transferência, whileController, configuração de contador, extrator XPath2, caixa de diálogo auxiliar de função, pop-up de pesquisa, elementos JMS)

Alterações incompatíveis

  • O valor padrão de httpclient4.time_to_live foi modificado de 2000 para 60000 , isso significa que as conexões HTTP durarão mais do que antes. Isso tem impacto na criação da conexão e no handshake SSL, veja Bug 64289
  • A atualização para o Groovy 3 ( Pull request # 590 - ) pode quebrar algum código Groovy antigo de seus testes. Dê uma olhada nas notas de atualização para Groovy 3

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 64160 - Testar HTTP/S Test Script Recorder: Nomear controlador de transação/controlador simples usando prefixo sem sufixo " -XXXX "
  • Bug 64289 - Faça httpclient4.time_to_live para 60000 para estar mais próximo do comportamento típico do navegador

Outros amostradores

  • Bug 64288 - Solicitação JUnit: Melhorar UX
  • Bug 64407 - Melhorar a experiência do usuário do JMS Publisher. Contribuição de Ubik Load Pack (https://ubikloadpack.com)
  • Bug 64408 - Melhore a UX do Assinante JMS. Contribuição de Ubik Load Pack (https://ubikloadpack.com)

Controladores

Ouvintes

  • Bug 64150 - Exibir árvore de resultados: permitir a edição de dados de resposta em testadores
  • Bug 63822 - Exibir árvore de resultados: manter a posição do painel dividido ao alternar o modo de renderização

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 64091 - A geração de programação precisa do Temporizador de Taxa de Transferência foi aprimorada significativamente (por exemplo, 2 segundos para amostras de 10 milhões)
  • Bug 64281 - Configuração do contador: melhorar UX
  • Bug 64283 - Extrator XPath2: Melhore o UX

Funções

  • Bug 64070 - função _timeshift não funciona com formatadores de deslocamento
  • Bug 64275 - Caixa de Diálogo Auxiliar de Função: Melhore o UX

I18N

  • Bug 64102 - Adicionar tradução chinesa para o menu Ferramentas. Contribuição de Liu XP (liu_xp2003 em sina.com)

Relatório / Painel

  • Bug 64380 - Adicionar um campo ' Mediano ' ao painel e fazer com que os campos de percentil de tempo de resposta suportem números de ponto flutuante. Contribuição de Keith Mo (https://github.com/keithmork)
  • Bug 64378 - A geração de relatório HTML não deve falhar se um plugin tiver registrado um gráfico e não estiver mais presente no classpath, em vez disso, emita um aviso

Em geral

  • Bug 63458 - Solicitação pull #551 - Adicionar novo modelo "Plano de teste de teste funcional [01]". Contribuição de Sebastian Boga (sebastian.boga em endava.com)
  • Bug 64119 - Use o primeiro renderizador da propriedade view.results.tree.renderers_order como padrão em Exibir Árvore de Resultados
  • Bug 64148 - Use ícones cinza para elementos desabilitados na árvore, exiba a subárvore como cinza
  • Bug 64198 - Permitir espaços em expressões ${...} em torno de funções.
  • Bug 64276 - Pop-up de pesquisa: melhorar UX
  • Pull request #573 - Melhore o tempo de inicialização: pule a inicialização da interface do usuário do plano de teste
  • Pull request #585 - Adicionado JEXL3 como um alias de sintaxe para JSyntaxTextArea. Contribuição de drivera-armedia (https://github.com/drivera-armedia)
  • Pull request #590 - Atualize o Groovy para 3.0.3.

Alterações não funcionais

  • Sistema de compilação atualizado de Gradle para 6.3 (de 6.1), Java 14 pode ser usado agora para a compilação
  • Bug 63963 - Pull request #546 - Jackson atualizado para 2.10.3 (de 2.9.10)
  • Bug 64120 - Atualizado jsoup para 1.13.1 (de 1.12.1)
  • Bug 63809 - Atualizado commons-dbcp2 para 2.7.0 (de 2.5.0)
  • Apache ActiveMQ atualizado para 5.15.11 (de 5.15.8)
  • Bouncycastle atualizado para 1,64 (de 1,60)
  • ASM atualizado para 7.3.1 (de 7.1)
  • Atualizado Apache commons-codec para 1.14 (de 1.13)
  • Atualizado Apache commons-pool para 2.8.0 (de 2.7.0)
  • Atualizado equalsverifier para 3.1.9 (de 3.1.12)
  • Atualizado o Apache Groovy para 2.4.18 (de 2.4.16)
  • Atualizado hsqldb para 2.5.0 (de 2.4.1)
  • Hamcrest atualizado para 2.2 (de 2.1)
  • Atualizado Apache httpclient e httpmime para 4.5.12 (de 4.5.10)
  • Atualizado Apache httpcore e httpcore-nio para 4.4.13 (de 4.4.12)
  • Atualizado Apache Tika para 1.24.1 (de 1.22)
  • Jmespath atualizado para 0.5.0 (de 0.3.0)
  • Apache log4j atualizado para 2.13.1 (de 2.12.1)
  • Atualizado junit4 para 4.13 (de 4.12)
  • Junit5 atualizado para 5.6.0 (de 5.5.1)
  • Atualizado slf4j para 1.7.30 (de 1.7.28)
  • Ph-commons atualizado para 9.4.1 (de 9.3.7)
  • Ph-css atualizado para 6.2.2 (de 6.2.0)
  • Atualizado rsyntaxtextarea para 3.1.0 (de 3.0.4)
  • Rinoceronte atualizado para 1.7.12 (de 1.7.11)
  • SaxonHE atualizado para 9.9.1-7 (de 9.9.1-5)
  • Cglib atualizado para 3.2.12 (de 3.2.9)
  • Atualizado commons-lang3 para 3.10 (de 3.9)
  • Marcador livre atualizado para 2.3.30 (de 2.3.29)
  • Atualizado hamcrest-date para 2.0.7 (de 2.0.4)
  • Atualizado equalsverifier para 3.1.13 (de 3.1.12)
  • Xstream atualizado para 1.4.11.1 (de 1.4.11)
  • Solicitação pull #559 - Adicione uma nota à fonte de TrustAllSSLSocketFactory, informando que não é seguro confiar em todos. Baseado em um PR de YYTVicky (yytvicky no github)
  • Pull request #588 - Adicione documentação sobre o uso do InfluxDB v2 para resultados em tempo real. Baseado no PR de Jakub Bednář (jakub.bednar em gmail.com)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 64400 - Tornar a classificação de amostras gravadas em controladores de transação mais previsível
  • Bug 64267 - Quando a autenticação preemptiva está desabilitada, o HTTP Sampler não responde automaticamente ao desafio de autenticação básica

Outros Amostradores

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 64091 - Temporizador de taxa de transferência preciso pode produzir menos amostras quando a duração de teste baixa é usada
  • Bug 64142 - Presença de DebugPostProcessor no plano de teste quebra ActiveThread ao longo do tempo no relatório devido a informações ausentes
  • Bug 64196 - Recurse em subamostradores mais profundamente ao verificar asserções
  • Bug 64196 - Recurse em sampleResults para AbstractScopedTestElement#getSampleList
  • Bug 64381 - PreciseThroughputTimer: No encerramento, a mensagem de log contém valor negativo

Funções

I18N

Relatório / Painel

  • Bug 64059 - Percentis de tempo de resposta ao longo do tempo, incapaz de alterar os percentis

Documentação

  • Pull request #547 - Documentação correta do nível de log. Contribuição de jmetertea
  • Pull request #548 - Corrija erros de digitação na documentação. Contribuição de jmetertea
  • Bug 64022 - Corrija a tradução em chinês para "Ignorar blocos de subcontrolador". Fornecido por yangxiaofei77 (yangxiaofei77 em gmail.com)
  • Pull request #552 - Corrige a descrição de alocação da porta client.rmi.localport . Contribuição de anant-93
  • Pull request #543 - Esclareça a documentação da função __StringToFile em relação ao valor padrão de Append to file? parâmetro. Contribuição de Ori Marko
  • Bug 64302 - Links corretos para a API JMeter em documentos imprimíveis e práticas recomendadas do BeanShell e para o site de implementação JavaFX em todos os documentos. Relatado por 2477441814 (2477441814 em qq.com)

Em geral

  • Bug 63945 - NPE ao abrir um arquivo após a alteração do sistema de arquivos
  • Bug 64034 - Os scripts de shell falham se houver espaço no caminho JAVA_HOME . Contribuição de ray7219 (ray7219 em hotmail.com)
  • Bug 63856 - Definir connectTime em amostras pai ao usar um controlador de transação
  • Bug 64227 - Erro ao carregar modelos no Windows
  • TestPlan UI: ignore a adição da entrada ao classpath se o usuário clicar em cancelar

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Jannis Weis
  • Stefan Seide (stefan em trilobyte-se.de)
  • jmetertea
  • raio7219
  • Sebastian Boga (sebastian.boga em endava.com)
  • Liu XP (liu_xp2003 em sina.com)
  • anant-93 (https://github.com/anant-93)
  • Ori Marko (orimarko em gmail.com)
  • Keith Mo (https://github.com/keithmork)
  • drivera-armedia (https://github.com/drivera-armedia)
  • Pacote de carregamento Ubik
  • Jakub Bednář (jakub.bednar em gmail.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

  • Michael McDermott (mcdermott.michaelj em gmail.com)
  • yangxiaofei77 (yangxiaofei77 em gmail.com)
  • Markus Wolf (wolfm em t-systems.com)
  • Pierre Astruc (pierre.astruc em evertest.com)
  • YYTVicky (yytvicky no github)
  • 2477441814 em qq.com

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.
  • Desde o Java 11, a implementação de JavaScript Nashorn foi preterida . Java emitirá os seguintes avisos de descontinuação, se você estiver usando JavaScript baseado em Nashorn.
    Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK
    
    Para silenciar esses avisos, adicione -Dnashorn.args=--no-deprecation-warning aos seus argumentos Java. Isso pode ser alcançado definindo a variável de ambiente JVM_ARGS
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    

Versão 5.2.1

Resumo

Novo e notável

Esta versão é uma versão de correção de bugs menor. Consulte a página Histórico de alterações para ver as últimas notas de lançamento da versão 5.2.

Alterações incompatíveis

Melhorias

Amostradores HTTP e Gravador de Script de Teste

Outros amostradores

  • Bug 63926 - Configuração de conexão JDBC: Adicionar capacidade de definir propriedades de conexão

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

Em geral

Alterações não funcionais

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

Outros Amostradores

Controladores

Ouvintes

  • Bug 63906 - NPE para o ouvinte de back-end do InfluxDB durante o teste de failover

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

Relatório / Painel

Documentação

Em geral

  • Bug 63910 - Poms maven quebrados na versão 5.2 lançada
  • Bug 63911 - O conteúdo do ApacheJMeter_config.jar foi alterado (bin movido para execução e arquivos ausentes)

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.
  • Desde o Java 11, a implementação de JavaScript Nashorn foi preterida . Java emitirá os seguintes avisos de descontinuação, se você estiver usando JavaScript baseado em Nashorn.
    Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK
    
    Para silenciar esses avisos, adicione -Dnashorn.args=--no-deprecation-warning aos seus argumentos Java. Isso pode ser alcançado definindo a variável de ambiente JVM_ARGS
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    

Versão 5.2

Resumo

Novo e notável

Esta versão é uma versão principal. Consulte a página Histórico de alterações para ver as últimas notas de lançamento da versão 5.1.1.

Alterações incompatíveis

  • O Gravador de Script de Teste HTTP(S) agora anexa o número no final dos nomes, enquanto anteriormente o adicionava no início. Veja Bug 63450
  • Ao usar XPath Assertion com uma expressão XPath retornando um booleano, True se nada corresponder não teve efeito e sempre retornou true, consulte Bug 63455
  • A análise de XML agora recusa XML não seguro, isso afeta os seguintes recursos:
    • Declaração XML
    • XMLSchemAssertion
    • Função XPath
    • Extratores XPath 1 e 2
    • Asserções XPath 1 e 2

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 63450 - Gravador de script de teste HTTP(S): Coloque o número no final em vez de no início
  • Bug 63790 - Download de recursos incorporados: otimizar a análise de CSS removendo o local de origem

Outros amostradores

  • Bug 63406 - Configuração de conexão JDBC: nova opção de pré-inicialização para inicializar o pool de conexões. Contribuição de Franz Schwab (franz.schwab em exasol.com)
  • Bug 63561 - Solicitação JDBC: Permite buscar apenas um certo número de linhas. Contribuição de Franz Schwab (franz.schwab em exasol.com)
  • Bug 63801 - Adiciona suporte ao protocolo Bolt para banco de dados Neo4j. Contribuição de GraphAware (www.graphaware.com)

Controladores

  • Bug 63565 - Se Controller: GC emitir JMeter durante a execução de resistência ao usar com "Interpret Condition as Variable Expression?" desmarcado => Melhorar a documentação

Ouvintes

  • Bug 63720 - BackendListener: InfluxDBBackendListenerClient Adicionar suporte para InfluxDB 2. Contribuição de Jakub Bednář (https://github.com/bednar)
  • Bug 63770 - Exibir árvore de resultados: Adicionar testador JMESPath. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 62863 - Habilite os keystores PKCS11 para uso com o KeyStore Manager. Baseado no patch de Clifford Harms (clifford.harms em gmail.com).
  • Solicitação pull #457 - Ligeira melhoria de desempenho no PoissonRandomTimer usando ThreadLocalRandom. Baseado em um patch de Xia Li.
  • Bug 62787 - Nova Asserção XPath2 suportando XPath2 com melhor desempenho que a Asserção XPath . Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63643 - Ignore a BOM em arquivos abertos através do FileServer e use a BOM para detectar a codificação de caracteres, se nenhuma for fornecida explicitamente. Relatado por Havlicek Honza (havlicek.honza em gmail.com)
  • Bug 63727 - Novo elemento JMESPath Extractor para facilitar a extração de JSON usando a tecnologia JMESPath . Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63763 - Novo elemento JMESPath Assertion para facilitar a assertiva em JSON usando a tecnologia JMESPath . Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63775 - Permitir que o Boundary Extractor aceite limites vazios

Funções

  • Bug 63219 - Nova função __StringToFile para salvar/anexar uma string em um arquivo. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Use AtomicInteger para __counter em vez de sincronização por conta própria

I18N

Relatório / Painel

  • Bug 63471 - StringConverter s usados ​​para geração de relatórios devem ignorar espaços em branco ao redor de números.

Em geral

  • Bug 63396 - Elementos de teste JSR223: a descrição dos parâmetros é enganosa, o mesmo para o script
  • Bug 63480 - XPathAssertion e XPathAssertion2: Melhora a cobertura de teste para entrada proveniente de variável. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63452 - Ferramentas / Importar do cURL: Cobertura completa de todas as opções de linha de comando válidas no caso de uso do JMeter. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63419 - Ferramentas / Importar de cURL: Adicionada a capacidade de importar um conjunto de comandos cURL de um arquivo. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63760 - JOrphanUtils: adicionar gerador de senha alfanumérica aleatória
  • Bug 63355 - Exibir árvore de resultados: a opção de exibição do navegador não está disponível desde o Java 11, documente como disponibilizá-la, veja isto
  • Bug 62861 - Thread Group: Fornece a capacidade de configurar se uma nova iteração é um novo usuário ou mesmo usuário (seria aplicado no Cookie Manager, Cache Manager e httpclient.reset_state_on_thread_group_iteration). Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63616 - Corrigir Javadoc:
    JMeterContext#getThreadNum()
    começa em 0 e não em 1. Contribuição de Ori Marko (orimarko em gmail.com)
  • Atualizado para httpclient/httpmime 4.5.10 (de 4.5.7)
  • Atualizado para dnsjava 2.1.9 (de 2.1.8)
  • Atualizado para jsoup 1.12.1 (de 1.11.3)
  • Atualizado para rsyntaxtextarea 3.0.4 (de 3.0.2)
  • Atualizado para cafeína 2.8.0 (de 2.6.2)
  • Atualizado para commons-codec 1.13 (de 1.11)
  • Atualizado para commons-lang3 3.9 (de 3.8.1)
  • Atualizado para commons-pool 2.7 (de 2.6)
  • Atualizado para texto comum 1.8 (de 1.6)
  • Atualizado para o freemarker 2.3.29 (de 2.3.28)
  • Atualizado para httpcore/httpcore-nio 4.12 (de 4.11)
  • Atualizado para jodd 5.0.13 (de 5.0.6)
  • Atualizado para log4j 2.12.1 (de 2.11.1)
  • Atualizado para ph-commons 9.3.7 (de 9.2.1)
  • Atualizado para ph-css 6.2.0 (de 6.1.1)
  • Atualizado para o Mozilla Rhino 1.7.11 (de 1.7.10)
  • Atualizado para Saxon-HE 9.9.1-5 (de 9.9.1-1)
  • Atualizado para slf4j 1.7.28 (de 1.7.25)
  • Atualizado para tika-core e tika-parsers 1.22 (de 1.21)
  • Anotações jackson atualizadas, jackson-core e jackson-databind para 2.9.10 (de 2.9.8)

Alterações não funcionais

  • Migrado do subversion para o Git
  • Bug 63630 - Mudar a compilação do Apache Ant para o Gradle
  • Bug 63529 - Adicione mais testes de unidade para org.apache.jorphan.util.JOrphanUtils. Contribuição de John Bergqvist (John.Bergqvist em diffblue.com)
  • Atualizado para o último estilo de verificação (versão 8.22)
  • Limpeza de código em CompareAssertion e outros locais. Baseado no patch de Graham Russell (graham em ham1.co.uk)
  • Pull request #491 - Aumente a cobertura das métricas do Graphite. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #520 - Substitua classes anônimas por expressões lambda. Contribuição de Graham Russell (graham em ham1.co.uk).
  • Pull request #524 - Migração de JUnit 4 para JUnit 5. Contribuição de Graham Russell (graham em ham1.co.uk).

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 63298 - Solicitações HTTP com URLs codificados estão sendo enviados em formato decodificado
  • Bug 63364 - Ao definir subresults.disable_renaming=true , os sub-resultados ainda são renomeados usando seu SampleLabel pai enquanto não deveriam. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63129 - O JMeter não pode identificar a codificação durante o primeiro envio da página. Baseado em parte na análise e relações públicas feitas por Naveen Nandwani (naveen.nandwani em india.nec.com)
  • Bug 62672 - Solicitação HTTP envia solicitações duplas ao usar proxy com autenticação. Baseado no patch de Artem Fedorov (artem.fedorov em blazemeter.com) e contribuído por BlazeMeter.
  • Bug 63574 - Gerenciador de cache HTTP não armazena recursos em cache se o cabeçalho Cache-Control estiver ausente.

Outros Amostradores

  • Bug 63442 - Reduza a varredura para implementações de LogParser em AccessLogSamplerBeanInfo.
  • Bug 63563 - LdapExtSampler: Quando o sampler falha com exceção diferente de NamingException, nenhum SampleResult é gerado
  • Bug 63469 - JMSPublisher: Condição de corrida em jms.client.ClientPool#clearClient

Controladores

Ouvintes

  • Bug 63319 - ArrayIndexOutOfBoundsException no Gráfico Agregado ao selecionar colunas de 90% ou 95%
  • Bug 63423 - A seleção de linhas da tabela no Gráfico Agregado se perde com muita frequência
  • Bug 63347 - Exibir árvore de resultados: o campo de pesquisa é tão pequeno que até mesmo um único caractere não é visível no Windows 7
  • Bug 63433 - ListenerNotifier: Detectado problema no Listener NullPointerException se o nome do arquivo for nulo. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63674 - Tira resultados com sub-resultados mais profundos em sua hierarquia quando o DataStripping está habilitado

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 63455 - Asserção XPath: Verdadeiro se nada corresponder não funciona se a expressão XPath retornar um booleano. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Funções

I18N

Relatório / Painel

Documentação

  • Bug 63513 - Adicionar exemplos do MariaDB à documentação do JDBC. Contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 63484 - Adicione notas para usar o Apache Velocity como linguagem de script JSR223. Baseado em um patch de Ori Marko (orimarko em gmail.com)
  • Bug 63519 - Pull request #471 - Use o método correto getLabelResource() no tutorial do JMeter. Contribuição de Sun Tao (buzzerrookie em hotmail.com>)

Em geral

  • Bug 63394 - O JMeter deve falhar com valor diferente de zero quando a execução do teste falhar (devido à falta de plano de teste ou outro motivo). Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63464 - image/svg+xml é erroneamente considerado binário
  • Bug 63490 - No final da duração do agendador, muitos Samplers são executados ao mesmo tempo
  • Pull request #480 , Pull request #482 - Corrija alguns erros de digitação em comentários e mensagens de log. Baseado no patch de Anass Benomar (anassbenomar em gmail.com)
  • Bug 63751 - Corrige um erro de digitação nas traduções em chinês. Relatado por Jinliang Wang (wjl31802 em 126.com)
  • Bug 63723 - Teste distribuído: o nó do controlador JMeter termina o teste distribuído, embora alguns encadeamentos ainda estejam ativos
  • Bug 63614 - Teste distribuído: não é possível gerar o relatório do painel no final do teste de carga
  • Bug 63862 - Diálogo de Pesquisa/Pesquisa na Árvore de Resultados da Visualização: Exceção não capturada se o regex estiver marcado e o regex for inválido
  • Bug 63793 - Corrige análise de XML não segura

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Clifford Harms (clifford.harms em gmail.com)
  • Pacote de carregamento Ubik
  • Xia Li
  • Naveen Nandwani (naveen.nandwani em india.nec.com)
  • Artem Fedorov (artem.fedorov em blazemeter.com)
  • Ori Marko (orimarko em gmail.com)
  • Sun Tao (buzzerrookie em hotmail.com)
  • John Bergqvist (John.Bergqvist em diffblue.com)
  • Franz Schwab (franz.schwab em exasol.com)
  • Graham Russell (graham em ham1.co.uk)
  • Anass Benomar (anassbenomar em gmail.com)
  • Jakub Bednář
  • Pascal Schumacher (pascalschumacher em apache.org)
  • GraphAware

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

  • Sergiy Iampol (sergiy.iampol em playtech.com)
  • Brian Tully (brian.tully em acquia.com)
  • Amer Ghazal (amerghazal em gmail.com)
  • Stefan Seide (stefan em trilobyte-se.de)
  • Havlicek Honza (havlicek.honza em gmail.com)
  • Pierre Astruc (pierre.astruc em evertest.com)
  • Jinliang Wang (wjl31802 em 126.com)

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.
  • Desde o Java 11, a implementação de JavaScript Nashorn foi preterida . Java emitirá os seguintes avisos de descontinuação, se você estiver usando JavaScript baseado em Nashorn.
    Aviso: o mecanismo Nashorn está planejado para ser removido de uma versão futura do JDK
    
    Para silenciar esses avisos, adicione -Dnashorn.args=--no-deprecation-warning aos seus argumentos Java. Isso pode ser alcançado definindo a variável de ambiente JVM_ARGS
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    

Versão 5.1.1

Resumo

Novo e notável

Esta versão é principalmente uma versão de correção de bugs. Consulte a página Histórico de alterações para ver os últimos comportamentos importantes com a versão 5.1.

Relatórios ao vivo e relatórios da Web

Uma nova entrada de menu foi adicionada ao menu Ferramentas . Permite gerar um relatório de resultados a partir de um arquivo CSV/JTL anterior.


Alterações incompatíveis

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 62977 - Permitir o envio de solicitações HTTP sem um cabeçalho User-Agent padrão

Outros amostradores

  • Bug 63185 - Elementos relacionados ao LDAP: Adicionada opção para confiar implicitamente em conexões SSL/TLS/Desativar verificação de nome de host. Baseado na contribuição de Brian Wolfe (wolfebrian2120 em gmail.com)

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 63178 - CSS Selector Extractor: Melhora o desempenho da implementação baseada em JODD (JoddExtractor)

Funções

I18N

Relatório / Painel

  • Bug 59896 - Relatório / Painel: Adicione uma entrada de menu para gerar um relatório sob demanda de um arquivo CSV. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Em geral

  • Pull request #444 - Atualização para Spock v1.2 mais recente (era 1.0). Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #446 - Melhore a legibilidade dos testes unitários e o uso de Spock. Contribuição de Graham Russell (graham em ham1.co.uk)

Alterações não funcionais

  • Bug 63203 - Testes de Unidade: Substitua o uso de @Deprecated por @VisibleForTesting para métodos/construtores/classes tornados públicos apenas para teste de unidade
  • Solicitação pull nº 449 - Refatore e teste ResponseTimePercentilesOverTimeGraphConsumer. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #450 - Melhorias no consumidor gráfico abstrato. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #451 - Melhore alguns testes de unidade e classes. Contribuição de Graham Russell (graham em ham1.co.uk)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

Outros Amostradores

  • Bug 63202 - JMS Publisher: ObjectMessageRenderer cria instância XStream com segurança não inicializada

Controladores

Ouvintes

  • Bug 63204 - RenderAsJSON#prettyJSON : JSONParser#parse não pode retornar JSONValue

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 62446 - A documentação do contador está errada nos campos obrigatórios. Contribuição de orimarko em gmail.com
  • Bug 62327 - TestPlan: Na tabela da biblioteca, se o caminho for modificado e o plano for salvo, a modificação será perdida no recarregamento do arquivo

Funções

  • Bug 63241 - __threadGroupName causa um NullPointerException se chamado de threads não de teste

I18N

Relatório / Painel

  • Bug 63198 - Os gráficos de tempo de resposta vs solicitação e latência vs solicitação não se alinham com a taxa de transferência. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Documentação

Em geral

  • Bug 63201 - SearchTreeDialog desaparece atrás do mestre JFrame. Contribuição de Benoit Vatan (benoit.vatan em gmail.com)
  • Bug 63220 - Caixa de Diálogo Auxiliar de Função , Transações de Exportação para relatório e Importação de cURL desaparecem sendo JFrame mestre. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63207 - java.lang.NullPointerException: null ao executar o JMeter 5.1 com opções de proxy
  • Bug 58183 - Rampup pode não ser respeitado se o thread demorar para começar, levando a threads continuando a iniciar após o tempo de ramp up

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Pacote de carregamento Ubik
  • Benoit Vatan (benoit.vatan em gmail.com)
  • Graham Russell (graham em ham1.co.uk)
  • Brian Wolfe (wolfebrian2120 em gmail.com)
  • orimarko em gmail.com

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 5.1

Resumo

Novo e notável

Melhorias principais

O teste JDBC foi aprimorado com a capacidade de definir instruções SQL de inicialização e adicionar compatibilidade com drivers JDBC que não suportam QueryTimeout

  • Várias correções de bugs foram implementadas, como reunir os cabeçalhos corretos ao gravar solicitações por meio do HTTP(S) Test Script Recorder usando HTTPS
  • Na versão 5.0, o JMeter foi alterado para renomear os resultados do Sub usando uma política de nomenclatura personalizada ( Bug 62550 ). Essa mudança pode ser irritante para o Functional Testing, uma nova propriedade subresults.disable_renaming=true foi introduzida para reverter, se necessário, ao comportamento anterior. Uma alternativa é verificar o Modo de Teste Funcional no Plano de Teste, veja o Bug 63055

Melhorias de experiência do usuário

Os modelos podem fornecer parâmetros que são preenchidos na geração do plano de teste, o modelo de gravação usa esse recurso

Um novo menu Ferramentas foi introduzido para coletar essas entradas, que são usadas para uso geral em torno do JMeter, como:

  • Caixa de diálogo auxiliar de função
  • Exportar transações para relatório
  • Gerar visualização esquemática que fornece uma visão geral como HTML do plano de teste
  • Importar do cURL que permite criar ou atualizar seu plano de teste importando um comando cURL
  • Compilar elementos de teste JSR223
  • Criar um despejo de heap
  • Criar um dump de thread

Plano de teste

Capacidade de criar um plano de teste a partir de um comando cURL.

Aprimoramentos de script/depuração

  • Um item de menu para compilar todos os elementos JSR223 agora está disponível no menu Ferramentas

Relatórios ao vivo e relatórios da Web

  • Um arquivo JSON contendo o resumo de uma estatística de teste de carga agora é gerado ao usar as opções -e ou -g .
  • O algoritmo de computação de percentis representado graficamente ao longo do tempo foi modificado para reiniciar para cada intervalo de tempo
  • Comportamento mais amigável quando a pasta de relatórios não existe ou não está vazia por meio da opção de linha de comando -f

Alterações incompatíveis

  • No gráfico Percentis de tempo de resposta ao longo do tempo (respostas bem-sucedidas) do relatório HTML, antes desta versão, o cálculo do percentil de cada intervalo de tempo usava os dados percentuais do intervalo de tempo anterior como base. A partir desta versão, cada intervalo de tempo é independente. Veja Bug 62883
  • A assinatura ClientJMeterEngine#rsetProperties foi alterada para usar HashMap<String,String> em vez de Propriedades, consulte Bug 63034
  • Um novo item de menu Ferramentas foi introduzido, alguns itens de menu que estavam no menu Ajuda agora estão sob este novo item de menu. Veja Bug 63094
  • slf4j-ext foi removido das bibliotecas (pasta lib) e JMeter pom. Ele não era usado por padrão e devido ao CVE-2018-8088 e indisponibilidade de uma versão estável contendo uma correção para esse problema, decidimos removê-lo. Se você ainda precisar, poderá adicioná-lo na pasta lib.

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 62840 - Solicitação HTTP: Adicione a opção httpclient4.gzip_relax_mode para evitar erro ao descompactar o que parece ser fluxos inválidos
  • Bug 63025 - Aprimore a funcionalidade Search & Replace para HTTP Request para incluir porta e campo de protocolo. Correção de código inicial por Mohamed Ibrahim (rollno748 em gmail.com)

Outros amostradores

  • Bug 62934 - Adicionar compatibilidade para drivers JDBC que não suportam QueryTimeout
  • Bug 62935 - Passar propriedades mail.* personalizadas para o Mail Reader Sampler. Implementado por Artem Fedorov (artem.fedorov em blazemeter.com) e contribuído por BlazeMeter.
  • Bug 63055 - Não renomeie SampleResult Label quando o teste estiver sendo executado no modo Funcional ou na propriedade subresults.disable_renaming=true . Implementado por Artem Fedorov (artem.fedorov em blazemeter.com) e contribuído por BlazeMeter.

Controladores

Ouvintes

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 62766 - Configuração do Keystore: Devemos carregar todos os aliases por padrão. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62832 - Configuração de conexão JDBC: ser capaz de definir instruções SQL de inicialização. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Funções

  • Bug 63037 - Ao usar CSVRead, pesquise também o caminho base do script para arquivos.

I18N

Relatório / Painel

  • Bug 62883 - Relatório/Painel: altera a forma como os percentis são calculados para o gráfico Percentis de tempo de resposta ao longo do tempo (respostas bem-sucedidas)
  • Bug 63060 - Gerador de Relatórios: Um gerador deve verificar apenas as pastas/arquivos que ele gera e apenas excluí-los
  • Bug 63059 - Cria um novo JsonExporter que exporta como JSON o conteúdo dos dados computados para a tabela HTML Dashboard Statistics. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63081 - A opção de linha de comando -f não exclui a pasta de relatório ao usar a geração somente por meio da opção de linha de comando -g . Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Em geral

  • Bug 62959 - Capacidade de criar um plano de teste a partir de um comando cURL. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Solicitação pull #394 - Permitir valores nulos no FieldStringEditor . Baseado no patch de Mingun (alexander_sergey em mail.ru)
  • Bug 62826 - Ao alterar o LAF, faça o JMeter reiniciar se o usuário clicar em sim para aparecer
  • Bug 62257 - Pull request #401 - Tecla curta Expand/Collapse - (sinal de menos) no teclado numérico não funciona. Contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 62752 - Adicionar à documentação: ctx.getThreadNum() é baseado em zero enquanto ${__threadNum} é baseado em um
  • Pull request #411 - Use SHA-1 em vez de SHA1 em org.apache.jmeter.save.SaveService . Contribuição de Paco (paco.xu em daocloud.io)
  • Bug 62914 - Adicione uma dica na interface do grupo de threads sobre a duração do teste
  • Bug 62925 - Adicionar suporte para ThreadDump ao JMeter não-GUI
  • Bug 62870 - Modelos: Adicionada a capacidade de fornecer parâmetros. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62829 - Permite especificar o esquema do servidor proxy para amostrador de solicitação HTTP, guia Avançado e opção de linha de comando. Contribuição de Hitesh Patel (hitesh.h.patel em gmail.com)
  • Bug 59633 - Menus Salvar Plano de Teste como , Salvar como Fragmento de Teste e Salvar Seleção como ... deve usar um novo nome de arquivo na caixa de diálogo Arquivo
  • Bug 61486 - Faça com que o servidor jmeter e o modo não GUI sejam executados sem cabeça
  • Bug 63093 - Adicionar item de menu Compile JSR223 Test Elements . Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63094 - Introduzir um novo menu Ferramentas
  • Bug 63101 - Propor um item de menu para gerar uma visão geral legível do Plano de Teste
  • Bug 63144 - Exibir árvore de ouvintes demora muito para abrir resposta com texto enorme. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Alterações não funcionais

  • Pull request #408 - Registra uma mensagem informativa em vez de um rastreamento de pilha, quando o JavaFX não é encontrado para o componente RenderInBrowser .
  • Pull request #412 - Atualize a tradução chinesa. Contribuição de 刘士 (liushilive em outlook.com).
  • Pull request #406 - Adicione um pequeno parágrafo sobre como usar um gerenciador de segurança com JMeter.
  • Bug 62893 - Use StringEscapeUtils do commons-text (versão 1.6) em vez dos obsoletos do commons-lang3.
  • Bug 62972 - Solicitação pull #435 - Substitua chamadas para o método obsoleto Class#newInstance .
  • Bug 63034 - ClientJMeterEngine: Faça rsetProperties usar HashMap<String,String> em vez de Properties
  • Atualizado para httpclient/httpmime 4.5.7 (de 4.5.6)
  • Atualizado para httpcore 4.4.11 (de 4.4.10)
  • Atualizado para httpcore-nio 4.4.11 (de 4.4.10)
  • Atualizado para tika-core e tika-parsers 1.20 (de 1.18)
  • Atualizado para commons-dbcp2-2.5.0 (de commons-dbcp2-2.4.0)
  • Atualizado para commons-lang3-3.8.1 (de commons-lang3-3.8)
  • Atualizado para groovy-all-2.4.16 (de groovy-all-2.4.15)
  • Atualizado para httpasyncclient-4.1.4.jar (de 4.1.3)
  • Atualizado para jsoup-1.11.3 (de 1.11.2)
  • Atualizado para cglib-nodep-3.2.9 (de cglib-nodep-3.2.7)
  • Atualizado para ph-commons-9.2.1 (de ph-commons-9.1.2)
  • Atualizado para log4j-2.11.1 (de log4j-2.11.0)
  • Atualizado para xmlgraphics-commons 2.3 (de 2.2)
  • Bug 63033 - Atualizado para Saxon-HE 9.9.1-1 (de 9.8.0-12). Obrigado na Saxônica
  • Atualizado para xstream 1.4.11 (de 1.4.10)
  • Atualizado para jodd 5.0.6 (de 4.1.4)
  • Atualizado para asm-7.0 (de 6.1)
  • Atualização para ActiveMQ 5.15.8 (de 5.5.16)
  • Atualizado para rsyntaxtextarea-3.0.2 (de 2.6.1)
  • Atualizado para apache-rat-0.13 (de 0.12)
  • Atualizado para jacocoant-0.8.3 (de 0.8.2)
  • Atualizado para hsqldb-2.4.1 (de 2.4.0)
  • Atualizado para mina-core-2.0.19 (de 2.0.16)
  • Bug 62818 - Atualizado para xercesImpl para 2.12.0 (de 2.11.0). Relatado por Stefan Seide (stefan em trilobyte-se.de)
  • Bug 62744 - Atualizar jquery para a versão 3.3.1, jquery-ui para 1.12.1, bootstrap para 3.3.7
  • Bug 62821 - Pull request #405 - Use checksums SHA-512 em vez de MD5 para verificar downloads de jar
  • Bug 63053 - Remova referências a internos nunca implementados da documentação do usuário. Relatado por U. Poblotzki (u.poblotzki em thalia.de)
  • Bug 63082 - Pull request #437 - Use utf-8 para arquivos de propriedades na fonte
  • Bug 63177 - Renomeie o modo NON GUI no modo CLI na documentação

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 62785 - Solicitação pull #400 - Caminho de pesquisa incompleto aplicado aos nomes de arquivos usados ​​na funcionalidade de upload do amostrador HTTP. Implementado por Artem Fedorov (artem.fedorov em blazemeter.com) e contribuído por BlazeMeter.
  • Bug 62842 - Gravador de script de teste HTTP(S): a compactação Brotli não é suportada levando a " Erro de codificação de conteúdo "
  • Bug 60424 - Aplicação Hessian Burlap: JMeter insere 0x0D antes de 0x0A automaticamente (dados de postagem binários http)
  • Bug 62940 - Use cn e tipo diferente de extensão SAN quando estamos gerando certificados baseados em endereços IP.
  • Bug 62916 - HTTP Test Script Recorder falha com UnsupportedOperationException se a gravação for iniciada após a execução de um teste distribuído
  • Bug 62987 - Um elemento TestBean no gravador de script de teste HTTP(S) não funciona. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63015 - NoHttpResponseException anormal ao executar a solicitação por meio do proxy HTTP(S) Test Script Recorder após uma primeira solicitação com falha. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62852 - Falta de informações no cabeçalho de solicitação HTTP ao usar um proxy. Obrigado a Oleg Kalnichevski (olegk em apache.org)
  • Bug 63048 - JMeter não recupera recursos de link do tipo "ícone de atalho" ou "ícone". Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Outros Amostradores

  • Bug 62775 - Se muitos jars estiverem em uma pasta referenciada por user.classpath , a inicialização pode ser extremamente lenta devido ao JUnit
  • Bug 63031 - Classe de driver JDBC incorreta: org.firebirdsql.jdbc.FBDrivery . Contribuição de Sonali (arora.sonali99 em gmail.com)

Controladores

  • Bug 62806 - A clonagem do ModuleController por Run se comporta de maneira diferente, seja no modo GUI ou não GUI. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62847 - Se o Controlador não puder usar a variável para o índice exposto por LoopController/WhileController/ForEachController
  • Bug 63064 - Ignora espaços no final e no início das expressões usadas no IfController

Ouvintes

  • Bug 62770 - Gráfico agregado lança ArrayIndexOutOfBoundsException
  • Bug 63069 - ResultCollector não grava o final do arquivo XML se o usuário sair enquanto uma Gravação ou um teste estiver em execução. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 63138 - InfluxDB BackendListenerClient: Em caso de erro, o log está em depuração, deve estar com erro

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 62774 - XPath2Extractor: variável de escopo está quebrada. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62860 - Extrator JSON: Evite NPE e mensagem de erro barulhenta " Erro ao processar o conteúdo JSON em " quando a variável não for encontrada

Funções

I18N

Relatório / Painel

  • Bug 62777 - Relatório da Web/Painel: Ocultar tudo nos percentis de tempo de resposta ao longo do tempo (respostas bem-sucedidas) falha.
  • Bug 62780 - Relatório/painel da Web: Falha na exibição de tudo no tempo de resposta vs. solicitação .
  • Bug 62781 - Relatório/painel da Web: Falha na exibição de tudo na visão geral do tempo de resposta .
  • Bug 62782 - Web Report / Dashboard: Remover dependências duplicadas/não utilizadas
  • Bug 62894 - Relatório / Painel: A taxa de transferência está na coluna errada, o que é confuso, pois a unidade é milissegundo
  • Bug 63016 - Relatório HTML vazio se o csv de origem contiver rótulos com aspas. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Documentação

  • Altere a Ação de teste (nome antigo) para Ação de controle de fluxo na documentação de referência do componente. Contribuição de Ori Marko (orimarko em gmail.com)

Em geral

  • Bug 62745 - Corrige ícone desabilitado indefinido. Contribuição de Till Neunast (https://github.com/tilln)
  • Bug 62743 - A autenticação do cliente deve ser habilitada em testes distribuídos
  • Bug 62767 - NPE ao pesquisar sob certas condições. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62790 - ArrayIndexOutOfBoundsException ao chamar replace sem selecionar a primeira correspondência
  • Bug 62795 - O nó do controlador JMeter às vezes termina o teste distribuído mesmo que alguns dos nós do trabalhador não tenham terminado
  • Bug 62336 - Pull request #396 - Alguns atalhos não estão funcionando corretamente no Windows. Contribuição de Michael Pavlov (michael.paulau em gmail.com)
  • Bug 62889 - Formate JSON Arrays quando exibido com JSON Path Tester.
  • Bug 62900 - ObjectProperty#getStringValue() pode lançar NullPointerException
  • Bug 63099 - Escape de vírgula na caixa de diálogo do auxiliar de função apenas fora das estruturas de substituição de variáveis.
  • Bug 63105 - Exportar transações para relatório: corrigir 2 bugs
  • Bug 63106 - Aplicar política de nomenclatura não atualiza a interface do usuário
  • Bug 63180 - Aplicar política de nomenclatura permite seleção múltipla, mas considera apenas o primeiro nó
  • Bug 63090 - Remova slf4j-ext devido a CVE-2018-8088

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Oleg Kalnichevski (olegk em apache.org)
  • Até Neunast (https://github.com/tilln)
  • Mingun (alexander_sergey em mail.ru)
  • Pacote de carregamento Ubik
  • Artem Fedorov (artem.fedorov em blazemeter.com)
  • Stefan Seide (stefan em trilobyte-se.de)
  • 刘士 (liushilive em outlook.com)
  • Michael Pavlov (michael.paulau em gmail.com)
  • Ori Marko (orimarko em gmail.com)
  • Paco (paco.xu em daocloud.io)
  • Hitesh Patel (hitesh.h.patel em gmail.com)
  • Sonali (arora.sonali99 em gmail.com)
  • Mohamed Ibrahim (rollno748 em gmail.com)
  • U. Poblotzki (u.poblotzki em thalia.de)
  • Saxônica

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 5.0

Resumo

Novo e notável

Melhorias principais

O suporte ao descanso foi aprimorado em muitos campos

  • Solicitações de dados de várias partes/formulários agora funcionam para PUT , DELETE
  • Agora também é possível enviar um corpo JSON com arquivo anexado
  • Os parâmetros inseridos na guia Parâmetros agora são usados ​​no corpo em vez de serem ignorados

Em testes distribuídos, o JMeter agora prefixa automaticamente nomes de threads com host e porta do mecanismo, isso torna a contagem de threads correta no relatório HTML sem qualquer outra configuração, como era necessário antes

O XPath 2.0 é suportado em um novo elemento chamado extrator XPath2 , fornecendo um manuseio mais fácil de namespaces XML, sintaxe XPath atualizada e melhores desempenhos

A atualização para as últimas APIs do HTTP Components 4.6 foi concluída e o JMeter não depende mais das APIs obsoletas desta biblioteca

Agora é possível controlar de forma mais fácil a quebra de loop e a mudança de loop para a próxima iteração. Isso está disponível nos elementos de Manipulador de Ação de Controle de Fluxo e Ação de Status de Resultado

Enquanto o Controller agora exporta uma variável contendo seu índice atual chamado __jm__<Name of your element>__idx . Então, por exemplo, se o seu controlador While for chamado WC, você poderá acessar o índice de loop por meio de ${__jm__WC__idx}

Aprimoramentos de script/depuração

O recurso de pesquisa foi aprimorado para permitir que você itere na árvore sobre os resultados da pesquisa e faça as substituições necessárias por meio dos botões Próximo / Anterior / Substituir / Substituir/Localizar

Em Exibir árvore de resultados, os cabeçalhos/corpo da solicitação e da resposta são claramente separados para permitir que você inspecione melhor as solicitações e respostas. Você também pode pesquisar em todas essas guias por um valor específico

O recurso de gravação foi aprimorado para fornecer um pop-up que está sempre no topo quando você navega no navegador, permitindo nomear transações enquanto navega em seu aplicativo.

Agora você pode reiniciar o JMeter no menu Arquivo  →  Reiniciar

Relatórios ao vivo e relatórios da Web

O recurso de relatórios foi aprimorado

Um novo Graph Total Transactions por segundo foi adicionado ao HTML Web Report

Agora é possível representar graficamente métricas customizadas ao longo do tempo disponíveis como JMeter Variables por meio de sample_variables . Esses gráficos de métricas personalizadas estarão disponíveis na seção Relatório HTML em Gráficos personalizados

O gráfico de hits por segundo agora leva em consideração os recursos incorporados

Em relatórios ao vivo, os bytes enviados e recebidos agora são enviados para back-ends (InfluxDB ou Graphite)

Funções

Uma nova função __threadGroupName foi introduzida para obter o nome do ThreadGroup.

Alterações incompatíveis

  • Desde o JMeter 5.0, ao usar a Implementação HC4 padrão, o JMeter irá redefinir o estado HTTP (Estado SSL + Conexões) em cada iteração do grupo de threads. Se você não quiser esse comportamento, defina httpclient.reset_state_on_thread_group_iteration=false
  • Desde o JMeter 5.0, em relação à observação acima, https.use.cached.ssl.context está obsoleto e não é mais usado.
  • Desde o JMeter 5.0, ao usar a saída CSV, os sub-resultados agora também serão enviados para o arquivo CSV. Para reverter para o comportamento anterior, configure jmeter.save.saveservice.subresults=false , consulte Bug 62470 , Bug 60917 , Bug 62550 .
  • Desde o JMeter 5.0, o CSS/JQuery Extractor foi renomeado para CSS Selector Extractor
  • Desde o JMeter 5.0, Test Action foi renomeado para Flow Control Action
  • Desde o JMeter 5.0, o JMeter renomeia subResults para parentName-N onde N é um número para garantir que o gráfico Hits Per Second inclua downloads de recursos, veja Bug 62550 , Bug 62470 e Bug 60917

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 62260 - Melhora o suporte de descanso. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 58757 - Solicitação HTTP: Métodos obsoletos atualizados de HttpComponents para as últimas APIs de httpclient-4.5.X. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62212 - Gravador: Melhore o UX fornecendo um pop-up acima de todas as janelas para poder alterar os nomes e pausas das transações enquanto estiver usando o navegador. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62248 - Solicitação HTTP: Os parâmetros inseridos na guia Parâmetros devem ser usados ​​no corpo ao invés de serem ignorados. Parcialmente baseado em um patch de Artem Fedorov contribuído por Blazemeter.
  • Bug 60015 - Multipart/form-data funciona apenas para POST usando HTTPClient4 enquanto deveria para PUT , DELETE , … Contribuído por Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62317 - HTTP(S) Test Script Recorder: permite adicionar ResultSaver ao sampler criado

Outros amostradores

  • Solicitação pull #376 - JUnitSampler registra exceções, exceto falhas de asserção de casos de teste como avisos. Contribuição de Davide Angelocola (davide.angelocola em fisglobal.com)
  • Bug 62244 - Renomear Ação de Teste para Ação de Controle de Fluxo
  • Bug 62302 - Mova o JSR223 Sampler para cima no menu. Contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 62595 - SMTPSampler não permite configurar os protocolos SSL/TLS a serem usados ​​no handshake. Contribuição de Felipe Cuozzo (felipe.cuozzo em gmail.com)

Controladores

  • Bug 62237 - While Controller: Variável de exportação contendo o índice atual da iteração. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Ouvintes

  • Bug 62195 - Salvar respostas em um arquivo: Melhorar o componente e a interface do usuário. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62209 - InfluxBackendListenerClient: Primeira mensagem de falha de asserção deve ser enviada se o código de erro e o código de resposta estiverem vazios ou OK
  • Bug 62269 - Bug 62269 - Exibir Árvore de Resultados: As guias de resposta e solicitação devem conter as guias de cabeçalho e corpo. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62270 - Exibir árvore de resultados: permite pesquisar em cabeçalhos de solicitação, cabeçalhos de resposta e corpo de solicitação. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62276 - InfluxDBBackendListenerClient / GraphiteBackendListenerClient: adiciona bytes enviados e recebidos às métricas. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 62320 - Contador: a propriedade de nome de referência não está clara
  • Bug 60991 - Extrator XPath: Implemente XPath 2.0. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62593 - Renomeie CSS/JQuery Extractor para CSS Selector Extractor. Contribuição de Ori Marko (orimarko em gmail.com)

Funções

  • Bug 62178 - Adiciona valor padrão à função __V . Contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 62178 - Adicionar função __threadGroupName para obter o nome do ThreadGroup. Contribuição principalmente de Ori Marko (orimarko em gmail.com)
  • Bug 62533 - Permitir o uso de tempo de época como valor de string de data na função __dateTimeConvert
  • Bug 62541 - Permitir que as funções __jexl3 , __jexl2 suportem a nova sintaxe como var x; . Contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 61834 - Caixa de Diálogo Auxiliar de Função: Melhore os testes mostrando variáveis ​​e mantendo-as disponíveis entre as avaliações

I18N

Relatório / Painel

  • Bug 62243 - Dashboard: opção make " --forceDeleteResultFile "/" -f " delete a pasta referenciada pela opção " -o "
  • Bug 62367 - Gerador de Relatório HTML: Adicionar Gráfico Total de Transações por Segundo. Contribuição principalmente de Martha Laks (laks.martha em gmail.com)
  • Bug 62166 - Relatório/Painel: Fornece a capacidade de registrar gráficos e métricas personalizados no Painel JMeter. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62542 - Relatório/Painel: Exibe mais informações sobre filtros quando o gráfico está vazio. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62426 - Otimize o desempenho da geração de relatórios. Com base no feedback de Allen (444104595 em qq.com)
  • Bug 62550 - Modificar a política de nomenclatura de subresultados
  • Bug 60917 - Teste de carga com download de recursos incorporados : Acertos por segundo não leva em consideração os recursos baixados

Em geral

  • Bug 62684 - Teste Distribuído: Adicione automaticamente ao nome da thread um prefixo para identificar o mecanismo. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62155 - Recurso de pesquisa: Tornar o campo de texto de pesquisa em foco
  • Bug 62156 - Recurso de pesquisa: Distinguir entre o nó que corresponde à pesquisa e o nó que contém um filho que corresponde à pesquisa
  • Bug 62234 - Recurso Pesquisar/Substituir: Aprimore o UX e adicione recursos Substituir/Próximo/Anterior/Substituir e Localizar. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62238 - Adicionada a capacidade de alternar para a próxima iteração do Loop Atual. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62239 - Adicionada a capacidade de quebrar o loop atual
  • Bug 61635 - Adicione um menu para reiniciar o JMeter
  • Bug 62470 - Saída CSV: Habilite o registro de sub-resultados quando jmeter.save.saveservice.subresults=true . Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62473 - A configuração " saveservice_properties " tem um comportamento contra-intuitivo
  • Bug 62354 - Cálculo correto e uso de unidades por segundo por usuário (relatado por jffagot05 em gmail.com)
  • Bug 62700 - Introduzir jsr223.init.file para permitir chamar um script JSR-223 na inicialização do JMeter
  • Bug 62128 - Tente adivinhar JMETER_HOME corretamente, quando jmeter.bat é chamado de um arquivo de lote em outro diretório. Contribuição de logox01 (logox01 em gmx.at)
  • Solicitação pull nº 386 - Adicione suporte de parâmetro para scripts de criação de keystore RMI. Contribuição de Logan Mauzaize (t524467 em airfrance.fr)
  • Bug 62065 - Use o artefato Maven para o módulo JAF em vez do módulo incorporado
  • Bug 61714 - Atualizar documentação de resultados em tempo real
  • Pull request #382 - Corrija o erro de digitação na documentação. Relatado por Perze Ababa (perze.ababa em gmail.com>)
  • Pull request #392 - Corrija o erro de digitação na documentação. Relatado por Aaron Levin
  • Pull request #379 - Melhore as traduções chinesas. Contribuição de XmeterNet

Alterações não funcionais

  • Solicitação pull #358 , solicitação pull #365 , solicitação pull #366 , solicitação pull #375 - Atualizado para o último estilo de verificação (v8.8). Checkstyle expandido para arquivos em src e test ; corrigidos arquivos recém-verificados. Baseado na contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 62095 - Corrija a descrição do parâmetro de limite direito no Extrator de Limite. Contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 62113 - Atualizado para o último Bouncycastle (v1.60). Baseado na contribuição de Olaf Flebbe (oflebbe em apache.org)
  • Bug 62171 - Remova as somas de verificação .md5 e mantenha apenas as somas de verificação .sha512 para arquivos de origem e binários
  • Atualizado para groovy-all-2.4.15 (de groovy-all-2.4.13)
  • Atualizado para asm-6.1 (de 6.0)
  • Atualizado para tika-core e tika-parsers 1.18 (de 1.17)
  • Bug 62482 - Documentação de sincronização com a implementação do ForEachController. Baseado na contribuição de Ori Marko (orimarko em gmail.com)
  • Bug 62529 - Atualizado para httpclient-4.5.6 (de httpclient 4.5.5) e atualizado para freemarker-2.3.28 (de freemarker-2.3.23). Baseado no patch de Ori Marko (orimarko em gmail.com)
  • Atualizado para httpmime-4.5.6 (de httpmime-4.5.5)
  • Atualizado para cafeína-2.6.2 (de cafeína-2.6.1)
  • Atualizado para cglib-nodep-3.2.7 (de cglib-nodep-3.2.6)
  • Atualizado para commons-dbcp2-2.4.0 (de commons-dbcp2-2.2.0)
  • Atualizado para commons-pool2-2.6.0 (de commons-pool2-2.5.0)
  • Atualizado para httpcore-4.4.10 (de httpcore-4.4.9)
  • Atualizado para httpcore-nio-4.4.10 (de httpcore-nio-4.4.9)
  • Atualizado para log4j-2.11.0 (de log4j-2.10.0)
  • Atualizado para ph-css-6.1.1 (de ph-css-6.0.0)
  • Atualizado para ph-commons-9.1.2 (de ph-commons-9.0.0)
  • Atualizado para rhino-1.7.10 (de +rhino-1.7.7.2)
  • Atualizado para commons-lang3-3.8 (de commons-lang3-3.7)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 62114 - Gravador de script de teste HTTP(S): A autenticação do certificado do cliente usa o primeiro SSLManager criado. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61058 - Solicitação HTTP: Adicione a opção httpclient4.deflate_relax_mode para evitar "Fim inesperado do fluxo de entrada ZLIB" ao esvaziar o que parece ser fluxos inválidos. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 43612 - HTTP PUT não respeita os parâmetros de solicitação. Implementado por Artem Fedorov (artem.fedorov em blazemeter.com) e contribuído por BlazeMeter Ltd.
  • Bug 60190 - Content-Type é adicionado para POST incondicionalmente. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62462 - Pull request #387 - Torna possível a delegação de credenciais no SPNEGO.
  • Bug 58807 - Redefinir o estado SSL apenas na iteração do grupo de threads (era https.use.cached.ssl.context=false está quebrado)
  • Bug 62716 - Ao gravar, o JMeter remove a autorização do gerenciador de cabeçalho gerado ao usar o token de portador

Outros Amostradores

  • Bug 62235 - Java 9 - acesso reflexivo ilegal por org.apache.jmeter.util.HostNameSetter
  • Bug 62464 - Definir hora de início e término no amostrador do publicador JMS, mesmo se a inicialização falhar.
  • Bug 62616 - FTPSampler: o tamanho do arquivo de upload não é contado em sentBytes

Controladores

  • Bug 62265 - ModuleController se comporta de forma estranha

Ouvintes

  • Bug 62097 - Atualizar JTable no Relatório Agregado somente quando novos dados chegarem. Dessa forma, as seleções de linhas serão mantidas por mais tempo.
  • Bug 62203 - Cliente Influxdb BackendListener: armazena tags de usuário para anotação e transação interna. Contribuição de Sergey Batalin (sergey_batalin em mail.ru)
  • Bug 62251 - TextGraphiteMetricsSender não invalida conexões perdidas em caso de erros de rede
  • Bug 60705 - Corrige cabeçalhos de Relatórios Agregados e amigos quando as colunas são movidas.
  • Bug 62463 - Configuração de cliente/servidor distribuído: use diferentes portas RMI para os objetos remotos ao usar SSL

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 61664 - Gerenciador de autorização HTTP: o Digest funciona apenas com o RFC 2069 herdado , o RFC 2617 não é implementado. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62252 - A lógica de mesclagem do cabeçalho HTTP não corresponde à documentação
  • Bug 62554 - BoundaryExtractor: Campo a ser verificado não é redefinido
  • Bug 62553 - Elemento aleatório pode retornar o mesmo valor mesmo se a propriedade "Por usuário de thread (Usuário)" estiver definida como TRUE
  • Bug 62637 - Leve o agendador em consideração ao calcular o atraso para o temporizador de sincronização

Funções

I18N

  • Bug 62310 - Tradução francesa do rótulo do Temporizador de taxa de transferência preciso

Relatório / Painel

  • Bug 62333 - Report Dashboard - Quando uma série não contém nenhum valor, a lógica das cores do gráfico está errada. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62283 - Report Dashboard - A data não é exibida corretamente no gráfico quando a granularidade é ≤ 1 dia
  • Bug 62520 - O texto da dica de ferramenta quando passamos o mouse sobre o ponto no gráfico 'Latency vs Request' deve ser 'Median Latency'

Documentação

  • Bug 62211 - Corrige a documentação do servidor de solicitação HTTP. Contribuição de Ori Marko (orimarko em gmail.com)
  • Pull request #388 - Corrija um erro de digitação. Contribuição de Giancarlo Romeo (giancarloromeo em gmail.com)

Em geral

  • Bug 62107 - JMeter falha ao iniciar no Windows quando JM_LAUNCH contém espaços
  • Bug 62110 - Uma classe JUnit quebrada (devido à falta de dependência) quebra os menus do JMeter. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Pull request #377 - Pequena correção dos documentos. Contribuição de Peter Doornbosch (peter.doornbosch em luminis.eu)
  • Bug 62124 - Modelos de gravação: adicione mais exclusões e use o nome da transação por padrão
  • Bug 62127 - Armazene o nome do arquivo como String em vez de File no FileEditor. Isso impedirá a conversão de nomes de arquivos de separadores de caminho de estilo Unix para estilo Windows quando usado, por exemplo, na configuração do conjunto de dados CSV.
  • Bug 56150 - Mantenha o índice à direita, ao rolar pelos itens do menu.
  • Bug 62240 - Se a implementação do SampleMonitor for um TestBean se não for inicializado corretamente
  • Bug 62295 - Ordem correta dos elementos ao duplicar uma seleção de vários elementos.
  • Bug 62397 - Não quebre linhas em vírgulas ao usar o JSON Path Tester
  • Bug 62281 - Impedir NPE em MapProperty. Patch por belugabehr (dam6923 em gmail.com)
  • Bug 62457 - No manual do usuário, o exemplo da função UUID está errado. Contribuição de helppass (onegaicimasu em hotmail.com)
  • Bug 62478 - Escape de vírgula em parâmetros ao construir strings de função no auxiliar de função GUI. Relatado por blue414 (blue414 em 163.com)
  • Bug 62463 - Corrigido o uso de portas, quando client.rmi.localport é definido para execuções distribuídas.
  • Bug 62545 - Não use dois pontos como parte da string "tab" ao recuar JSON em RenderAsJSON.
  • Parte do Bug 62637 - Evite estouro de Integer ao lidar com valores muito grandes em TimerService#adjustDelay
  • Bug 62683 - A caixa de diálogo de erro não tem texto quando o usuário abre um plano de teste completamente inválido.

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Graham Russell (graham em ham1.co.uk)
  • Ori Marko (orimarko em gmail.com)
  • Davide Angelocola (davide.angelocola em fisglobal.com)
  • Pacote de carregamento Ubik
  • Olaf Flebbe (oflebbe em apache.org)
  • Peter Doornbosch (peter.doornbosch em luminis.eu)
  • logox01 (logox01 em gmx.at)
  • Sergey Batalin (sergey_batalin em mail.ru)
  • XMeterName
  • Imane Ankhila (iankhila em ahlane.net)
  • jffagot05 (jffagot05 em gmail.com)
  • Perze Ababa (perze.ababa em gmail.com)
  • Martha Laks (laks.martha em gmail.com)
  • Logan Mauzaize (t524467 em airfrance.fr)
  • belugabehr (dam6923 em gmail.com)
  • Giancarlo Romeo (giancarloromeo em gmail.com)
  • helppass (onegaicimasu em hotmail.com)
  • blue414 (blue414 em 163.com)
  • Aaron Levin
  • Allen (444104595 em qq.com)
  • Felipe Cuozzo (felipe.cuozzo em gmail.com)
  • bangnab (ambrosetti.nicola em gmail.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 4.0

Resumo

Novo e notável

Melhorias principais

JMeter agora suporta JAVA 9.

Novo elemento Boundary Extractor disponível que proporciona uma extração fácil com melhores desempenhos

Novo elemento JSON Assertion disponível para declaração em respostas JSON.

Novo elemento Precise Throughput Timer disponível que produz chegadas de Poisson com taxa de transferência constante.

O amostrador JMS Point-to-Point foi aprimorado com opções de leitura , navegação e limpeza .

Os melhores valores de propriedade agora são selecionados em muitos elementos de teste para garantir que as práticas recomendadas sejam os padrões:

  • Se o Controlador recém-adicionado agora usa por padrão a Expressão, que é a opção com melhor desempenho.
  • O Elemento de Teste JSR223 recém-adicionado agora armazena em cache o script compilado por padrão se o idioma usado fornecer esse recurso.

O controlador de loop e o controlador ForEach agora expõem sua iteração atual como uma variável chamada __jm__<Nome do seu elemento>__idx que você pode usar assim, por exemplo, para um controlador de loop chamado MyLoopController :

${__jm__MyLoopController__idx}
. Veja Bug 61802

Os cookies agora são mostrados na Árvore de Resultados da Visualização durante a gravação. Anteriormente, eles eram sempre mostrados como vazios.

A Asserção de Resposta agora permite que você personalize a mensagem de asserção e afirme nos Dados da Solicitação.

Melhorias de experiência do usuário

JMeter agora usa Darcula LAF por padrão

O Workbench foi removido da UI, agora você pode usar Non Test Elements como filhos imediatos do Test Plan.

O Menu UX foi aprimorado para disponibilizar os elementos mais usados ​​mais rapidamente.

O HTTP(S) Test Script Recorder agora permite que você nomeie suas transações durante a gravação de uma maneira mais legível para humanos.

Melhorias de UX feitas, entre as mais notáveis:

  • O controlador do módulo informa ao usuário que pelo menos um controlador é necessário
  • A caixa de diálogo do auxiliar de função (o assistente que ajuda a usar e testar funções) foi aprimorada em muitos campos.
  • O Switch Controller corta o texto para evitar problemas quando um espaço é introduzido antes/depois do nome
  • Plano de teste agora é salvo antes de executar o plano de teste

Funções

A nova função __digest fornece computação fácil de hashes SHA-XXX e MDX:

${__digest(MD5,Apache JMeter 4.0 rocks!,,,)}
retornará 0e16c3ce9b6c9971c69ad685fd875d2b

A nova função __dateTimeConvert fornece conversão fácil entre formatos de data:

${__dateTimeConvert(01 de janeiro de 2017,dd MMM aaaa,dd/MM/aaaa,)}
retornará em 01/01/2017

A nova função __changeCase fornece a capacidade de alternar para maiúsculas/ minúsculas/maiúsculas

${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}
retornará AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL

Novas funções __isVarDefined e __isPropDefined fornecem testes de disponibilidade de propriedades e variáveis

${__isPropDefined(START.HMS)}
retornará verdadeiro
${__isVarDefined(JMeterThread.last_sample_ok)}
retornará verdadeiro

Desenvolvimento de scripts e plugins

Agora você pode chamar SampleResult#setIgnore() se não quiser que seu sampler fique visível nos resultados

JavaSamplerContext usado por AbstractJavaSamplerClient foi aprimorado com novos métodos para facilitar o desenvolvimento de plugins.

O JMeter agora distribui fontes Maven adicionais e artefatos javadoc no repositório Maven

Plugins agora podem registrar ouvintes para serem notificados quando um Plano de Teste for aberto/fechado

Relatórios ao vivo e relatórios da Web

O ouvinte de back-end do InfluxDB agora permite adicionar tags personalizadas adicionando-as com o prefixo TAG_ , consulte Bug 61794

No Web Report, o gráfico de distribuição responseTime é mais preciso

Algumas correções de bugs foram feitas na geração de relatórios, veja Bug 61900 , Bug 61900 61956, Bug 61899 . Gráficos Latência vs Solicitação e Tempo de Resposta vs Solicitação não excedeu 1000 RPS devido ao Bug 61962

Configuração do ambiente JMeter

As configurações da JVM para os scripts de início do JMeter podem ser colocadas em um arquivo separado ( bin/setenv.sh no Unix e bin\setenv.bat no Windows), que é chamado na inicialização. O script de inicialização em si não precisa mais ser editado.

Alterações incompatíveis

  • A hora de início e a data de término do Thread Group foram removidas, veja o Bug 61549
  • Em testes distribuídos, o modo Hold foi removido. Use modos alternativos e mais eficientes
  • Para plugins de terceiros, o método a seguir em org.apache.jmeter.gui.tree.JMeterTreeNode foi descartado para migração para Java 9 ( Bug 61529 )
    public Enumeration<JMeterTreeNode> children()
  • tearDown Thread Group agora será executado na parada e desligamento de um teste por padrão. Se você não quiser esse comportamento, desmarque Executar grupos de threads de desmontagem após o desligamento dos threads principais no elemento Plano de Teste , consulte Bug 61656
  • As propriedades sampleresult.getbytes.headers_size e sampleresult.getbytes.body_real_size foram eliminadas, veja o Bug 61587
  • O JMeter agora salvará seu plano de teste sempre que você o executar. Este comportamento pode ser controlado pela propriedade save_automatically_before_run , veja Bug 61731
  • O elemento Workbench foi descartado, agora você adiciona diretamente Elemento Não Teste como filho do Plano de Teste. Ao carregar um Plano de Teste que contém o elemento JMeter, os elementos Mirror Server , Property Display e HTTP(s) Test Script Recorder serão movidos como filhos diretos do Plano de Teste. Para qualquer outro elemento, ele criará um elemento Test Fragment chamado Workbench Test Fragment e moverá os elementos nele .
  • As seguintes classes foram descartadas ( org.apache.jmeter.functions.util.ArgumentEncoder , org.apache.jmeter.functions.util.ArgumentDecoder ), consulte Pull request #335
  • No amostrador JMS Point-to-Point, definir o tempo limite para 0 agora significa tempo limite infinito, enquanto anteriormente seria alternado para 2.000 ms, consulte Bug 61829
  • Quando Assertions estão em escopos diferentes, elas são executadas começando da mais OUTER até a mais INNER. Veja Bug 61846
  • O JMeter agora inicia por padrão usando a localidade em inglês. Essa alteração ocorre devido à falta de traduções em muitos idiomas suportados. Você pode alterar a localidade modificando em jmeter e jmeter.bat (ou preferencialmente setenv.sh/setenv.bat) os valores da propriedade do sistema JVM_ARGS . Também ficaríamos muito gratos se você pudesse contribuir com traduções nos idiomas suportados.
  • SwitchController agora corta por padrão o conteúdo do switch para evitar problemas relacionados a espaços indesejados. Veja Bug 61771
  • As configurações de heap da JVM do JMeter foram alteradas de -Xms512m -Xmx512m para -Xms1g -Xmx1g
  • A versão do Beanshell foi atualizada para bsh-2.0b6, que introduz mudanças importantes e regras de análise mais rígidas

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Solicitação pull #316 - Avisa sobre carregamento de armazenamento confiável vazio. Contribuição de Vincent Herilier (https://github.com/vherilier)
  • Bug 61639 - Gravador de script de teste HTTP(S): Na guia de filtragem de solicitações, desmarque por padrão "Notificar ouvintes filhos de amostradores filtrados"
  • Bug 61672 - Gravador de script de teste HTTP(S): tem a capacidade de escolher o nome do amostrador, mantendo a capacidade de apenas adicionar um prefixo
  • Bug 53957 - Solicitação HTTP: na guia Parâmetros, permite colar conteúdo vindo do Firefox e Chrome (não analisado)
  • Bug 61587 - Elimine as propriedades sampleresult.getbytes.headers_size e sampleresult.getbytes.body_real_size
  • Bug 61843 - Gravador de script de teste HTTP(S): Adicionar SAN ao certificado de CA gerado por JMeter. Contribuição de Matthew Buckett
  • Bug 61901 - Suporte para propriedade de sistema https.cipherSuites . Contribuição de Jeremy Arnold (jeremy em arnoldzoo.org)

Outros amostradores

  • Bug 61544 - JMS Point-to-Point Sampler: Melhore os estilos de comunicação com leitura, navegação, limpeza. Baseado em uma contribuição de Benny van Wijngaarden (benny em smaragd-it.nl)
  • Bug 61829 - JMS Ponto a Ponto: Se a Fila de Recebimento estiver vazia e um tempo limite for definido, ele não será levado em consideração. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61739 - Solicitação Java/JavaSamplerClient: Melhorar org.apache.jmeter.protocol.java.sampler.JavaSamplerContext
  • Bug 61762 - Start Next Thread Loop deve ser usado em todos os lugares

Controladores

  • Bug 61675 - If Controller: Use a expressão por padrão e adicione um aviso quando o outro modo for usado. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61770 - Module Controller: Informa ao usuário na UI que ele precisa ter pelo menos um Controller em seu plano. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61771 - SwitchController: Campo de comutação deve ser aparado por segurança

Ouvintes

  • Bug 57760 - Exibir árvore de resultados: o cabeçalho do cookie é mostrado incorretamente como vazio (sem cookies) ao visualizar um resultado de amostra do gravador. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61769 - Exibir Árvore de Resultados: Use o marcador de sintaxe no XPath Tester, JSON Path Tester e CSS/JQuery Tester. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61776 - Exibir Árvore de Resultados: Expansão de Adicionar expandir/recolher todo o menu na exibição XML de renderização. Contribuição de Maxime Chassagneux e Graham Russell
  • Bug 61852 - Exibir árvore de resultados: adicionar um testador de extração de limite
  • Bug 61794 - Influxdb back-end: Adicione quantas tags personalizadas desejar, basta criar novas linhas e prefixar o nome deles com " TAG_ " no ouvinte de back-end da GUI

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 60213 - Novo componente: Extrator baseado em limites
  • Bug 61845 - Novo Componente JSON Assertion baseado no AtlanBH JSON Path Assertion doado para JMeter-Plugins e migrado para o núcleo JMeter por Artem Fedorov (artem em blazemeter.com)
  • Bug 61931 - Novo Componente: Temporizador de taxa de transferência preciso, temporizador que produz chegadas de Poisson com taxa de transferência constante. Contribuição de Vladimir Sitnikov (sitnikov.vladimir em gmail.com)
  • Bug 61644 - Gerenciador de cache HTTP: "Usar o cabeçalho Cache-Control/Expires ao processar solicitações GET" deve ser verificado por padrão
  • Bug 61645 - Asserção de resposta: adicione a capacidade de afirmar em dados de solicitação
  • Bug 51140 - Asserção de Resposta: adiciona a capacidade de definir uma mensagem de erro/falha específica que é mostrada posteriormente no Resultado da Asserção. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61534 - Converter AssertionError em uma asserção com falha, permitindo que os usuários usem assert em seu código. Corrigindo uma regressão introduzida em 3.2
  • Bug 61756 - Extratores: Melhore o nome do rótulo "Nome de referência" para deixar claro o que ele faz
  • Bug 61758 - Aplicar a: campo em Extractors, Assertions: Ao inserir um valor em JMeter Variable Name , a caixa de rádio JMeter Variable Name deve ser selecionada por padrão. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61846 - Asserção de escopo deve seguir a mesma ordem de avaliação dos pós-processadores

Funções

  • Bug 61724 - Adicionada função __digest para fornecer computação de Hashes (SHA-XXX, MDX). Baseado em uma contribuição de orimarko em gmail.com
  • Bug 61735 - Adicione a função __dateTimeConvert para fornecer conversões de formatos de data. Baseado em uma contribuição de orimarko em gmail.com
  • Bug 61760 - Adiciona as funções __isPropDefined e __isVarDefined para saber se existe propriedade ou variável. Contribuição de orimarko em gmail.com
  • Bug 61759 - Adicionar função __changeCase para alterar diferentes casos de uma string. Baseado em uma contribuição de orimarko em gmail.com
  • Bug 61561 - A caixa de diálogo do auxiliar de função deve exibir exceção no resultado
  • Bug 61738 - Caixa de Diálogo Auxiliar de Função: Adicionar Cópia em Gerar e esclarecer rótulos. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 62027 - Ajuda: Introduza a propriedade help.local para permitir a escolha entre documentação local (offline) e documentação online
  • Bug 61593 - Remover detalhes, adicionar, adicionar da área de transferência, excluir botões na GUI do Function Helper

I18N

  • Bug 61606 - Botão Traduzir Procurar… em alguns elementos (que usam a classe FileEditor)
  • Bug 61747 - Gravador de script de teste HTTP(S): adicione o documento ausente a "Criar transação após solicitação (ms)"

Relatório / Painel

  • Bug 61871 - Reduza o valor padrão de jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity de 500ms para 100ms
  • Bug 61879 - Remova arquivos inúteis no modelo de relatório HTML

Em geral

  • Bug 61591 - Soltar Workbench da árvore de teste. Implementado por Artem Fedorov (artem em blazemeter.com) e contribuído por BlazeMeter Ltd.
  • Bug 61549 - Grupo de Tópicos: Remova a data de início e término
  • Bug 61529 - Migração para Java 9. Contribuição parcial do Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61709 - SampleResult: Adicione um método setIgnore() para fazer o JMeter ignorar o SampleResult e não enviá-lo aos ouvintes
  • Bug 61806 - Permitir usar SampleResult#setIgnore() em pós-processadores e script de asserções (elementos JSR223)
  • Bug 61607 - Adicionar botão de navegação em todos os elementos do BeanShell para selecionar o script do BeanShell
  • Bug 61627 - Não limpe mais o LogView ao clicar no Indicador de Aviso/Erros
  • Bug 61629 - Adicionar Think Times ao menu Children não deve considerar elementos desabilitados
  • Bug 61655 - SampleSender: Descarte a implementação de HoldSampleSender
  • Bug 61656 - tearDown Thread Group deve ser executado por padrão na parada ou desligamento do teste
  • Bug 61659 - JMeterVariables#get() deve aplicar toString() em objetos não string
  • Bug 61555 - Metaspace deve ser restrito como padrão
  • Bug 61693 - JMeter ciente do Docker ( -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap )
  • Bug 61694 - Adicionar opção -server no jmeter.bat
  • Bug 61697 - Introduza a aparência e a sensação de Darcula para tornar a interface do usuário do JMeter mais atraente
  • Bug 61704 - Barra de ferramentas: Melhore um pouco a parte certa
  • Bug 61731 - Melhore o backup do plano de teste com opção de salvar antes de executar. Baseado em uma contribuição de orimarko em gmail.com
  • Bug 61640 - Elementos de teste JSR223: Ativar por cache padrão. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61785 - Adicionar Ajuda  →  Links úteis para criar problemas e baixar compilação noturna
  • Bug 61808 - Corrige a posição do quadro principal. Implementado por Artem Fedorov (artem em blazemeter.com) e contribuído por BlazeMeter Ltd.
  • Bug 61802 - Loop / ForEach Controller deve expor uma variável para a iteração atual. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Pull request #349 - Adicione recursos i18n(zh_CN). Contribuição de Helly Guo (https://github.com/hellyguo)
  • Pull request #351 - Corrigido sobre a posição do diálogo na primeira visualização. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #352 - Barra de menu - mnemônicos adicionados a mais itens de menu. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #353 - Reescreveu alguns testes existentes no Spock. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 61919 - UX: Reordenar Menus. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 61920 - Plugins: Adicionada a capacidade de ouvir o carregamento/fechamento do Plano de Teste. Contribuição de Peter Doornbosch (https://bitbucket.org/pjtr/)
  • Bug 61935 - Plugins: Deixe o componente GUI (dinamicamente) decidir se pode ser adicionado através do menu ou não. Contribuição de Peter Doornbosch (https://bitbucket.org/pjtr/)
  • Bug 61969 - Ao alterar o LAF através da GUI, o usuário deve ser informado que é melhor reiniciar
  • Bug 61970 - O JMeter agora usa o inglês como localidade padrão para evitar traduções ausentes em algumas localidades, fazendo com que a interface do usuário pareça estranha
  • Bug 56368 - Criar e implantar artefatos de origem no Maven central
  • Bug 61973 - Criar e implantar artefatos javadoc no Maven central
  • Pull request #371 - Exemplo de correção na documentação para XPath Assertion . Contribuição de Konstantin Kalinin (kkalinin em hotmail.com)
  • Bug 62039 - Teste distribuído: Fornece capacidade de usar SSL

Alterações não funcionais

  • Atualizado para bsh-2.0b6 (de bsh-2.0b5)
  • Atualizado para groovy-all-2.4.13 (de groovy-all-2.4.12)
  • Atualizado para rhino-1.7.7.2 (de rhino-1.7.7.1)
  • Atualizado para tika-core e tika-parsers 1.17 (de 1.16)
  • Atualizado para commons-dbcp2-2.2.0 (de 2.1.1)
  • Atualizado para cafeína 2.6.1 (de 2.5.5)
  • Atualizado para commons-codec-1.11 (de 1.10)
  • Atualizado para commons-io-2.6 (de 2.5)
  • Atualizado para commons-lang3-3.7 (de 3.6)
  • Atualizado para commons-pool2-2.5.0 (de 2.4.2)
  • Atualizado para asm-6.0 (de 5.2)
  • Atualizado para jsoup-1.11.2 (de 1.10.3)
  • Atualizado para cglib-nodep-3.2.6 (de 3.2.5)
  • Atualizado para ph-css 6.0.0 (de 5.0.4)
  • Atualizado para ph-commons 9.0.0 (de 8.6.6)
  • Atualizado para log4j2 2.10.0 (de 2.8.2)
  • Atualizado para httpcore 4.4.9 (de 4.4.7)
  • Atualizado para httpclient 4.5.5 (de 4.5.3)
  • Atualizado para jodd 4.1.4 (de 3.8.6)
  • Bug 61642 - Melhora a cobertura do teste de FTP
  • Bug 61641 - Melhora a cobertura do teste JMS
  • Bug 61651 - Melhora a cobertura do teste TCP
  • Bug 61651 - Melhora a cobertura de teste do SO. Contribuição parcial de Aleksei Balan (abalanonline em gmail.com)
  • Pull request #319 - Removido o código comentado. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Solicitação pull #322 - Limpeza geral de JavaDoc. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #323 - Método extraído e fluxos usados ​​para melhorar a legibilidade. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #324 - Salvar refatoração de backup. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #327 - Utilizando Java mais moderno, simplificando código e formatando código e comentários. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #332 - Adicione a estrutura Spock para testes de unidade groovy. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #334 - Habilite a execução de testes JUnit de dentro do IntelliJ com a configuração padrão. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #335 - Functions.util.* removidos , pois não parecem ser usados ​​(por muitos anos). Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 61867 - Solicitação pull #345 - Atualizado para o último estilo de verificação (v8.5), Adição de muitas outras regras para o estilo de verificação, Inclusão de verificação de arquivos de teste e mais tipos de arquivo. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Pull request #350 - Testes unitários paralelizados. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 61966 - Setup Test Results Analyzer em jenkins
  • Pull request #343 - Reduza o tamanho de algumas imagens na documentação. Contribuição de Graham Russell (graham em ham1.co.uk)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 61569 - Plano de Teste JMS Point-to-Point: Problema de sincronização ao colocar resposta. Contribuição de Igor Panainte (panainte.i em gmail.com)

Outros Amostradores

  • Bug 61698 - Ação de teste: Parada selecionada, amostradores após a ação de teste podem ser executados
  • Bug 61707 - Ação de teste: o destino é ignorado quando a pausa é selecionada, portanto, deve ser desabilitada
  • Bug 61827 - JMSPublisher: Não adicione nova linha no final do arquivo. Contribuição de Graham Russell (graham em ham1.co.uk)

Controladores

  • Bug 61556 - Esclareça na documentação os impactos no desempenho do uso de ${} var no IfController e no groovy. Contribuição de Justin McCartney (be_strew em yahoo.co.uk)
  • Bug 61713 - Test Fragment tem a opção de Change Controller e Insert Parent. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61965 - Módulo e controlador de inclusão não devem permitir adicionar elementos sem sentido em seu contexto.
  • Bug 62062 - ThroughputController: StackOverFlowError acionado quando throughput=0 (Total Executions ou Percentage Executions) Parcialmente implementado por Artem Fedorov (artem.fedorov em blazemeter.com) e contribuído por BlazeMeter Ltd.

Ouvintes

  • Bug 61742 - BackendListener: corrija o valor padrão para backend_graphite.send_interval
  • Bug 61878 - BackendListener: NPE se BackendListenerClient#getDefaultParameters retornar nulo
  • Bug 61950 - Exibir árvore de resultados: o áudio/mpegurl do tipo de conteúdo é erroneamente considerado binário

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 61716 - Gerenciador de cabeçalhos: Ao colar cabeçalhos do Firefox ou Chrome, os espaços são introduzidos como o primeiro caractere de valor

Funções

  • Bug 61588 - Melhor mensagem de log para a função __RandomDate()
  • Bug 61619 - Na caixa de diálogo Function Helper, a 1ª função não exibe os parâmetros padrão
  • Bug 61628 - Se a string dividida tiver um separador vazio, o separador padrão não é usado
  • Bug 61752 - __RandomDate : A função não permite a falta do último parâmetro usado para o nome da variável

I18N

Relatório / Painel

  • Bug 61807 - Relatório da Web: corrigir erro em getTop5ErrorMetrics . Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 61900 - Gerador de Relatórios: A geração de relatórios falha se o separador for um caractere reservado regex como |
  • Bug 61925 - CsvSampleReader não incrementa a linha em nextSample(). Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 61956 - Geração de Relatório: -f da opção -forceDeleteResultFile não funciona. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61899 - Geração de Relatórios: Quando jmeter.save.saveservice.print_field_names é false e sample_variables são definidas, a geração de relatórios falha. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61962 - Os gráficos de latência vs solicitação e tempo de resposta vs solicitação não excedem 1000 RPS. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Em geral

  • Bug 61661 - Evite problemas de inicialização/desligamento devido a plugins de escuta de thread de terceiros lançando RuntimeException
  • Bug 61625 - Editor de arquivo usado no BeanInfo se comporta de forma estranha em todos os LAFs com impacto no CSVDataSet, JSR223, BSF, Beanshell Element
  • Bug 61844 - Maven pom.xml: Bibliotecas usadas em testes devem ter teste de escopo
  • Bug 61842 - Salvar sem alterações faz com que um arquivo de backup idêntico seja salvo e duplicado

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Igor Panainte (panainte.i at gmail.com)
  • Emilian Bold (emi em apache.org)
  • Pacote de carregamento Ubik
  • Justin McCartney (be_strew em yahoo.co.uk)
  • Vincent Herilier (https://github.com/vherilier)
  • Aleksei Balan (abalanonline em gmail.com)
  • Graham Russell (graham em ham1.co.uk)
  • orimarko em gmail.com
  • Artem Fedorov (artem em blazemeter.com)
  • BlazeMeter Ltd
  • Benny van Wijngaarden (benny em smaragd-it.nl)
  • Matthew Buckett (https://github.com/buckett)
  • Helly Guo (https://github.com/hellyguo)
  • Peter Doornbosch (https://bitbucket.org/pjtr/)
  • Jeremy Arnold (jeremy em arnoldzoo.org)
  • Vladimir Sitnikov (sitnikov.vladimir em gmail.com)
  • Konstantin Kalinin (kkalinin em hotmail.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:

  • user7294900 no Stackoverflow (orimarko em gmail.com)

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 3.3

Resumo

Novo e notável

O JMeter ainda não suporta JAVA 9, a próxima versão do JMeter irá suportá-lo, você pode ajudar e acompanhar o progresso deste item no Bug 61529 .
O uso da última versão secundária do JAVA 8 é recomendado para evitar enfrentar qualquer bug do JDK.

Melhorias principais

O HTTP Sampler agora oferece suporte à descompactação Brotli.

O CacheManager agora suporta completamente o cabeçalho Vary.

O InfluxDB BackendListener agora suporta o envio de resultados para o InfluxDB por meio do protocolo UDP.

Também foi aprimorado para enviar o número de erros por código de resposta e mensagem para cada transação

O TCP Sampler agora calcula a latência, veja o Bug 60156

Dependências atualizadas para as últimas versões disponíveis, trazendo melhorias de desempenho e correções de bugs

Continuamos a melhorar a qualidade do nosso código e cobertura de testes. Ver relatório de qualidade

Melhorias de experiência do usuário

Mais trabalho foi feito para oferecer melhor suporte ao HiDPI.

Alguns bugs, que surgiram com o trabalho de diminuir o uso de memória da Árvore de Resultados da Visualização, foram corrigidos.

A constante DEFAULT_IMPLEMENTATION foi removida do CookieManager, pois perdeu o propósito com a remoção da implementação alternativa do cliente HTTP na última versão

O JDBC Sampler UX foi aprimorado adicionando caixas de seleção para drivers e consultas de validação.

Se Controller e While Controller UX foram melhorados

Melhorias no relatório/painel

Um novo item de menu Ajuda foi adicionado para simplificar a configuração da geração de relatórios.

Melhorias na documentação

Feedback incorporado sobre documentação pouco clara.

Funções

Caixa de Diálogo Auxiliar de Função: foi adicionado um novo campo que mostra o resultado da execução.

Novas funções:

  • __timeShift - retorna uma data em vários formatos com a quantidade especificada de segundos/minutos/horas/dias adicionados.
  • __RandomDate - gera uma data aleatória dentro de um intervalo de datas específico.

Alterações incompatíveis

  • Em InfluxDbBackendListenerClient, a propriedade statut foi renomeada para status
  • No CookieManager, as constantes DEFAULT_POLICY e DEFAULT_IMPLEMENTATION agora são privadas.
    Se você estiver usando ignorecookies com HC3CookieHandler (< JMeter 3.1) a configuração será redefinida, certifique-se de colocá-lo de volta.
  • O JMeter não truncará mais por respostas padrão que excedam 10 MB. Se você deseja habilitar esse truncamento, consulte a propriedade httpsampler.max_bytes_to_store_per_request
  • org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream) foi preterido em favor ou org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream, SampleResult), certifique-se de atualizar sua implementação para poder calcular a latência, veja Bug 60156

Elementos ou funções removidos

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 61056 - HTTP: Suporta decodificação brotli
  • Bug 61135 - CookieManager: Solte a caixa de seleção de implementação e a classe de limpeza
  • Bug 61492 - HTTP(S) Test Script Recorder : Adicione a possibilidade de alterar o valor de proxy.pause na GUI

Outros amostradores

  • Bug 61320 - Ação de teste: Defina a duração como 0 por padrão
  • Bug 61504 - Configuração de conexão JDBC: Defina o número máximo de conexões como 0 por padrão
  • Bug 61505 - Configuração de conexão JDBC: Defina "Consulta de validação" para vazio por padrão para usar o método isValid do driver JDBC
  • Bug 61506 - Configuração de conexão JDBC: Adicione uma lista para consultas de validação de bancos de dados principais para o atributo "Consulta de validação"
  • Bug 61507 - Configuração de conexão JDBC: Adicione uma lista para bancos de dados principais Nome da classe do driver JDBC para o atributo "classe do driver JDBC"
  • Bug 61525 - Amostrador de processo do SO: Adicionar botão do navegador aos campos de diretório de comando e trabalho
  • Bug 60156 - TCPSampler: A latência não é medida para o TCP Sampler. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61039 - Configuração do conjunto de dados CSV: Adicionar botão do navegador ao campo Nome do arquivo
  • Bug 61527 - Configuração do conjunto de dados CSV : Adicione uma lista para valores de codificação de arquivo principal para o atributo de codificação de arquivo

Controladores

  • Bug 61131 - IfController e WhileController: melhorar UX

Ouvintes

  • Bug 61167 - InfluxdbBackendListener: adiciona número de erros por código de resposta e mensagem para cada transação
  • Bug 61068 - Introduzir a propriedade resultcollector.action_if_file_exists para controlar o popup "Arquivo já existe" ao iniciar um teste
  • Bug 61457 - InfluxDB backend listener client : Suporta envio de resultado para InfluxDB através do protocolo UDP. Parcialmente baseado no Pull request #302 - por Junlong Wu (id do github mybreeze77)

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

  • Bug 61040 - Adicione uma função de deslocamento de tempo
  • Bug 61126 - Caixa de Diálogo Auxiliar de Função: Adicione um campo que mostra o resultado da execução
  • Bug 61508 - Adicionar uma data aleatória dentro de uma função de intervalo de data específica

I18N

  • Bug 61509 - Melhor rótulo/tradução/documentação para rótulos iniciais e máximo para o elemento Contador

Relatório / Painel

  • Bug 61481 - Item do Menu Ajuda para exportar transação para relatório da Web

Em geral

  • Ao procurar classes em ActionRouter , retorne ao local do jar, de onde ActionRouter é carregado. Fornecido por Emilian Bold (emi em apache.org)
  • Bug 61510 - Defina 'Max Number of Connections' como 0 em 'JDBC Connection Configuration' para o 'JDBC Load Test template'
  • Bug 61399 - Torna alguns scripts de bin e extras compatíveis com Shellcheck. Contribuição de Wolfgang Wagner (internetwolf2000 em hotmail.com)

Alterações não funcionais

  • Atualizado para groovy 2.4.12 (de 2.4.10)
  • Atualizado para cafeína 2.5.5 (de 2.4.0)
  • Atualizado para commons-jexl3 3.1 (de 3.0)
  • Atualizado para ph-css 5.0.4 (de 5.0.3)
  • Atualizado para ph-commons 8.6.6 (de 8.6.0)
  • Atualizado para log4j2 2.8.2 (de 2.8.1)
  • Atualizado para xmlgraphics-commons 2.2 (de 2.1)
  • Atualizado para jodd 3.8.6 (de 3.8.1)
  • Atualizado para xstream 1.4.10 (de 1.4.9)
  • Atualizado para Apache Tika 1.16 (de 1.14)
  • Atualizado para jsoup-1.10.3 (de 1.10.2)
  • Atualizado para commons-lang3 3.6 (de 3.5)
  • Atualizado para json-path 2.4.0 (de 2.2.0)
  • Atualizado para httpcore 4.4.7 (de 4.4.6)
  • Bug 61438 - Altera a assinatura criptográfica dos pacotes de sha-1 para sha-512

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 61384 - Não defina o charset no cabeçalho multipart/form-data . Isso irrita alguns servidores.
    O charset foi adicionado algum tempo atrás durante a refatoração para usar uma API mais recente do cliente http. Veja Bug 56141 - para mais informações.
  • Bug 61456 - java.lang.ArrayIndexOutOfBoundsException ao gravar com JMeter e cabeçalho de autorização de autenticação básica estranho
  • Bug 61395 - Grande truncamento de resposta do servidor pode afetar a gravação

Outros Amostradores

  • Bug 60889 - A amostra JMeter JDBC chama SELECT USER() ao testar com MySQL JDBC devido à chamada Connection#toString para cabeçalhos de resposta.
  • Bug 61259 - Solicitação JDBC : desde o JMeter 3.0, quando o auto-commit JDBC é false , uma instrução de reversão ocorre toda vez que uma solicitação é executada. Contribuição parcial de Liu XP (liu_xp2003 em sina.com)
  • Bug 61319 - Correção de regressão: SMTP Sampler não podia enviar e-mails, quando nenhum anexo foi especificado.

Controladores

  • Bug 61375 - Use o resolvedor de DNS do sistema como último recurso, ao resolver entradas na tabela de host estática.

Ouvintes

  • Bug 61005 - Exibir árvore de resultados - os dados de resposta do navegador não estão sendo apagados
  • Bug 61121 - InfluxdbBackendListenerClient: Apenas todos os percentis são enviados, não KO e OK
  • Bug 60961 - Tente manter o status dos elementos selecionados e expandidos na Árvore de Resultados da Visualização quando novos elementos são adicionados.
  • Bug 61198 - Backend Listener não funciona corretamente no script principal quando os scripts incluídos também contêm Backend Listener
  • Bug 61493 - Os threads Max/Min são trocados no ouvinte de back-end Graphite e InfluxDB

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 58743 - Pull request #293 - TableEditor não pode ser salvo, ao usar duas ou mais instâncias. Correção de bug fornecida por Emilian Bold (emi em apache.org)
  • Bug 61314 - O modificador de reescrita de URL HTTP não substitui o jsessionid existente no amostrador http, mas o adiciona ao final
  • Bug 61336 - Asserção do BeanShell: erro na tradução chinesa

Funções

  • Bug 61258 - A função StringFromFile é mencionada duas vezes na caixa de diálogo do auxiliar de função
  • Bug 61260 - função __XPath retorna nulo apesar do verificador XPath encontrar correspondências
  • Bug 58876 - A função TestPlanName retorna null para um Plano de Teste recém-salvo e usa um anteriormente aberto para um novo

I18N

Relatório / Painel

  • Bug 61129 - Relatório/Painel: Se o código de resposta estiver vazio, mas uma mensagem de falha estiver presente, Erros e 5 principais erros não são precisos. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 61151 - Relatório/Painel: 5 principais erros por amostrador e erros: se a declaração contiver código html, a parte html estará oculta

Em geral

  • Bug 60743 - Parar/Desligar o teste pode criar um impasse devido ao HTTPCORE-446, corrigido pela atualização do HttpCore para 4.4.7
  • Bug 60994 - Corrige algum erro de digitação em comentários ou mensagens de log. Solicitação de pull #289 e solicitação de pull #290 -
  • Bug 61011 - A contagem de ocorrências de substituição não está correta (a substituição de caminho e host é contada duas vezes)
  • Bug 61026 - Não é possível executar o programa "keytool": CreateProcess error=2 ao iniciar o JMeter 3.2 no modo GUI
  • Bug 61054 - Loop infinito em JOrphanUtils#replaceAllWithRegex quando regex está contido em substituição
  • Bug 60995 - Gravador de script de teste HTTP: O campo da porta é muito pequeno em alguns L&F
  • Bug 61073 - O painel HTTP(S) Test Script Recorder tem alguns campos com tamanho incorreto na tela HiDPI ou GTK+ L&F no Linux/XWayland
  • Bug 57958 - Correção de amostra de transação não gerada se o encadeamento parar/reiniciar. Implementado por Artem Fedorov (artem em blazemeter.com) e contribuído por BlazeMeter Ltd.
  • Bug 61050 - Manipule RessourceBundle não inicializado com mais facilidade, ao chamar JMeterUtils#getResString .
  • Bug 61100 - Nome de arquivo de log do GC inválido no Windows
  • Bug 57962 - Permitir usar variáveis ​​(apenas de variáveis ​​definidas pelo usuário) em todos os ouvintes no modo de nó do trabalhador
  • Bug 61270 - Fontes de largura fixas muito pequenas em áreas de texto para ler em HiDPI (bug manual do usuário)
  • Bug 61292 - Torna o processamento de amostras no repórter mais robusto.
  • Bug 61359 - Ao cortar um elemento da Árvore, o plano de teste não é marcado como sujo
  • Bug 61380 - O desligamento do JMeter usando temporizadores libera um rebanho estrondoso de amostradores interrompidos
  • Bug 57055 - CheckDirty.doAction deve limpar os anterioresGuiItems para SUB_TREE_SAVED

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Anass Benomar (abenomar em umanis.com, Mithrandir0407 em github)
  • Anthony Kearns (anthony.kearns atrightside.co)
  • Emilian Bold (emi em apache.org)
  • Liu XP (liu_xp2003 em sina.com)
  • Pacote de carregamento Ubik
  • Wolfgang Wagner (internetwolf2000 em hotmail.com)
  • Junlong Wu (id do github mybreeze77)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:

  • Liu XP (liu_xp2003 em sina.com)
  • Alexander Podelko (apodelko em yahoo.com)

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption ) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com Java 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 3.2

Resumo

Novo e notável

ALTERAÇÕES IMPORTANTES

O JMeter agora requer Java 8. Certifique-se de usar a versão mais atualizada.

O registro do JMeter foi migrado para SLF4J e Log4j 2. Isso afeta a configuração e os plugins de terceiros, veja abaixo "Registrando alterações" .

A partir do JMeter versão 3.2, o número de resultados na Árvore de Resultados da Visualização é limitado por padrão a 500 entradas. Se você quiser mais entradas, você deve definir a propriedade view.results.tree.max_results para um valor mais alto, ou para 0 , se você não quiser impor nenhum limite. Você pode definir a propriedade em bin/user.properties. Mais informações podem ser encontradas aqui .

Melhorias principais

  • O JMeter agora fornece uma nova implementação de BackendListener que faz interface com o InfluxDB.
    Essa implementação envia dados usando chamadas HTTP assíncronas para o InfluxDB por meio de sua API HTTP e fornece os seguintes gráficos com anotações:
  • O DNS Cache Manager agora tem uma tabela para permitir a resolução estática do host.
  • O Publicador e Assinante JMS agora permitem a reconexão em caso de erro com pausa.
  • As variáveis ​​no JMS Publisher agora são suportadas para todos os tipos de mensagens. Adicione o tipo de codificação do arquivo para analisar seu conteúdo
  • O XPath Extractor agora permite a extração aleatória, por índice ou para todas as correspondências.
  • A Asserção de Resposta agora permite trabalhar no cabeçalho da solicitação, fornece uma combinação "OR" e possui um renderizador de célula melhor
  • O JMeter agora usa o mecanismo Javascript Oracle Nashorn em vez do Rhino. Isso fornece uma execução mais rápida de Javascript.
  • A implementação HTTP HC4 agora fornece autenticação básica preemptiva habilitada por padrão
  • O download de recursos incorporados em CSS foi aprimorado para evitar análises repetitivas inúteis para encontrar os recursos
  • Um trabalho importante sobre qualidade de código e cobertura de código com testes foi feito desde que o Sonar foi configurado no projeto. Você pode ver o relatório do Sonar aqui .

Melhorias de experiência do usuário

  • Ao executar um teste, a GUI agora é mais responsiva e menos impactante no uso da memória, graças a uma limitação no número de ouvintes de resultados de amostra e a um retrabalho na maneira como a GUI é atualizada
  • A GUI de solicitação HTTP foi simplificada e fornece mais espaço para parâmetros e corpo.
  • O Gravador de Script de Teste HTTP(S) foi simplificado e esclarecido.
  • Um recurso de substituição foi adicionado ao recurso de pesquisa para permitir a substituição em alguns elementos.
    ReplaceAll não faz substituição em todos os elementos, faz em:
    - HeaderManager: Substituição em valores
    - Http Request: Substituição em Argumentos, Caminho e Host
  • Exibir Árvore de Resultados agora fornece um renderizador de navegador mais atualizado que requer JavaFX.
  • Agora você pode adicionar através de um menu contextual tempos de reflexão, isso adicionará tempos de pensamento entre amostradores e controladores de transação do nó selecionado.
  • Agora você pode aplicar uma política de nomenclatura a filhos de um Controlador de Transação. Existe uma política padrão, mas você pode implementar a sua própria por meio de org.apache.jmeter.gui.action.TreeNodeNamingPolicy e configurando a propriedade naming_policy.impl
  • A classificação por coluna foi adicionada aos elementos Exibir resultados na tabela, relatório resumido, relatório agregado e gráfico agregado.

Melhorias no relatório/painel

  • As estatísticas foram reorganizadas para esclarecer o relatório:
  • Agora é possível personalizar os limites do APDEX por transação com base na expressão regular ou no nome da amostra. O exemplo abaixo aplicará limites diferentes para amostras sample(\\d+), amostraA e cenárioB do que os padrões (500 e 1500 para limites satisfeitos e tolerados) declarados:
    jmeter.reportgenerator.apdex_satisfied_threshold=500
    jmeter.reportgenerator.apdex_tolerated_threshold=1500
    jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\
        amostraA:3000|4000;\
        cenário B:5000|6000
    

Melhorias na documentação

  • As documentações em PDF foram migradas e atualizadas para o manual do usuário HTML

Alterações incompatíveis

  • O JMeter agora requer pelo menos uma versão do Java 8 para ser executado.
  • O log do JMeter foi migrado para SLF4J e Log4j 2, isso envolve mudanças na forma como a configuração é feita. O JMeter agora depende da configuração padrão do Log4j 2 no arquivo log4j2.xml Consulte a seção Logging changes abaixo para obter mais detalhes.
  • Os seguintes jars foram removidos após a migração do LogKit para SLF4J (veja Bug 60589 ):
    • ApacheJMeter_slf4j_logkit.jar
    • avalon-framework-4.1.4.jar
    • commons-logging-1.2.jar
    • excalibur-logger-1.1.jar
    • logkit-2.0.jar
  • O commons-httpclient-3.1.jar foi removido após a queda do suporte HC3.1 (veja o Bug 60727 )
  • O JMeter agora define através de -Djava.security.egd=file:/dev/urandom o algoritmo para segurança aleatória
  • O Process Sampler agora retorna o código de erro 500 quando ocorre um erro. Anteriormente, ele retornava um valor vazio.
  • Em org.apache.jmeter.protocol.http.sampler.HTTPHCAbstractImpl dois campos estáticos protegidos ( localhost e nonProxyHostSuffixSize ) foram renomeados para ( LOCALHOST e NON_PROXY_HOST_SUFFIX_SIZE ) para seguir a convenção de nomenclatura de campos estáticos
  • O JMeter agora usa por padrão o mecanismo Oracle Nashorn em vez do Mozilla Rhino para obter melhores desempenhos. Isso não deve ter impacto, a menos que você use alguns recursos avançados. Você pode reverter para o Rhino pela propriedade de configurações javascript.use_rhino=true . Você pode ler este guia de migração para obter mais detalhes sobre o Nashorn. Veja Bug 60672
  • Bug 60729 - O elemento de configuração de variável aleatória agora permite mínimo==máximo. Versões anteriores registraram um erro quando mínimo==máximo e não definiram a variável configurada.
  • Bug 60730 - O JSON PostProcessor agora define a variável _ALL (assumindo que a var de concatenação de computação foi verificada) mesmo que o caminho JSON corresponda apenas uma vez. As versões anteriores não definiram a variável _ALL neste caso.

Elementos ou funções removidos

  • A solicitação SOAP/XML-RPC foi removida como parte do Bug 60727 . Use o elemento HTTP Request como substituto. Consulte Construindo um Plano de Teste de WebService
  • Bug 60423 - Ouvinte de resultados do monitor de queda
  • Elimine a classe obsoleta org.apache.jmeter.protocol.system.NativeCommand
  • Elimine a classe obsoleta org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui
  • Elimine a classe obsoleta org.apache.jmeter.testelement.TestListener
  • Elimine a classe obsoleta org.apache.jmeter.reporters.FileReporter
  • Elimine a classe obsoleta org.apache.jmeter.protocol.http.modifier.UserSequence
  • Elimine a classe obsoleta org.apache.jmeter.protocol.http.parser.HTMLParseError
  • Elimine os métodos não utilizados org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader e org.apache.jmeter.protocol.http.control.HeaderManager#setSOAPHeader(Object)
  • org.apache.jmeter.protocol.http.util.Base64Encode foi descontinuado, você pode usar java.util.Base64 como um substituto

Alterações de registro

O log do JMeter foi migrado para SLF4J e Log4j 2. Isso afeta a configuração do log e plugins de terceiros (se eles usarem o log do JMeter). As seções a seguir descrevem quais mudanças precisam ser feitas.

Configurando o nível de log e o arquivo de log

O nível de log padrão pode ser alterado na linha de comando usando o parâmetro -L . Da mesma forma, o parâmetro -l pode ser usado para alterar o nome do arquivo de log. No entanto, as propriedades log_level não funcionam mais.

Os níveis de log padrão e o nome do arquivo são definidos no arquivo de configuração log4j2.xml no diretório de ativação (geralmente JMETER_HOME/bin )

Se você precisar alterar o nível programaticamente do código Groovy ou do Beanshell, faça o seguinte:
    importar org.apache.logging.log4j.core.config.Configurator;
    ⋮
    final String loggerName = te.getClass().getName(); //te sendo uma classe JMeter
    Configurator.setAllLevels(loggerName, Level.DEBUG);
    

Alterações no registro de plug-ins de terceiros

Plugins de terceiros devem migrar seu código de log do logkit para o slf4j. Isso é bastante fácil e pode ser feito substituindo:
        importar org.apache.jorphan.logging.LoggingManager;
        importar org.apache.log.Logger;
        ⋮
        log do registrador final estático privado = LoggingManager.getLoggerForClass();
    
Por:
        importar org.slf4j.Logger;
        importar org.slf4j.LoggerFactory;
        ⋮
        log do logger final estático privado = LoggerFactory.getLogger(YourClassName.class);
    

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 59934 - Corrige condições de corrida no CssParser. Baseado em um patch de Jerome Loisel (loisel.jerome em gmail.com)
  • Bug 60543 - Solicitação HTTP/Padrões de solicitação HTTP UX: Mover para o painel avançado Tempos limite, implementação, proxy. Implementado por Philippe Mouawad (p.mouawad em ubik-ingenierie.com) e contribuído por Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60548 - Solicitação HTTP: permitir que o painel superior seja recolhido
  • Bug 57242 - Autorização HTTP não é definida preventivamente com HttpClient4
  • Bug 60727 - Descarte commons-httpclient-3.1 e elementos relacionados. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60790 - HTTP(S) Test Script Recorder : Melhore as informações sobre a expiração do certificado e tenha melhor UX para Iniciar/Parar
  • Bug 60888 - HttpRequest: Adicionar opção para permitir nova tentativa de todas as solicitações, incluindo métodos HTTP NÃO Idempotentes
  • Bug 60896 - Gravador de script de teste HTTP(S): Melhore o UX reduzindo o número de propriedades na tela

Outros amostradores

  • Bug 60740 - Variável de suporte para todas as mensagens JMS (bytes, objeto, …) e fontes (arquivo, pasta), com base no Pull request #241 - . Contribuição de Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60585 - Publicador JMS e Assinante JMS: permitir reconexão em caso de erro e pausar entre erros. Baseado no Pull request #240 - de Logan Mauzaize (logan.mauzaize em gmail.com) e Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Pull request #259 - - SmtpSampler refatorado e reformatado. Contribuição de Graham Russell (graham em ham1.co.uk)

Controladores

  • Bug 60672 - Função JavaScript / IfController: use o mecanismo Nashorn por padrão

Ouvintes

  • Bug 60144 - Exibir Árvore de Resultados: Adicione um Renderizador de Navegador mais atualizado para substituir o Renderizador antigo
  • Bug 60542 - Exibir Árvore de Resultados: Permitir que o Painel Superior seja recolhido. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 52962 - Permitir classificação por colunas para Exibir Resultados em Tabela, Relatório Resumido, Relatório Agregado e Gráfico Agregado. Baseado em um Pull request #245 - por Logan Mauzaize (logan.mauzaize em gmail.com) e Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60590 - BackendListener: Adicione a implementação Influxdb BackendListenerClient ao JMeter. Parcialmente baseado no Pull request #246 - por Logan Mauzaize (logan.mauzaize em gmail.com) e Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60591 - BackendListener : Adicione uma amostragem em caixa de tempo. Baseado em um Pull request #237 - por Logan Mauzaize (logan.mauzaize em gmail.com) e Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60678 - Exibir árvore de resultados: renderizador de texto, a pesquisa não deve aparecer "Texto não encontrado"
  • Bug 60691 - Exibir árvore de resultados: nos renderizadores (XPath, JSON Path Tester, RegExp Tester e CSS/JQuery Tester) o painel inferior às vezes não é visível, pois o painel superior é muito grande e não pode ser redimensionado
  • Bug 60687 - Torna a GUI mais responsiva quando recebe muitos eventos.
  • Bug 60791 - Exibir árvore de resultados: acionar a pesquisa na tecla Enter no recurso de pesquisa e exibir o fundo vermelho se não houver correspondência
  • Bug 60822 - ResultCollector não garante entradas de nome de arquivo exclusivas em arquivos HashMap

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 60154 - GUI de parâmetros do usuário: permite que as linhas sejam movidas para cima e para baixo na lista. Contribuição de Murdecai777 (https://github.com/Murdecai777).
  • Bug 60507 - Adicionada a função ' Or ' no ResponseAssertion. Com base em uma contribuição de 忻隆 (298015902 em qq.com)
  • Bug 58943 - Crie uma experiência de tempo de reflexão melhor. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60602 - XPath Extractor: Adicione o número de correspondência para permitir a extração aleatória, por índice ou todas as correspondências
  • Bug 60710 - Extrator XPath : Quando o conteúdo no qual a asserção se aplica não é XML, em Exibir Árvore de Resultados o extrator é marcado em Vermelho e nomeado SAXParseException. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60712 - Asserção de resposta: melhore o renderizador de padrões
  • Bug 59174 - Adicione uma tabela com hosts estáticos ao DNS Cache Manager. Isso permite melhores testes de hosts virtuais com HttpClient4.

Funções

I18N

  • Melhorar a tradução " save_as " em francês. Baseado em uma solicitação Pull #252 de Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60785 - Melhoria da tradução japonesa. Patch por Kimono (kimono.outfit.am em gmail.com).

Relatório / Painel

  • Bug 60637 - Melhorar o design da tabela de estatísticas
  • Bug 60112 - Relatório/Painel: Adicionada a capacidade de personalizar os limites APDEX por nome de transação. Contribuição de Stephane Leplus (s.leplus em ubik-ingenierie.com)

Em geral

  • Bug 58164 - Verifique se o arquivo já existe no ouvinte ResultCollector antes de iniciar o loadtest
  • Bug 54525 - Recurso de pesquisa: melhore-o com a capacidade de substituir
  • Bug 60530 - Adicionar API para criar threads JMeter enquanto o teste está em execução. Baseado em uma contribuição de Logan Mauzaize (logan.mauzaize em gmail.com) e Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60514 - Capacidade de aplicar uma convenção de nomenclatura em Filhos de um Controlador de Transação. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60711 - Melhorar o comportamento do botão Excluir para asserções / Gerenciador de cabeçalho / GUIs de parâmetros do usuário / Excluir, incluir no gravador de script de teste HTTP(S)
  • Bug 60593 - Mudar para algoritmo G1 GC
  • Bug 60595 - Adicione um SplashScreen no início da GUI do JMeter. Contribuição de Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 55258 - Solte o ícone "Fechar" da barra de ferramentas e adicione "Novo" ao menu. Parcialmente baseado na contribuição de Sanduni Kanishka (https://github.com/SanduniKanishka)
  • Bug 59995 - Permitir que o usuário altere o tamanho da fonte com dois novos itens de menu e use jmeter.hidpi.scale.factor para dimensionar as fontes. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60654 - Recurso de validação: ser capaz de ignorar BackendListener. Contribuição de Maxime Chassagneux (maxime.chassagneux em gmail.com).
  • Bug 60646 - Workbench: Salve por padrão
  • Bug 60684 - Thread Group: Validação encerrada prematuramente pelo Scheduler com duração 0 ou muito curta. Contribuição de Andrew Burton (andrewburtonatwh em gmail.com).
  • Bug 60589 - Migrar LogKit para SLF4J - Drop Avalon, LogKit e Excalibur com retrocompatibilidade para módulos de terceiros. Contribuição de Woonsan Ko (woonsan em apache.org)
  • Bug 60565 - Migrar LogKit para SLF4J - Otimizar instruções de log. por exemplo, argumentos de formato de mensagem, argumentos jogáveis, log desnecessário se-habilitado em simples, etc. Contribuição de Woonsan Ko (woonsan em apache.org)
  • Bug 60564 - Migrar LogKit para SLF4J - Substitua os registradores LogKit por SLF4J e mantenha a solução de ligação LogKit atual para compatibilidade com plugins. Contribuição de Woonsan Ko (woonsan em apache.org)
  • Bug 60664 - Adicione um menu de interface do usuário para definir o nível de log. Contribuição de Woonsan Ko (woonsan em apache.org)
  • Pull request #276 - - Adicionadas algumas traduções para a localidade polonesa. Contribuição de Bartosz Siewniak (barteksiewniak em gmail.com)
  • Bug 60792 - Crie um novo item de menu Ajuda para criar um despejo de thread
  • Bug 60813 - Elemento de teste JSR223: Leve em consideração JMeterStopTestNowException, JMeterStopTestException e JMeterStopThreadException
  • Bug 60814 - Menu: Adicionar item de menu Abrir Recente para tornar o carregamento de arquivos recentes mais óbvio
  • Bug 60815 - Solte "Reset GUI" do menu
  • Bug 60886 - Melhorias de compilação para melhor habilitar compilações em ambientes que estão atrás de um proxy. Contribuição parcial de Michael Osipov (michaelo em apache.org)

Alterações não funcionais

  • Bug 60415 - Elimine o suporte para Java 7.
  • Atualizado para dnsjava-2.1.8.jar (de 2.1.7)
  • Atualizado para groovy 2.4.10 (de 2.4.7)
  • Atualizado para httpcore 4.4.6 (de 4.4.5)
  • Atualizado para httpclient 4.5.3 (de 4.5.2)
  • Atualizado para jodd 3.8.1 (de 3.7.1.jar)
  • Atualizado para jsoup-1.10.2 (de 1.10.1)
  • Atualizado para ph-css 5.0.3 (de 4.1.6)
  • Atualizado para ph-commons 8.6.0 (de 6.2.4)
  • Atualizado para slf4j-api 1.7.25 (de 1.7.21)
  • Atualizado para asm 5.2 (de 5.1)
  • Atualizado para rsyntaxtextarea-2.6.1 (de 2.6.0)
  • Atualizado para commons-net-3.6 (de 3.5)
  • Atualizado para json-smart-2.3 (de 2.2.1)
  • Atualizado para accessors-smart-1.2 (de 1.1)
  • Converteu os antigos tutoriais em pdf para xml.
  • Pull request #255 - - Recursos Java 8 (e 7) utilizados para organizar o código. Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 59435 - JMeterTestCase não suporta mais JUnit3

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 60531 - HTTP Cookie Manager: alterar a Implementação não atualiza a Política de Cookies
  • Bug 60575 - Solicitações HTTP GET podem ter um cabeçalho de tipo de conteúdo sem um corpo.
  • Bug 60682 - Solicitação HTTP: o método Get pode falhar no redirecionamento devido ao cabeçalho Content-Length estar definido
  • Bug 60643 - O Gravador de Script de Teste HTTP(S) não manipula corretamente a reinicialização ou o início após a parada. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60652 - Solicitações HTTP PUT podem vazar descritores de arquivo.
  • Bug 60689 - httpclient4.validate_after_inactivity não tem impacto levando ao uso de conexões potencialmente obsoletas/fechadas
  • Bug 60690 - Valores padrão para "httpclient4.validate_after_inactivity" e "httpclient4.time_to_live" que são iguais entre si tornam a validação inútil
  • Bug 60758 - Gravador de script de teste HTTP(s): A solicitação de número pode gerar números duplicados. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 56939 - Parâmetros não são passados ​​com OPTIONS HTTP Request
  • Bug 60778 - Http Java Impl não mostra o cabeçalho Authorization em SampleResult mesmo se for enviado
  • Bug 60837 - GET com corpo, PUT não são repetidos mesmo se httpclient4.retrycount for maior que 0
  • Bug 60842 - Corte URLs extraídos ao carregar recursos incorporados usando o HTML Parser baseado em Lagarto.
  • Bug 60928 - Solicitação de HTTP: vazamento de conexão quando keepalive é usado com recursos incorporados

Outros Amostradores

  • Bug 603982 - Manipulador de exceção de proteção do JDBCSampler contra mensagens nulas
  • Bug 55652 - JavaSampler redefine silenciosamente o nome da classe se a classe não puder ser encontrada

Controladores

Ouvintes

  • Bug 60648 - GraphiteBackendListener pode perder algumas métricas no final do teste se o teste for muito curto
  • Bug 60650 - AbstractBackendListenerClient não redefine UserMetric entre execuções
  • Bug 60759 - Exibir Árvore de Resultados: O recurso de pesquisa não pesquisa em URL. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60859 - Salvar respostas em um arquivo: 2 elementos com configuração diferente se sobrepõem

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 60438 - Pull request #235 - - Limpe as variáveis ​​antigas antes de extrair as novas no JSON Extractor. Baseado em um patch de Qi Chen (qi.chensh em ele.me)
  • Bug 60607 - A configuração do DNS Cache Manager é ignorada
  • Bug 60729 - O elemento de configuração de variável aleatória deve permitir mínimo==máximo
  • Bug 60730 - O JSON PostProcessor deve definir a variável _ALL mesmo que o caminho JSON corresponda apenas uma vez.
  • Bug 60747 - Asserção de resposta: adicionar cabeçalhos de solicitação ao campo a ser testado
  • Bug 60763 - XMLAssertion não deve vazar erros para o console
  • Bug 60797 - TestAction no modo de pausa pode durar além da duração configurada do teste

Funções

  • Bug 60819 - A função __fileToString não honra o contrato de documentação quando o arquivo não é encontrado

I18N

Relatório / Painel

  • Bug 60726 - Report / Dashboard : Os 5 principais erros dos samplers não devem levar em conta a filtragem da série
  • Bug 60919 - Relatório / Painel: Latência Vs Solicitação e Tempo de Resposta Vs Solicitação estão errados se a granularidade for diferente de 1000 (1 segundo)

Em geral

  • Bug 60775 - NamePanel ctor chama o método substituível
  • Bug 60428 - JMeter Graphite Backend Listener lança exceção quando o teste termina e useRegexpForSamplersList é definido como true . Baseado no patch de Liu XP (liu_xp2003 em sina.com)
  • Bug 60442 - Corrige um erro de digitação no build.xml (gavin em 16degrees.com.au)
  • Bug 60449 - Árvore JMeter: comportamento irritante quando o nome do nó está vazio
  • Bug 60494 - Adicionar tarefa de análise de sonar para construir
  • Bug 60501 - Recurso de pesquisa: problema de desempenho quando regexp é verificado
  • Bug 60444 - Falha intermitente de TestHTTPMirrorThread#testSleep() . Contribuição de Thomas Schapitz (ts-nospam12 em online.de)
  • Bug 60621 - A pasta " report-template " está faltando no ApacheJMeter_config-3.1.jar no maven central
  • Bug 60744 - Os elementos da GUI não são limpos quando reutilizados durante o carregamento do Plano de Teste, o que pode levá-los a serem parcialmente inicializados com um estado anterior para um novo Elemento de Teste
  • Bug 60812 - JMeterThread não honra o contrato de JMeterStopTestNowException
  • Bug 60857 - SaveService omite o cabeçalho XML se _file_encoding não estiver definido em saveservice.properties
  • Bug 60830 - Timestamps no arquivo CSV podem ser corrompidos devido ao compartilhamento de um SimpleDateFormatter entre threads

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Jerome Loisel (loisel.jerome em gmail.com)
  • Liu XP (liu_xp2003 em sina.com)
  • Qi Chen (qi.chensh em ele.me)
  • (gavin em 16degrees.com.au)
  • Thomas Schapitz (ts-nospam12 em online.de)
  • Murdecai777 (https://github.com/Murdecai777)
  • Logan Mauzaize (logan.mauzaize em gmail.com)
  • Maxime Chassagneux (maxime.chassagneux em gmail.com)
  • 忻隆 (298015902 em qq.com)
  • Pacote de carregamento Ubik
  • Graham Russell (graham em ham1.co.uk)
  • Sanduni Kanishka (https://github.com/SanduniKanishka)
  • Andrew Burton (andrewburtonatwh em gmail.com)
  • Woonsan Ko (woonsan em apache.org)
  • Bartosz Siewniak (barteksiewniak em gmail.com)
  • Quimono (kimono.outfit.am em gmail.com)
  • Michael Osipov (michaelo em apache.org)
  • Stephane Leplus (s.leplus em ubik-ingenierie.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:

  • Tuukka Mustonen (tuukka.mustonen em gmail.com) que nos deu muitos comentários úteis que ajudaram a resolver o Bug 60689 e o Bug 60690
  • Amar Darisa (amar.darisa em gmail.com) que nos ajudou com seu feedback sobre o Bug 60682

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 8+.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior (mas esteja ciente de que Java 9 ainda não está certificado para JMeter).
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com JAVA 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 3.1

Resumo

Novo e notável

Melhorar o relatório/painel

O Dashboard foi melhorado com 3 novos gráficos e 1 tabela de resumo:

  • Gráfico de conexão de tempo ao longo do tempo:
  • Gráfico de percentis de tempo de resposta ao longo do tempo (respostas bem-sucedidas):
  • Gráfico de visão geral do tempo de resposta:
  • Os 5 principais erros por tabela do amostrador:
  • Mais detalhes sobre erros na tabela Erros
  • Tempo médio de resposta adicionado à tabela Estatísticas:
  • A tabela Active Threads agora empilha threads:

Novas métricas

Foi introduzida uma nova métrica sent_bytes que relata os bytes enviados ao servidor.
Outra métrica connect_time foi habilitada por padrão nesta versão

Como lidar com grandes respostas

O JMeter agora é capaz de lidar com respostas de métricas maiores que 2 GB, o limite foi aumentado para 9223372 TB.
Para lidar com respostas tão grandes, agora ele também pode truncar parte da resposta para evitar sobrecarga de memória. Consulte a propriedade httpsampler.max_bytes_to_store_per_request .

Nova função __groovy

Introduza uma nova função __groovy que habilita as funções do Groovy. Isso pode ser útil, pois o JavaScript pode ser bastante lento (o mesmo para o BeanShell), quando usado em planos de teste altamente simultâneos.

Use Groovy como padrão para elementos JSR-223

Groovy agora está definido como o idioma padrão para elementos JSR-223. Se você quiser usar outro idioma suportado, você deve fazer uma escolha explícita.

Por padrão , o script compilado de cache, se disponível , não é verificado por padrão, embora seja recomendável verificar e garantir que você não use a sintaxe ${varName} para acessar as variáveis ​​JMeter, mas vars.get("varName") .

Visualização de origem HTML formatada na visualização em árvore de resultados

O código-fonte HTML na visualização em árvore de resultados agora pode ser visualizado formatado. Isso é extremamente útil, se o código da página da Web foi removido de todos os espaços em branco supérfluos.

Nova visualização de origem HTML formatada
Nova visualização de origem HTML formatada

Capacidade de atualizar todos os temporizadores no plano de teste com uma nova propriedade

Foi introduzida uma nova propriedade timer.factor=1.0f que permite multiplicar por ela os tempos de pausa calculados por Gaussian, Uniform e Poisson Timers. Isso permite que você atualize o Think Times de um só lugar e ganhe produtividade.

Melhorias principais

  • Várias correções de GUI e UX
  • Melhorias no uso de memória
  • A solicitação JDBC agora pode retornar Blob/Clob e calcula a latência e o tempo de conexão
  • A análise de CSS introduzida na versão 3.0 foi otimizada pela introdução de um cache de análise
  • A solicitação HTTP agora é capaz de lidar com o corpo da solicitação GET, isso é útil para solicitações do Elastic Search, por exemplo.

Melhorias na documentação

  • Revisão da documentação e melhorias para facilitar a inicialização
  • Nova seção de documentação de referência de propriedades

Alterações incompatíveis

  • Um cache para CSS Parsing de URLs foi introduzido nesta versão, está habilitado por padrão. Ele é controlado pela propriedade css.parser.cache.size . Ele pode ser desabilitado definindo seu valor como 0 . Veja Bug 59885
  • Os padrões do ThroughputController foram alterados. Agora os padrões são Percent Executions, que é global e não mais por usuário. Veja Bug 60023
  • Desde a versão 3.1, o relatório HTML ignora o Transaction Controller vazio (possivelmente gerado por If Controller ou Throughput Controller ) ao calcular as métricas. Isso fornece métricas mais precisas
  • Desde a versão 3.1, o Summariser ignora SampleResults gerados pelo Transaction Controller ao calcular as estatísticas ao vivo, veja Bug 60109
  • Desde a versão 3.1, ao usar os modos Stripped (por padrão, StrippedBatch é usado), a resposta será removida também por falha em SampleResults, você pode reverter isso para o comportamento anterior definindo sample_sender_strip_also_on_error=false em user.properties , consulte Bug 60137
  • Desde a versão 3.1, o valor da propriedade jmeter.save.saveservice.connect_time é true , o que significa que o arquivo CSV para resultados conterá uma coluna adicional contendo o tempo de conexão, consulte Bug 60106
  • Desde a versão 3.1, as subclasses Random Timer (Gaussian Random Timer, Uniform Random Timer e Poisson Random Timer) implementam a interface org.apache.jmeter.timers.ModifiableTimer
  • Desde a versão 3.1, se você não selecionar nenhum idioma em JSR223 Test Elements, o idioma Apache Groovy será usado. Veja Bug 59945
  • Desde a versão 3.1, o CSV DataSet agora corta os nomes das variáveis ​​para evitar problemas devido a espaços entre os nomes das variáveis ​​ao configurar o CSV DataSet. Isso não deve ter nenhum impacto para você, a menos que você use espaço no início ou no final de seus nomes de variáveis. Veja Bug 60221
  • Desde a versão 3.1, a solicitação HTTP é capaz de usar a implementação HttpClient4 (padrão) para lidar com respostas maiores que 2147483647 Bytes, ou seja, 2 GB. Para permitir isso, duas propriedades foram introduzidas:
    • httpsampler.max_bytes_to_store_per_request (o padrão é 10 MB) controlará o que é mantido na memória. Por padrão, o JMeter apenas manterá na memória os primeiros 10 MB de uma resposta. Se você tiver respostas maiores que esse valor e usar asserções após os primeiros 10 MB, deverá aumentar esse valor
    • httpsampler.max_buffer_size controlará o buffer usado para ler os dados. Anteriormente, o JMeter usava um buffer igual ao cabeçalho Content-Length, o que poderia levar a falhas e tornar o JMeter menos resistente a aplicativos defeituosos, mas observe que isso pode afetar os tempos de resposta e fornecer resultados ligeiramente diferentes das versões anteriores se seu aplicativo retornasse um cabeçalho Content-Length maior do que o valor padrão atual (65 KB)
    Veja Bug 53039

Elementos ou funções obsoletos e removidos

Esses elementos não aparecem mais no menu, se você precisar deles modifique a propriedade not_in_menu . A equipe do JMeter aconselha a não usá-los mais e migrar para o substituto.

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 59882 - Reduza as alocações de memória para um melhor rendimento. Contribuição de Benoit Wiart (b.wiart em ubik-ingenierie.com) através da solicitação Pull #217 e da solicitação Pull #228 -
  • Bug 59885 - Otimize a análise css para download de recursos incorporados introduzindo um cache. Contribuição de Benoit Wiart (b.wiart em ubik-ingenierie.com) através do Pull request #219 -
  • Bug 60092 - Exibir árvore de resultados: Adicione uma versão abreviada do corpo PUT ao resultado do amostrador.
  • Bug 60229 - Adicione uma nova métrica: sent_bytes. Implementado por Philippe Mouawad (p.mouawad em ubik-ingenierie.com) e contribuído por Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 53039 - Solicitação HTTP: ser capaz de lidar com respostas cujo tamanho exceda 2147483647 bytes (ou seja, 2 GB)
  • Bug 60265 - Solicitação HTTP: na guia Upload de arquivos, você não pode redimensionar colunas
  • Bug 60318 - Ignore os avisos CSS ao analisar com a biblioteca ph-css.
  • Bug 60358 - Solicitação HTTP: permitir o envio de dados do corpo para solicitação HTTP GET

Outros amostradores

  • Pull request #211 - Diferencie o tempo para JDBC Sampler. Use a latência e o tempo de conexão. Contribuição de Thomas Peyrard (thomas.peyrard em murex.com)
  • Bug 59620 - Corrige a ação do botão em "JMS Publisher → Arquivo aleatório da pasta especificada abaixo" para permitir a seleção de um diretório
  • Bug 60066 - Manipule CLOBs e BLOBs e limite-os se necessário ao armazená-los no amostrador de resultados.

Controladores

  • Bug 59351 - Melhorar log/erro/mensagem para IncludeController. Contribuição parcial de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 60023 - ThroughputController : Faça "Percent Executions" e global os valores padrão. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60082 - Modo de validação: ser capaz de forçar o controlador de taxa de transferência a ser executado como se estivesse definido como 100%
  • Bug 59349 - Apara espaços no nome do arquivo de entrada no IncludeController.
  • Bug 60081 - Interleave Controller: Adicione uma opção para alternar entre os threads

Ouvintes

  • Bug 59953 - GraphiteBackendListener: Adicionar métrica média. Contribuição parcial de Maxime Chassagneux (maxime.chassagneux em gmail.com)
  • Bug 59975 - Exibir Árvore de Resultados: O renderizador de texto rola irritantemente para baixo quando o conteúdo é volumoso. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60109 - Summariser: Faça com que ele ignore SampleResult gerado por TC em seus cálculos de resumo
  • Bug 59948 - Adicione uma renderização de código-fonte HTML formatado e sensato à Árvore de Resultados da Visualização
  • Bug 60252 - Adicionar kbytes/s enviados ao Relatório Agregado e ao Relatório de Resumo
  • Bug 60267 - UX: Na Árvore de Resultados da Visualização deve ser possível fechar o pop-up Configurar digitando escape. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 59845 - Mensagens de log sobre incompatibilidades de caminho JSON no nível de depuração em vez de erro .
  • Solicitação pull nº 212 - Permitir seleção múltipla e exclusão no Gerenciador de autorização HTTP. Baseado em um patch de Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Bug 59816 - Pull request #213 - Permitir seleção múltipla e exclusão no HTTP Header Manager. Baseado em um patch de Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Bug 59967 - CSS/JQuery Extractor: Permite valor padrão vazio. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 59974 - Asserção de resposta: botão Adicionar " Adicionar da área de transferência ". Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60050 - Conjunto de dados CSV : Deixe claro nos logs quando um thread será encerrado devido a essa configuração
  • Bug 59962 - O Gerenciador de Cache não atualiza a data de expiração quando o código de resposta é 304 .
  • Bug 60018 - Temporizador: Adicione um fator para aplicar em pausas. Parcialmente baseado em um patch do Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60203 - Use mais espaço disponível para textarea em XPath Assertion.
  • Bug 60220 - Renomear o pós-processador do caminho JSON para o extrator JSON
  • Bug 60221 - CSV DataSet: nomes de variáveis ​​de corte
  • Bug 59329 - Apara espaços no nome do arquivo de entrada em CSVDataSet.

Funções

  • Bug 59963 - Nova função __RandomFromMultipleVars : Capacidade de calcular um valor aleatório a partir de valores de uma ou mais variáveis. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 59991 - Nova função __groovy para avaliar Script Groovy. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

I18N

  • Pull request #214 - Adicione tradução em espanhol para atraso no início de threads. Contribuição de Asier Lostalé (asier.lostale em openbravo.com).
  • Bug 60348 - Alterar a tradução chinesa para Salvar como . Contribuição de XMeter (suporte em xmeter.net).

Relatório / Painel

  • Bug 59954 - Relatório/Painel da Web: Adicionar métrica média
  • Bug 59956 - Web Report / Dashboard : Adicionada a capacidade de gerar um gráfico para um intervalo de dados
  • Bug 60065 - Relatório/Painel: Melhore o Resumo de Erros do Painel adicionando mensagem de resposta a "Tipo de erro". Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60079 - Relatório / Painel: Adicione um novo gráfico "Visão geral do tempo de resposta"
  • Bug 60080 - Relatório/Painel: Adiciona um novo gráfico "Conectar Tempo Sobre Tempo". Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60091 - Relatório/Painel: Tenha um novo relatório contendo gráficos de mín/máx e percentis.
  • Bug 60108 - Relatório/Painel: No resumo de solicitações, o arredondamento é muito agressivo
  • Bug 60098 - Relatório/Painel: Reduza o valor padrão para " jmeter.reportgenerator.statistic_window " para reduzir o impacto na memória
  • Bug 60115 - Adicionar propriedade de formato de data para filtro de data de início/término no gerador de relatórios
  • Bug 60171 - Relatório / Painel: Threads ativos ao longo do tempo devem empilhar linhas para fornecer a quantidade total de threads em execução
  • Bug 60250 - Relatório/Painel: Necessário adicionar KB/s enviados no Relatório de Estatísticas do Painel HTML
  • Bug 60287 - Relatório/Painel: Tem um novo Top5 Erros por tabela de amostra no Dashboard. Implementado por Philippe Mouawad (p.mouawad em ubik-ingenierie.com) e contribuído por Ubik Load Pack (suporte em ubikloadpack.com)

Em geral

  • Bug 59803 - Use o método isValid() do driver JDBC, se nenhuma consulta de validação for fornecida na Configuração de Conexão JDBC.
  • Bug 57493 - Criar uma página de documentação para propriedades
  • Bug 59924 - O nível de log do pacote XXX é definido como DEBUG se log_level. O valor da propriedade XXXX contém espaços, o mesmo para a função __log
  • Bug 59777 - Extraia a ligação SLF4J em seu próprio jar e torne-a uma biblioteca JMeter.
    Se você receber um aviso sobre várias ligações SLF4J na inicialização. Remova a ligação lib/ApacheJMeter_slf4j_logkit.jar fornecida pelo Apache JMeter ou todas as outras ligações relatadas. Para mais informações, você pode dar uma olhada na página de informações do próprio SLF4J.
  • Bug 60085 - Remova o cache para instruções preparadas, pois não funcionou com a implementação do pool JDBC atual e os drivers JDBC atuais devem suportar o cache de instruções preparadas.
  • Bug 60137 - No teste distribuído ao usar os modos StrippedXXXX, tira a resposta também em caso de erro
  • Bug 60106 - Padrões de configurações: Mude " jmeter.save.saveservice.connect_time " para true (após 3.0)
  • Pull request #229 - pequenas melhorias na alocação de memória. Contribuição de Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Bug 59945 - Para todos os elementos JSR223, se o idioma do script não tiver sido escolhido na interface do usuário, o script será interpretado como um script groovy.
  • Bug 60266 - Usabilidade/UX: Não deve ser possível fechar/sair/Reverter/Carregar/Carregar um projeto recente ou criar a partir do modelo um plano JMeter ou abrir um novo se um teste estiver em execução
  • Bug 57305 - Remova a dependência do ProxyControl no GuiPackage . Baseado em patches de jarek102 (jarek102 em gmail.com) e Wyatt Epp (wyatt.epp em gmail.com)

Alterações não funcionais

  • Atualizado para jsoup-1.10.1 (de 1.8.3)
  • Atualizado para ph-css 4.1.6 (de 4.1.4)
  • Atualizado para tika-core e tika-parsers 1.14 (de 1.12)
  • Atualizado para commons-io 2.5 (de 2.4)
  • Atualizado para commons-lang3 3.5 (de 3.4)
  • Atualizado para commons-net 3.5 (de 3.4)
  • Atualizado para groovy 2.4.7 (de 2.4.6)
  • Atualizado para httpcore 4.4.5 (de 4.4.4)
  • Atualizado para slf4j-api 1.7.21 (de 1.7.13)
  • Atualizado para rsyntaxtextarea-2.6.0 (de 2.5.8)
  • Atualizado para xstream 1.4.9 (de 1.4.8)
  • Atualizado para jodd 3.7.1 (de 3.6.7.jar)
  • Atualizado para xmlgraphics-commons 2.1 (de 2.0.1)
  • Solicitação pull #215 - Reduza o código duplicado usando o método recém-adicionado GuiUtils#cancelEditing . Contribuição de Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Solicitação de pull nº 218 - Limpeza diversa. Contribuição de Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Pull request #216 - Reutilize o padrão quando possível. Contribuição de Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Bug 60364 - Cobertura de Teste de Documento. Contribuição de Thomas Schapitz (ts-nospam12 em online.de)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 58888 - HTTP(S) Test Script Recorder (ProxyControl) não adiciona TestElements retornados por SamplerCreator#createChildren()
  • Bug 59902 - Falha de handshake Https ao definir a propriedade httpclient.socket.https.cps
  • Bug 60084 - URL de recurso incorporado do JMeter 3.0 é codificado silenciosamente
  • Bug 60376 - Gravador de script de teste Http : Se deflate for usado pelo servidor, a gravação pode interromper o aplicativo

Outros Amostradores

  • Bug 59113 - Configuração de conexão JDBC: Nível de isolamento de transação não definido corretamente se constante usada em vez de numérica

Controladores

  • Bug 60361 - ModuleController: Se um plano de teste contiver um controlador de módulo que faz referência a um controlador inexistente, o JMeter no modo GUI não será interrompido

Ouvintes

  • Bug 59712 - Exibe a consulta original no RequestView quando a decodificação falha. Baseado em um patch de Teemu Vesala (teemu.vesala em qentinel.com)
  • Bug 60278 - Desde 2.13 (e Bug 57514 ), Gráfico Agregado, Relatório Resumido e Relatório Agregado perderam precisão nos valores de Erro, Taxa e Largura de Banda salvos no arquivo salvo csv
  • Bug 60360 - Exibir árvore de resultados: guia de solicitação não mostra o corpo de uma solicitação DELETE

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 59964 - Elemento de teste JSR223: O script compilado em cache, se disponível, não é redefinido corretamente. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 59609 - Formate objetos JSON extraídos no JSON Post Processor corretamente como JSON.
  • Bug 60332 - Exibir árvore de resultados: com o Windows LAF, o JSON Extractor não mostra a expressão do caminho JSON e o painel de resultados

Funções

I18N

Em geral

  • Bug 59400 - Livre-se de UnmarshalException ao parar quando a opção -X for usada.
  • Bug 59607 - O JMeter trava ao ler um plano de teste grande (maior que 2 GB). Baseado na correção de Felix Draxler (felix.draxler em sap.com)
  • Bug 59621 - A contagem de erros no painel do relatório está desativada.
  • Bug 59657 - Somente configura fonte em JSyntaxTextArea, quando a propriedade jsyntaxtextarea.font.family está configurada.
  • Bug 59720 - As comparações de arquivos de teste em lote falham no Windows, pois os arquivos XML são gerados como EOL=LF
  • Limpezas de código. Patches de Graham Russell (graham em ham1.co.uk)
  • Bug 59722 - Use StandardCharsets para reduzir a possibilidade de erros de ortografia de nomes de Charset.
  • Bug 59723 - Use jmeter.properties para testar sempre que possível
  • Bug 59726 - Teste de unidade para verificar se o texto do cabeçalho CSV e o formato de amostra não mudam inesperadamente
  • Bug 59889 - Altere a codificação para UTF-8 nos relatórios do painel.
  • Bug 60053 - No modo Non GUI, um Stacktrace é mostrado no final do teste enquanto o relatório está sendo gerado
  • Bug 60049 - Ao usar Temporizadores com atrasos altos ou Temporizador de taxa de transferência constante com taxa de transferência baixa, o Agendador pode demorar muito para sair, o mesmo para teste de desligamento
  • Bug 60089 - Relatório / Painel: A taxa de transferência de bytes ao longo do tempo reverteu os bytes enviados e recebidos. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 60090 - Relatório/painel: o controlador de transação vazio não deve contar nas métricas
  • Bug 60103 - Relatório/Painel: O resumo das solicitações inclui o Controlador de Transação levando a uma porcentagem errada
  • Bug 60105 - Relatório / Painel: O relatório requer que a opção " gerar amostra pai " do Controlador de Transação seja verificada, corrija problemas relacionados
  • Bug 60107 - Report / Dashboard: Em StatisticSummary, TransactionController SampleResult torna a linha Total errada
  • Bug 60110 - Relatório / Painel: Em Percentis de Tempo de Resposta, o controle deslizante é inútil
  • Bug 60135 - Relatório / Painel: Threads ativos ao longo do tempo devem estar na seção OverTime
  • Bug 60125 - Relatório/Painel: O painel não pode ser gerado se o delimitador padrão for \t . Com base em um relatório de Tamas Szabadi (tamas.szabadi em rightside.co)
  • Bug 59439 - Relatório/Painel: AbstractOverTimeGraphConsumer.createGroupInfos() deve ser abstrato
  • Bug 59918 - O relatório HTML gerado pelo Ant está quebrado (pasta extras)
  • Bug 60295 - JSON Extractor não indexa elementos de matriz quando apenas um elemento é encontrado. Baseado em um patch de Roberto Braga (roberto.braga em sociale.it)
  • Bug 60299 - Grupo de Threads com Agendador: Comportamento estranho quando End-Time está no passado

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Felix Draxler (felix.draxler em sap.com)
  • Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Graham Russell (graham em ham1.co.uk)
  • Teemu Vesala (teemu.vesala em qentinel.com)
  • Asier Lostalé (asier.lostale em openbravo.com)
  • Thomas Peyrard (thomas.peyrard em murex.com)
  • Benoit Wiart (b.wiart em ubik-ingenierie.com)
  • Maxime Chassagneux (maxime.chassagneux em gmail.com)
  • Pacote de carregamento Ubik
  • Tamas Szabadi (tamas.szabadi em rightside.co)
  • Roberto Braga (roberto.braga em soziale.it)
  • jarek102 em gmail.com
  • Wyatt Epp (wyatt.epp em gmail.com)
  • Thomas Schapitz (ts-nospam12 em online.de)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:
    [java] AVISO: não foi possível liberar as preferências do usuário:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException: Não suportado: número de recuo
    
    Isso não afeta a operação do JMeter. Esse problema foi corrigido desde o Java 7b05.
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Com o Oracle Java 7 e o Mac Book Pro Retina Display, a GUI do JMeter pode parecer embaçada. Este é um bug Java conhecido, veja Bug JDK-8000629 . Uma solução alternativa é usar um tempo de execução do Java 7 update 40 que corrige esse problema.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 7 versão u16 (MD2) e versão u40 (tamanho do certificado inferior a 1024 bits) e Java 8 também.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK7_u79, JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com JAVA 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 3.0

Resumo

Novo e notável

Criação de plano de teste e melhorias de depuração

Novo recurso de pesquisa na árvore de resultados de visualização para permitir a pesquisa de texto / regexp em Solicitação/Respostas/Cabeçalhos/Cookies/… Isso facilitará a criação de planos de correlação e teste

Novo JSON Post Processor para extrair melhor os dados do conteúdo JSON usando a sintaxe JSON-PATH amigável

JSON agora é um cidadão de primeira classe no JMeter com a introdução de um novo pós-processador JSONPath . Este pós-processador é muito semelhante ao pós-processador de expressão regular, mas é adequado para código JSON. É baseado na biblioteca Jayway JSON Path

Novo recurso de validação, em um clique, execute uma seleção de Thread Groups com 1 usuário, sem pausa e 1 iteração

Os elementos de teste JSR223 não exigem mais uma chave de compilação de cache

Basta marcar a caixa de seleção Cache compilado, se disponível , e os elementos (Pré-Processador, Pós-Processador, Asserções, Ouvintes, …) irão pré-compilar o script e armazenar em cache o código compilado se a linguagem subjacente o suportar

O Nashorn agora pode ser usado como mecanismo Javascript, proporcionando melhor desempenho e uso mais fácil

Para habilitar o Nashorn , você precisa definir em user.properties :

javascript.use_rhino=false

Nashorn pode ser usado com Java 8 nos seguintes elementos:

  • IfController
  • Elementos de teste JSR223 com a linguagem javascript selecionada
  • função __javaScript

Jexl3 foi integrado. Ele fornece novos recursos de script e documentação muito melhor

JEXL3 agora pode ser usado graças a uma nova função __jexl3 . JEXL é uma linguagem muito parecida com JSTL.

IU de solicitação HTTP simplificada

Uma nova guia " Avançado " foi adicionada à solicitação HTTP para simplificar a configuração. O recurso de upload de arquivos foi movido para uma guia dedicada. Isso aumenta o espaço disponível para parâmetros na interface do usuário e simplifica o UX.

Melhorias nos padrões de solicitação HTTP

Agora você pode configurar o endereço de origem (como recurso de IP Spoofing) e " Salvar resposta como hash MD5 " na guia Avançado

Melhorias nos relatórios

Novo recurso de relatórios gerando gráficos dinâmicos em páginas HTML (APDEX, relatório de resumo e gráficos)

Um relatório HTML dinâmico agora pode ser gerado no final de um teste de carga ou de um arquivo de resultado sempre que você desejar. Consulte Gerando painel para obter mais detalhes. Este relatório fornece as seguintes métricas:

  • Tabela APDEX (Application Performance Index) que calcula o APDEX com base em valores configuráveis ​​para limites tolerados e satisfeitos
  • Um gráfico de resumo de solicitação mostrando a porcentagem de transação bem-sucedida e com falha:
  • Uma tabela de estatísticas fornecendo em uma tabela um resumo de todas as métricas por transação, incluindo 3 percentis configuráveis:
  • Uma tabela de erros que fornece um resumo de todos os erros e sua proporção no total de solicitações:
  • Gráfico com zoom onde você pode marcar/desmarcar cada transação para mostrá-la/ocultá-la para:
    • Tempos de resposta ao longo do tempo:
    • Taxa de transferência de bytes ao longo do tempo:
    • Latências ao longo do tempo:
    • Golpes por segundo:
    • Códigos de resposta por segundo:
    • Transações por segundo:
    • Tempo de resposta vs solicitação por segundo:
    • Latência vs Solicitação por segundo:
    • Percentis de tempos de resposta:
    • Tópicos ativos ao longo do tempo:
    • Tempos vs Tópicos:
    • Distribuição do tempo de resposta:

GraphiteBackendListener tem uma nova métrica de hits do servidor

O Summariser exibe uma duração mais legível

Agora a duração é exibida no formato horas:minutos:segundos

Gerar resultados resumidos + 1 em 00:00:01 = 1,7/s Média: 1 Min: 1 Máx: 1 Err: 0 (0,00%) Ativo: 1 Iniciado: 1 Concluído: 0
Gerar resultados resumidos + 138 em 00:00:09 = 16,2/s Média: 0 Min: 0 Máx: 1 Err: 0 (0,00%) Ativo: 9 Iniciado: 9 Concluído: 0
Gerar resultados resumidos = 139 em 00:00:09 = 15,3/s Média: 0 Min: 0 Max: 1 Err: 0 (0,00%)
Gerar resultados resumidos + 467 em 00:00:10 = 47,0/s Média: 0 Min: 0 Máx: 1 Err: 0 (0,00%) Ativo: 19 Iniciado: 19 Finalizado: 0
Gerar resultados resumidos = 606 em 00:00:19 = 31,9/s Média: 0 Min: 0 Max: 1 Err: 0 (0,00%)
⋮
Gerar resultados resumidos + 1662 em 00:00:10 = 166,1/s Média: 0 Min: 0 Máx: 1 Err: 0 (0,00%) Ativo: 50 Iniciado: 50 Finalizado: 0
Gerar resultados resumidos = 28932 em 00:03:19 = 145,4/s Média: 0 Mín.: 0 Máx.: 1 Err: 0 (0,00%)
Gerar resultados resumidos + 1664 em 00:00:10 = 166,4/s Média: 0 Min: 0 Máx: 1 Err: 0 (0,00%) Ativo: 50 Iniciado: 50 Finalizado: 0
Gerar resultados resumidos = 30596 em 00:03:29 = 146,4/s Média: 0 Mín: 0 Máx.: 1 Err: 0 (0,00%)
Gerar resultados resumidos + 1661 em 00:00:10 = 166,1/s Média: 0 Min: 0 Máx: 1 Err: 0 (0,00%) Ativo: 50 Iniciado: 50 Finalizado: 0
Gerar resultados resumidos = 32257 em 00:03:39 = 147,3/s Média: 0 Min: 0 Max: 1 Err: 0 (0,00%)

BackendListener agora permite que você defina a lista de amostradores como uma expressão regular

Agora você pode usar uma expressão regular para selecionar os amostradores que deseja filtrar. Use o parâmetro: useRegexpForSamplersList=true e coloque um regex no parâmetro samplersList

Melhorias nos protocolos e no teste de carga

A migração para HttpClient 4.5.2 foi iniciada. Embora não esteja completamente acabado, melhora muitas áreas no JMeter

A migração para HttpClient 4.5.2 melhora os seguintes campos do JMeter:

  • Suporte de RFC recente como HTTP State Management Mechanism RFC-6265 for Cookies , você deve usar agora HC4CookieHandler no componente HTTP Cookie Manager e selecionar a política de cookies padrão
  • Suporte de indicação de nome de servidor (SNI) para implementação de HttpClient4
  • Mecanismo de validação aprimorado e com melhor desempenho para conexões obsoletas e gerenciamento Keep-Alive, consulte as propriedades httpclient4.validate_after_inactivity e httpclient4.time_to_live
  • Muitas correções de bugs desde a versão anterior 4.2.6 usada no JMeter 2.13, veja as notas de lançamento do HttpClient 4.5.X
  • Melhor suporte de HTTP RFC 2616 / RFC 7230 e correções para problemas com o gerenciamento de compactação de deflação

Downloads paralelos agora são realistas e dimensionados muito melhor:

  • Análise de arquivos CSS importados (através de @import ) ou recursos incorporados (fundo, imagens, …)
  • Inicialização lenta do contexto SSL: para 15 threads 138% mais amostragem em 5 minutos para testes somente HTTP. O ganho aumenta à medida que o número de threads aumenta
  • Retrabalho de gerenciamento de conexão para download paralelo: isso simula melhor o comportamento atual do navegador e melhora a taxa de transferência. Para 15 fios 135% de amostras extras em 5 minutos.
  • Reutilização de threads usados ​​para downloads paralelos por meio de um ThreadPool: isso melhora a taxa de transferência e aumenta a escalabilidade do JMeter para esses testes
  • Total de 750% mais throughput encontrado no teste com 15 threads, quanto mais threads você tiver, maior será o ganho
  • Agora você pode calcular e armazenar apenas o MD5 de recursos incorporados em vez de armazenar a resposta inteira, isso pode ser feito definindo a propriedade httpsampler.embedded_resources_use_md5=true

Introdução do recurso Tempo limite de amostra

Este novo pré-processador de tempo limite de amostra permite que você aplique um tempo limite nos elementos que estão em seu escopo. Na captura de tela abaixo, o tempo limite de 10 segundos se aplica aos elementos Debug Sampler e HTTP Request .

A solicitação JDBC agora usa o conjunto DBCP2

A Solicitação JDBC e a Configuração de Conexão JDBC foram atualizadas para substituir o Excalibur Pool antigo pelo pool Apache Commons DBCP2. Como consequência, as propriedades foram migradas para equivalentes quando disponíveis e a interface do usuário foi atualizada. Observe que, diferentemente do Excalibur, o Commons DBCP usa a consulta de validação ao criar o pool. Portanto, verifique se a consulta é válida. A consulta padrão é adequada para muitos bancos de dados, mas não para todos - por exemplo, o Oracle requer ' SELECT 1 FROM DUAL ' ou similar.

Melhorias de UX:

Melhor exibição em telas HiDPI

Consulte JMeter com uma tela HiDPI no Linux ou Windows na seção Dicas e sugestões no manual do usuário

Novo visual e logotipo do ícone

JMeter tem um novo logotipo criado por Felix Schumacher.
Os ícones também foram atualizados para dar um estilo mais moderno e torná-los mais significativos

Muitas correções de pequenos bugs irritantes

Cerca de 40 correções de interface do usuário foram feitas para corrigir bugs, comportamentos confusos ou simplificar o uso, não permitindo que opções incompatíveis sejam selecionadas

Interface de usuário do grupo de threads aprimorada e ações relacionadas ( Iniciar , Iniciar sem temporizadores , Validar )

Criar e testar um Plano de Teste antes do Teste de Carga foi muito simplificado, permitindo que você inicie apenas uma seleção de Grupo de Threads, inicie-os sem aplicar Timers (ganhando assim tempo) ou inicie-os usando um novo modo de Validação. Este modo de validação permite iniciar um Thread Group (sem modificá-lo) com 1 thread, 1 iteração e sem aplicar temporizadores. Este modo de validação pode ser personalizado.

Novos atalhos

  • Adicione os elementos mais usados ​​( Ctrl  +  0Ctrl  +  9 ), configuráveis ​​através das propriedades do gui.quick_ XXX
  • Atalhos para expandir nós

Melhorias principais

Simplificação de configuração com melhores padrões

Os valores padrão para muitas propriedades foram modificados para tornar a configuração do JMeter ideal pronta para uso. Leia a seção "Alterações incompatíveis" para obter mais detalhes.

Apache Groovy empacotado com JMeter

Apache Groovy , a conhecida linguagem de script JVM, agora está empacotada com o Apache JMeter na pasta lib. Isso permite que você o use imediatamente por meio do JSR223 Elements selecionando o idioma Groovy.

Propriedades supérfluas e antigas removidas

Propriedades antigas que existiam para manter a compatibilidade com versões anteriores ou para oferecer alguma personalização supérflua foram removidas. Leia a seção "Alterações incompatíveis" para ver quais propriedades foram removidas.

Melhorias no código e na documentação

  • Migração para código fonte Java7 e uso de seu açúcar sintático
  • Principais limpezas de código
  • Revisão completa da documentação e melhoria tanto no conteúdo quanto na apresentação

Melhorias nos testes de unidade

  • Migração de muitos testes para JUnit 4
  • Melhor gerenciamento de testes sem cabeça
  • Mais testes de unidade

Atualização de dependências

Bibliotecas obsoletas descartadas ou substituídas por outras atualizadas:

  • Excalibur substituído por commons-dbcp
  • htmllexer, htmlparser removido
  • sabão removido
  • jdom removido

Slf4j agora pode ser usado em Plugins e código principal

Agora você pode usar o wrapper de log SLF4J em seus plugins personalizados ou subclasses org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient .

Alterações incompatíveis

  • Desde a versão 3.0, o Groovy-2.4.6 é empacotado com o JMeter ( pasta lib ), certifique-se de remover a versão antiga ou versões referenciadas através das propriedades search_paths ou user.classpath
  • Desde a versão 3.0, o valor da propriedade jmeter.save.saveservice.assertion_results_failure_message é true, o que significa que o arquivo CSV para resultados conterá uma coluna adicional contendo a mensagem de resposta do resultado da asserção, consulte Bug 58978
  • Desde a versão 3.0, o valor da propriedade jmeter.save.saveservice.print_field_names é true, o que significa que o arquivo CSV para resultados conterá nomes de campo como primeira linha no CSV, consulte Bug 58991
  • Desde a versão 3.0, o valor da propriedade jmeter.save.saveservice.idle_time é true, o que significa que os arquivos de resultados CSV/XML conterão uma coluna adicional contendo tempo ocioso entre amostradores, consulte Bug 57182
  • Na classe RandomTimer, o campo de timer de instância protegida foi substituído pelo método protegido getTimer() , isso está relacionado ao Bug 58100 . Isso pode afetar plugins de terceiros.
  • Desde a versão 3.0, você pode usar o Nashorn Engine (o mecanismo javascript padrão é Rhino) no Java8 para Elementos que usam o JavaScript Engine ( __javaScript , IfController ). Se você quiser usá-lo, use a propriedade javascript.use_rhino=false , veja Bug 58406 .
    Nota: em uma versão futura, mudaremos para Nashorn por padrão. Os usuários são incentivados a relatar qualquer problema relacionado ao uso do Nashorn em vez do Rhino.
  • Desde a versão 3.0, o JMS Publisher recarregará o conteúdo do arquivo se a origem da mensagem for " From File " e o campo " Filename " for alterado (por exemplo, se usar uma variável que foi alterada)
  • org.apache.jmeter.gui.util.ButtonPanel foi removido, se você usá-lo em seu plugin de terceiros ou desenvolvimento personalizado, certifique-se de atualizar seu código. Veja Bug 58687
  • A propriedade jmeterthread.startearlier foi removida. Veja Bug 58726
  • A propriedade jmeterengine.startlistenerslater foi removida. Veja Bug 58728
  • A propriedade jmeterthread.reversePostProcessors foi removida. Veja Bug 58728
  • A propriedade jmeter.toolbar.display foi removida, a barra de ferramentas agora é sempre exibida. Veja Bug 59236
  • A propriedade jmeter.errorscounter.display foi removida, o contador de erros/avisos agora é sempre exibido. Veja Bug 59236
  • A propriedade xml.parser foi removida, não é mais usada, pois org.apache.jmeter.util.JMeterUtils#getXMLParser foi obsoleta e também não é usada. Veja Bug 59236
  • O listener do Summariser agora mostra a duração no formato HH:mm:ss (Hora:Minuto:Segundo), antes mostrava a duração em segundos. Veja Bug 58776
  • A assinatura org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap foi alterada, se você usá-la, certifique-se de atualizar seu código. Veja Bug 58845
  • O Assinante JMS considerará uma amostra como um erro se o número de mensagens recebidas não for igual ao número esperado de mensagens. Anteriormente, considerava uma amostra OK se pelo menos 1 mensagem fosse recebida. Veja Bug 58980
  • Desde a versão 3.0, o gravador de script de teste HTTP(S) usa como padrão a porta 8888 (conforme configurado ao usar o modelo de gravação). Veja Bug 59006
  • Desde a versão 3.0, o analisador para recursos incorporados (substituído desde 2.10 pela implementação baseada em Lagarto) que dependia da biblioteca htmlparser (HtmlParserHTMLParser) foi descartado junto com suas dependências.
  • Desde a versão 3.0, o suporte para leitura de arquivos JTL (resultados) no formato Avalon antigo foi removido, veja Bug 59064
  • Desde a versão 3.0, o valor da propriedade padrão para http.java.sampler.retries foi alterado para 0 (sem repetição por padrão) para alinhá-lo com o comportamento de HttpClient4.
    Observe também que seu significado mudou: antes da versão 3.0, http.java.sampler.retries=1 significava No Retry (ou seja, total de tentativas = 1), já que 3.0 http.java.sampler.retries=1 significa 1 retry. (Observação: isso se aplica apenas ao Java HTTP Sampler)
    Veja Bug 59103
  • Desde a versão 3.0, as seguintes classes obsoletas foram descartadas
    • org.apache.jmeter.protocol.http.modifier.UserParameterXMLContentHandler
    • org.apache.jmeter.protocol.http.modifier.UserParameterXMLErrorHandler
    • org.apache.jmeter.protocol.http.modifier.UserParameterXMLParser
  • httpsampler.await_termination_timeout foi substituído por httpsampler.parallel_download_thread_keepalive_inseconds , que agora é o tempo de manutenção dos threads de download paralelo (em segundos).
  • JDBC Request foi atualizado para usar commons-dbcp2, desde então o comportamento é um pouco diferente, certifique-se de ter uma "Consulta de Validação" correta para seu banco de dados. Veja Bug 58786
  • Os seguintes jars foram removidos:
  • O número máximo de redirecionamentos permitidos pelo JMeter agora é 20, antes era 5. Isso pode ser alterado com a propriedade httpsampler.max_redirects . Veja Bug 59382

Elementos obsoletos e removidos

  • Os elementos do MongoDB (MongoDB Source Config, MongoDB Script) foram preteridos e serão removidos na próxima versão do JMeter. Eles não aparecem mais no menu, se você precisar deles modifique a propriedade not_in_menu . A equipe do JMeter aconselha a não usá-los mais. Veja Bug 58772
  • A solicitação WebService(SOAP) e a máscara de parâmetro HTML que foram preteridos na versão 2.13, agora foram removidos seguindo nossa estratégia de descontinuação . Classes e propriedades que eram usadas apenas por esses elementos foram eliminadas:
    • org.apache.jmeter.protocol.http.util.DOMPool
    • org.apache.jmeter.protocol.http.util.WSDLException
    • org.apache.jmeter.protocol.http.util.WSDLHelper
    • Propriedade soap.document_cache
    • JAR soap-2.3.1 também foi removido
  • A função __jexl (ou seja, JEXL 1) foi descontinuada e será removida na próxima versão. Veja Bug 58903
  • O ouvinte do Spline Visualizer e o ouvinte do Distribution Graph foram preteridos e serão removidos na próxima versão do JMeter. Eles não aparecem mais no menu, se você precisar deles modifique a propriedade not_in_menu . A equipe JMeter aconselha a não usá-los mais. Veja Bug 58791

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 57696 - Solicitação HTTP: Melhore o responseMessage quando o download do recurso falhar. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57995 - Use FileServer para arquivos de solicitação HTTP. Implementado por Andrey Pokhilko (andrey em blazemeter.com) e contribuído por BlazeMeter Ltd.
  • Bug 58843 - Melhora o espaço utilizável na GUI do amostrador HTTP. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58852 - Use menos memória para solicitações PUT . Os dados enviados não serão mais armazenados no Sampler. Este é o mesmo comportamento das solicitações POST .
  • Bug 58860 - Solicitação HTTP: Adiciona geração automática de variáveis ​​na tabela de parâmetros HTTP clicando com o botão direito. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58923 - normaliza URIs ao baixar recursos incorporados.
  • Bug 59005 - Amostrador HTTP: Adicionado o verbo WebDAV ( SEARCH ).
  • Bug 59006 - Altere a porta de gravação de proxy padrão para 8888 para alinhá-la com o modelo de gravação. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 58099 - Desempenho: Inicialize lentamente o HttpClient SSL Context para evitar sua inicialização mesmo para cenários somente HTTP
  • Bug 57577 - HttpSampler: Recupere todos os recursos incorporados, adicione a propriedade " httpsampler.embedded_resources_use_md5 " para calcular apenas md5 e não manter os dados de resposta. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59023 - HttpSampler UI : retrabalhe os rótulos de recursos incorporados e altere o número padrão de downloads paralelos para 6 . Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59028 - Use SystemDefaultDnsResolver singleton. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59036 - FormCharSetFinder: Use JSoup em vez de HTMLParser obsoleto
  • Bug 59034 - O gerenciamento de conexão de downloads paralelos não é realista. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com) e Philippe Mouawad
  • Bug 59060 - GUI de solicitação HTTP: Mover o upload de arquivo para uma nova guia para ter mais espaço para parâmetros e evitar configuração incompatível. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59103 - Implementação Java de Solicitação HTTP: Altere o padrão " http.java.sampler.retries " para alinhá-lo no comportamento HttpClient e tornar o nome significativo
  • Bug 59083 - Solicitação HTTP: Tornar o campo Método editável para que métodos adicionais (WebDAV) possam ser adicionados facilmente
  • Bug 59118 - Adicionar comentário no tempo de reflexão gravado pelo gravador proxy. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 59116 - Adicionada a possibilidade de configurar um prefixo para o nome do amostrador gravado por proxy. Parcialmente baseado em um patch de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 59129 - Solicitação HTTP: Simplifique a GUI com guias simples/avançadas
  • Bug 59033 - Download paralelo: Retrabalhe a hierarquia de classes do analisador para permitir analisadores de plug-in para diferentes tipos de mime
  • Bug 52073 - Recursos incorporados Download paralelo: Melhore o desempenho evitando o desligamento do ThreadPoolExecutor em cada amostra. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59190 - Gravador de script de teste HTTP(S): as exclusões sugeridas devem ignorar maiúsculas e minúsculas. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 59140 - Download paralelo: Adicione análise CSS para extrair links de arquivos CSS
  • Bug 59249 - Padrões de solicitação HTTP: Adicionar " endereço de origem " e " salvar respostas como MD5 "
  • Bug 59382 - Valor padrão mais realista para httpsampler.max_redirects

Outros amostradores

  • Bug 57928 - Adicionada a capacidade de definir protocolo (http/https) à GUI do AccessLogSampler. Contribuição de Jérémie Lesage (jeremie.lesage em jeci.fr)
  • Bug 58300 - Faça com que os Java Samplers existentes implementem Interruptible
  • Bug 58160 - JMS Publisher: recarregar o conteúdo do arquivo se o nome do arquivo for alterado. Baseado em parte em um patch contribuído por Maxime Chassagneux (maxime.chassagneux em gmail.com)
  • Bug 58786 - JDBC Sampler: Substituir Excalibur DataSource por uma biblioteca mais atualizada commons-dbcp2
  • Bug 59205 - TCP Sampler: Defina o tempo de conexão no sampler quando a conexão for estabelecida.
  • Bug 59381 - JMSPublisher: O filtro FileChooserDialog não funciona para botões do navegador. Baseado em parte em um patch contribuído por Antonio Gomes Rodrigues (ra0077 em gmail.com)

Controladores

  • Bug 58406 - IfController: Permitir o uso do Nashorn Engine se disponível para avaliação de JavaScript
  • Bug 58281 - RandomOrderController: Melhora o desempenho do algoritmo de randomização. Contribuição de Graham Russell (jmeter em ham1.co.uk)
  • Bug 58675 - Módulo controlador: a mensagem de erro pode ser facilmente perdida. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58673 - Módulo controlador: quando o elemento alvo está desabilitado, os ícones jtree padrão são exibidos. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58674 - Módulo controlador: não deve ser possível selecionar mais de um nó na árvore. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58680 - Controlador de módulo: aprimoramento de interface do usuário. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58989 - GUI do controlador de gravação: adicione um botão para limpar todas as amostras gravadas. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)

Ouvintes

  • Bug 58041 - Tree View Listener deve mostrar o tipo de dados de amostra
  • Bug 58122 - GraphiteBackendListener: Adicionar métrica de ocorrências do servidor. Parcialmente baseado em um patch de Amol Moye (amol.moye em thomsonreuters.com)
  • Bug 58681 - GraphiteBackendListener: Não envie dados se não ocorreu amostragem
  • Bug 58776 - Summariser deve exibir uma duração mais legível
  • Bug 58791 - Deprete listeners: Distribution Graph (alfa) e Spline Visualizer
  • Bug 58849 - Exibir Árvore de Resultados : Adicione um painel de pesquisa à exibição http da solicitação para poder pesquisar na tabela de parâmetros. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58857 - Visualizar Árvore de Resultados: a visualização da solicitação http não permite redimensionar a primeira coluna da tabela de parâmetros. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58955 - Request view http não exibe corretamente os parâmetros http em multipart/form-data. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 55597 - Exibir árvore de resultados: adicione um recurso de pesquisa para pesquisar em amostradores gravados
  • Bug 59102 - Exibir Árvore de Resultados: Melhor valor padrão para " view.results.tree.max_size "
  • Bug 59099 - Backend listener : Adicionada a possibilidade de considerar samplersList como uma expressão regular. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 59424 - Visualizer: Adicione "Limpar" no menu pop-up

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 58303 - Alterar o uso da API bouncycastle no SMIMEAssertion para se livrar dos avisos de depreciação.
  • Bug 58515 - Novos componentes relacionados a JSON: JSON-PATH Extractor e JSON-PATH Renderer na View Results Tree. Doado por Ubik Load Pack (suporte em ubikloadpack.com).
  • Bug 58698 - Análise correta de arquivos de autenticação no Gerenciador de Autorização HTTP.
  • Bug 58756 - CookieManager: O conteúdo da caixa de seleção da Política de Cookies deve depender da implementação de Cookie.
  • Bug 56358 - O gerenciador de cookies suporta cookies de porta cruzada e RFC6265. Obrigado a Oleg Kalnichevski (olegk em apache.org)
  • Bug 58773 - TestCacheManager: Adicione testes para CacheManager que usam HttpClient 4
  • Bug 58742 - CompareAssertion: Redefinir dados no TableEditor ao alternar entre diferentes CompareAssertions no gui. Baseado em um patch de Vincent Herilier (vherilier em gmail.com)
  • Bug 59108 - TableEditor: Permite que as linhas sejam movidas para cima e para baixo. Contribuição de Vincent Herilier (vherilier em gmail.com)
  • Bug 58848 - Painel de Argumentos: ao adicionar um argumento (botão adicionar ou da área de transferência) role a tabela para a nova linha. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58865 - Permitir valor padrão vazio no Extrator de Expressão Regular. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59156 - XMLAssertion: descarte a dependência do jdom usando XMLReader
  • Bug 59328 - Melhor dica de ferramenta para nomes de variáveis ​​em CSVDataSet. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)

Funções

  • Bug 58477 - função __javaScript: permitir o uso do mecanismo Nashorn para Java8 e versões posteriores
  • Bug 58903 - Fornece função __jexl3 que usa commons-jexl3 e função __jexl (1.1) obsoleta

I18N

Em geral

  • Bug 58736 - Adicionar suporte de tempo limite de amostra
  • Bug 57913 - Backups automatizados dos últimos arquivos JMX salvos. Contribuição de Benoit Vatan (benoit.vatan em gmail.com)
  • Bug 57988 - Atalhos ( Ctrl  +  1Ctrl  +  9 ) para adicionar elementos rapidamente ao plano de teste. Implementado por Andrey Pokhilko (andrey em blazemeter.com) e contribuído por BlazeMeter Ltd.
  • Bug 58100 - Aprimoramentos de desempenho: Substitua Random por ThreadLocalRandom.
  • Bug 58677 - TestSaveService#testLoadAndSave usa o conjunto errado de arquivos. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58689 - Adicione atalhos para expandir/recolher uma parte da árvore. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58696 - Criar tarefa Ant para configurar o projeto Eclipse
  • Bug 58653 - Novo JMeter Dashboard/Report com Gráficos Dinâmicos, Tabelas para ajudar a analisar os resultados do teste de carga. Desenvolvido por Ubik-Ingenierie e contribuído por Decathlon SA e Ubik-Ingenierie / UbikLoadPack
  • Bug 58699 - As alterações do Workbench não foram salvas nem solicitadas a serem salvas ao fechar. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58728 - Elimine propriedades comportamentais antigas
  • Bug 57319 - Atualize para HttpClient 4.5.2. Com a grande ajuda de Oleg Kalnichevski (olegk em apache.org) e Gary Gregory (ggregory em apache.org).
  • Bug 58772 - Descontinuar elementos relacionados ao MongoDB
  • Bug 58782 - ThreadGroup: Melhore a ergonomia
  • Bug 58165 - Mostra o tempo decorrido desde o início do teste de carga no modo GUI. Parcialmente baseado em uma contribuição de Maxime Chassagneux (maxime.chassagneux em gmail.com)
  • Bug 58814 - JVM não reconhece mais a opção MaxLiveObjectEvacuationRatio ; remover dos comentários
  • Bug 58810 - Contador de elemento de configuração (e outros): Caixas de seleção Alternar área muito grande
  • Bug 56554 - Elemento de teste JSR223: Gera a chave de cache de compilação automaticamente. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58911 - Header Manager: deve ser possível copiar/colar entre Header Managers. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58864 - Painel de Argumentos: ao mover parâmetro com up/down, certifique-se de que a seleção permaneça visível. Baseado em uma contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58968 - Adicione um novo modelo para permitir gravar script com tempo de reflexão incluído. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 58978 - Padrões de configurações: Mude " jmeter.save.saveservice.assertion_results_failure_message " para true (após 2.13)
  • Bug 58991 - Padrões de configurações: Mude " jmeter.save.saveservice.print_field_names " para true (após 2.13)
  • Bug 57182 - Padrões de configurações: Mude " jmeter.save.saveservice.idle_time " para true (após 2.13)
  • Bug 58870 - TableEditor: tamanho mínimo é muito pequeno. Contribuição de Vincent Herilier (vherilier em gmail.com)
  • Bug 58933 - JSyntaxTextArea: Capacidade de definir fonte. Contribuição de Denis Kirpichenkov (denis.kirpichenkov em gmail.com)
  • Bug 58793 - Criar página de desenvolvedores explicando como construir e contribuir
  • Bug 59046 - O controlador JMeter Gui Replace deve manter o nome e a seleção. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59038 - Preterir elementos relacionados ao HTTPClient 3.1
  • Bug 59094 - Elimine o suporte do antigo formato de arquivo JMX
  • Bug 59082 - Remova o parâmetro " TestCompiler.useStaticSet ". Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59093 - Mensagem de erro de análise de opção pode ser ' perdida '
  • Bug 58715 - Solicitação de recurso: Agrupe groovy-all com JMeter
  • Bug 58426 - Melhora a exibição do JMeter em dispositivos de alta resolução (HiDPI) (parte 1 do aprimoramento)
  • Bug 59105 - TableEditor: Adiciona a capacidade de colar linhas da área de transferência e excluir seleção múltipla. Contribuição de Vincent Herilier (vherilier em gmail.com)
  • Bug 59197 - Thread Group: deve ser possível executar apenas um único grupo de threads ou uma seleção de grupos de threads com um menu popup. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59207 - Muda a cor da fonte de errorsOrFatalsLabel para vermelho quando ocorre um erro. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 58941 - Crie um novo Starter que execute grupos de threads no modo de validação ( apenas 1 thread, 1 iteração, sem pausa, tudo personalizável)
  • Bug 59236 - Propriedades JMeter: Faça alguma limpeza
  • Bug 59240 - Introduzir um adaptador slf4j para Logkit (isso permite usar slf4j dentro de plugins e código principal)
  • Bug 59153 - Pare o teste se CSVDataSet estiver acessando um arquivo não existente. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 59320 - Melhor dica de ferramenta na GUI com GenericTestBeanCustomizer (configuração de conjunto de dados CSV, configuração de conexão JDBC, configuração de armazenamento de chaves, …) . Baseado em um patch de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 59171 - A caixa de diálogo SaveConfig do resultado da amostra é gerada em ordem aleatória
  • Bug 59425 - Erro de exibição sobre a página de ajuda ausente dentro do painel de ajuda

Alterações não funcionais

  • Atualizado para httpclient, httpmime 4.5.2 (de 4.2.6)
  • Atualizado para tika-core e tika-parsers 1.12 (de 1.7)
  • Atualizado para commons-math3 3.6.1 (de 3.4.1)
  • Atualizado para commons-pool2 2.4.2 (de 2.3)
  • Atualizado para commons-lang 3.4 (de 3.3.2)
  • Atualizado para rhino-1.7.7.1 (de 1.7R5)
  • Atualizado para jodd-3.6.7.jar (de 3.6.4)
  • Atualizado para jsoup-1.8.3 (de 1.8.1)
  • Atualizado para rsyntaxtextarea-2.5.8 (de 2.5.6)
  • Atualizado para slf4j-1.7.12 (de 1.7.10)
  • Atualizado para xmlgraphics-commons-2.0.1 (de 1.5)
  • Atualizado para commons-collections-3.2.2 (de 3.2.1)
  • Atualizado para commons-net 3.4 (de 3.3)
  • Atualizado para slf4j 1.7.13 (de 1.7.12)
  • Bug 57981 - Requer um mínimo de Java 7. Contribuição parcial de Graham Russell (jmeter em ham1.co.uk)
  • Bug 58684 - JMeterColor não precisa estender java.awt.Color . Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58687 - ButtonPanel deve morrer. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58705 - Torna org.apache.jmeter.testelement.property.MultiProperty iterável. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58729 - Pasta extras de limpeza para manutenção
  • Bug 57110 - Correção de ortografia + gramática, formatação, código comentado removido etc. Contribuição de Graham Russell (jmeter em ham1.co.uk)
  • Instruções corretas sobre como executar o JMeter em help.txt . Contribuição de Pascal Schumacher (pascalschumacher em gmx.net)
  • Bug 58704 - Teste sem regressão: o teste de lote da tarefa Ant falha se os testes forem executados em uma localidade não en_EN e usarem um arquivo JMX que use um CSV DataSet
  • Bug 58897 - Melhorar o código de teste JUnit. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58949 - Limpeza do código LDAP. Baseado em um patch de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58897 - Melhorar o código de teste JUnit. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58967 - Use categorias JUnit para excluir testes que precisam de um gui. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59003 - ClutilTestCase testSingleArg8 e testSingleArg9 são idênticos
  • Bug 59064 - Remova OldSaveService que suportava arquivos JTL (resultado) de formato Avalon muito antigos
  • Bug 59165 - RSyntaxTextArea não compatível com testes sem cabeça
  • Bug 59021 - Use Double#compare em vez de reimplementá-lo em NumberProperty#compareTo
  • Bug 59037 - Descarte HtmlParserHTMLParser e dependências em htmlparser e htmllexer
  • Bug 58465 - O campo de resposta de leitura JMS está mal nomeado e documentado
  • Bug 58601 - Alterar verificação para modificação de saveservice.properties de SVN Revision ID para sha1 sum do próprio arquivo.
  • Bug 58726 - Remova o parâmetro jmeterthread.startearlier . Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58784 - Tornar JMeterUtils#runSafe sync/async awt invocation configurável e alterar os visualizadores para usar a versão assíncrona.
  • Bug 58790 - Problema no CheckDirty e sua relação com o ActionRouter
  • Bug 59095 - Remova UserParameterXMLParser que foi preterido há oito anos. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59262 - Adiciona lista de jars binários a LICENSE; use isso para testes de unidade
  • Bug 59353 - Adicionar "Elementos obsoletos e removidos" na parte "Mudanças incompatíveis" em changes.xml. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 57806 - o tipo mime " audio/x-mpegurl " é erroneamente considerado binário pelo ViewResultsTree. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com).
  • Bug 57858 - Não chame sampleEnd duas vezes em HTTPHC4Impl quando ocorre uma RuntimeException ou uma IOException no método de amostra.
  • Bug 57921 - HTTP/1.1 sem cabeçalho de resposta " Conexão " keep-alive não usa mais keep-alive infinito.
  • Bug 57956 - A referência hc.parameters em jmeter.properties não funciona quando JMeter não é iniciado em bin .
  • Bug 58137 - O JMeter falha ao baixar URLs incorporados que contêm caracteres ilegais no URL (não escapa deles).
  • Bug 58201 - Tornar o uso da porta no cabeçalho do host mais consistente entre os diferentes samplers http.
  • Bug 58453 - Gravador de script de teste HTTP: NullPointerException ao desabilitar os cabeçalhos HTTP de captura
  • Bug 57804 - HTTP Request não reutiliza o contexto SSL em cache ao usar certificados de cliente em HTTPS (apenas corrigido para implementação HttpClient4)
  • Bug 58800 - valor padrão do proxy.pause : correção da documentação
  • Bug 58844 - Os botões habilitar/desabilitar estão quebrados no painel de argumentos. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58861 - Ao clicar em cima, baixo ou detalhe em uma célula do painel de argumentos, o conteúdo recém-adicionado é perdido. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 57935 - extensão SSL SNI não suportada pelo HttpClient 4.2.6
  • Bug 59044 -Http Sampler: Não deve ser possível selecionar a codificação multipart se o método não for POST . Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59008 - Amostrador Http: SampleResult de recursão infinita no limite de profundidade do quadro atingido
  • Bug 58881 - Solicitação HTTP: HTTPHC4Impl mostra exceção quando o servidor usa compactação " deflate "
  • Bug 58583 - O cliente HTTP falha ao fechar a conexão se o servidor se comportar mal ao não enviar " connection: close ", violando HTTP RFC 2616 / RFC 7230
  • Bug 58950 - NoHttpResponseException quando a pausa entre amostradores excede o Keepalive enviado pelo servidor
  • Bug 59085 - Painel de arquivos HTTP: dados perdidos no cancelamento de navegação. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 56141 - O aplicativo não se comporta corretamente ao usar o HTTP Recorder. Com a ajuda de Dan (java.junkee em yahoo.com)
  • Bug 59079 - a propriedade " httpsampler.max_redirects " não é aplicada quando " Redirecionar automaticamente " é usado
  • Bug 58811 - Ao colar argumentos entre samplers http as colunas "Encode" e "Include Equals" são perdidas. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)

Outros Amostradores

  • Bug 58013 - Habilite todos os protocolos habilitados no SSLContext padrão para uso com o SMTP Sampler.
  • Bug 58209 - JMeter trava ao testar javasampler porque HashMap.put() é chamado de vários threads sem sincronização.
  • Bug 58301 - Use métodos tipados como setInt , setDouble , setDate , … para a instrução preparada #27
  • Bug 58851 - Adicionar uma dependência no hamcrest-core para permitir que testes JUnit com anotações funcionem
  • Bug 58947 - A métrica de conexão está errada quando ocorre ConnectException
  • Bug 58980 - O Assinante JMS retornará com sucesso desde que 1 mensagem seja recebida. Contribuição de Harrison Termotto (harrison dot termotto em stonybrook.edu)
  • Bug 59075 - JMS Publisher: NumberFormatException é lançado se o campo de prioridade ou expiração estiver vazio
  • Bug 59345 - Vazamento de conexão SMTPSampler. Baseado em um patch de Luca Maragnani (luca dot maragnani at gmail dot com)

Controladores

  • Bug 58600 - Exibe nomes de arquivos corretos, quando eles são pesquisados ​​por IncludeController
  • Bug 58678 - Módulo Controlador: limita a seleção do elemento alvo. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58714 - Módulo controlador: não deveria ser possível adicionar um timer como filho. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59067 - O JMeter falha ao iterar sobre Controllers que são filhos de um TransactionController tendo " Gerar amostra pai " marcado após um erro de afirmação ocorrer em um Grupo de Threads com " Iniciar Next Thread Loop ". Contribuição de Benoit Wiart(benoit dot wiart em gmail.com)
  • Bug 59076 - O teste deve falhar se um controlador de módulo não puder encontrar sua subárvore de substituição

Ouvintes

  • Bug 58033 - SampleResultConverter deve observar que não pode gravar dados não TEXT
  • Bug 58845 - A visualização http da solicitação não exibe todos os parâmetros. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58413 - ViewResultsTree: Renderizador HTTP de solicitação não mostra corretamente os parâmetros que contêm e comercial (&). Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59172 - SampleResult SaveConfig não permite que alguns campos sejam desabilitados
  • Bug 58329 - Gráfico de tempo de resposta e gráfico agregado: Salvar gráfico em arquivo não leva em consideração as configurações alteradas desde o último clique em Gráfico. Contribuição de David Coppens (dlcoppens em gmail.com)

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 58079 - Não armazene em cache amostras HTTP que tenham um cabeçalho Vary ao usar um HTTP CacheManager.
  • Bug 58912 - Gui de declaração de resposta: Excluir mais de 1 linha selecionada exclui apenas uma linha. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)

Funções

  • Bug 57825 - A função __Random falha se o valor mínimo for igual ao valor máximo (regressão relacionada ao Bug 54453 )

I18N

Em geral

  • Bug 54826 - Não falhe em strings longas em respostas JSON ao exibi-las como JSON na View Results Tree.
  • Bug 57734 - As dependências transitórias do Maven estão incorretas para 2.13 (IDs de grupo fixos para Commons Pool e Math)
  • Bug 57731 - TESTSTART.MS tem sempre o valor do primeiro Teste iniciado no modo Servidor em Teste distribuído NÃO GUI
  • Bug 58016 - Erro de conversão de tipo usando Provedor SSL externo. Contribuição de Kirill Yankov (myworkpostbox em gmail.com)
  • Bug 58293 - O navegador de arquivos SOAP/XML-RPC Sampler gera NullPointerException
  • Bug 58685 - JDatefield : Faça a modificação da data com seta para cima/baixo funcionar. Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 58693 - Corrigido "Não é possível aninhar a pasta de saída 'jmeter/build/components' dentro da pasta de saída 'jmeter/build'" ao configurar o Eclipse
  • Bug 58781 - A opção de linha de comando " -? " mostra a opção Desconhecida
  • Bug 57821 - A opção de linha de comando " -X --remoteexit " não funciona desde 2.13 (regressão relacionada ao Bug 57500 )
  • Bug 58795 - NPE pode ocorrer em GuiPackage #getTestElementCheckSum com alguns plugins de terceiros
  • Bug 58913 - Ao fechar o JMeter não deve interpretar cancelar como " destruir meu plano de teste ". Contribuição de Benoit Wiart (benoit dot wiart em gmail.com)
  • Bug 59096 - Recurso de pesquisa: a pesquisa que não diferencia maiúsculas de minúsculas não diferencia maiúsculas de minúsculas
  • Bug 59193 - ant run_gui falha com ClassNotFoundException ou IllegalAccessError ao acessar classes de dependências não carregadas através de Thread.currentThread().getContextClassLoader()
  • Bug 59225 - Exibição incorreta do ícone do indicador de execução. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Bug 56927 - Desabilitar mudança de idioma durante um teste
  • Bug 59391 - No modo Distribuído, o cliente sai de forma anormal no final do teste
  • Bug 59397 - build.xml não torna o dist.executables executável em sistemas Unix

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Pacote de carregamento Ubik
  • Benoit Vatan (benoit.vatan em gmail.com)
  • Jérémie Lesage (jeremie.lesage em jeci.fr)
  • Kirill Yankov (meuworkpostbox em gmail.com)
  • Amol Moye (amol.moye em thomsonreuters.com)
  • Samoht-fr (https://github.com/Samoht-fr)
  • Graham Russell (jmeter em ham1.co.uk)
  • Maxime Chassagneux (maxime.chassagneux em gmail.com)
  • Benoit Wiart (benoit.wiart em gmail.com)
  • Decathlon SA
  • Ubik-Ingenierie SAS
  • Oleg Kalnichevski (olegk em apache.org)
  • Pascal Schumacher (pascalschumacher em gmx.net)
  • Vincent Herilier (vherilier em gmail.com)
  • Florent Sabbe (f ponto sabbe em ubik-ingenierie.com)
  • Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • Harrison Termotto (harrison dot termotto em stonybrook.edu
  • Denis Kirpichenkov (denis.kirpichenkov em gmail.com)
  • Gary Gregory (ggregory em apache.org)
  • David Coppens (dlcoppens em gmail.com)
  • Luca Maragnani (luca dot maragnani at gmail dot com)
  • Philip Helger (http://www.helger.com) por seu CSS Parser e por levar em conta nossos relatórios de bugs muito rapidamente
  • Irek Pastusiak (the.automatic.tester em gmail.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:

  • purnasatyap no gmail dot com para os testes e relatórios sobre a compilação noturna
  • Sergey Batalin (sergey_batalin em mail dot ru) para os testes e relatórios sobre a compilação noturna
  • Vincent Daburon (vdaburon no gmail dot com) para os testes e relatórios sobre a compilação noturna

Desculpe se omitimos mais alguém.

Problemas conhecidos e soluções alternativas

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:
    [java] AVISO: não foi possível liberar as preferências do usuário:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException: Não suportado: número de recuo
    
    Isso não afeta a operação do JMeter. Esse problema foi corrigido desde o Java 7b05.
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Com o Oracle Java 7 e o Mac Book Pro Retina Display, a GUI do JMeter pode parecer embaçada. Este é um bug Java conhecido, veja Bug JDK-8000629 . Uma solução alternativa é usar um tempo de execução do Java 7 update 40 que corrige esse problema.
  • Você pode encontrar o seguinte erro:
    java.security.cert.CertificateException: os certificados não estão em conformidade com as restrições do algoritmo
    se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 7 versão u16 (MD2) e versão u40 (tamanho do certificado inferior a 1024 bits) e Java 8 também.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.
  • No Mac OSX Aggregate Graph mostrará valores errados devido ao efeito de espelhamento nos números. Isso ocorre devido a um bug Java conhecido, veja Bug JDK-8065373 A correção é usar JDK7_u79, JDK8_u45 ou posterior.
  • A Árvore de Resultados da Visualização pode falhar ao exibir algum código HTML no renderizador HTML, consulte o Bug 54586 . Isso se deve a um bug conhecido do Java que falha ao analisar unidades " px " em atributos de linha/coluna. Veja Bug JDK-8031109 A correção é usar JDK9 b65 ou posterior.
  • A seleção de JTable com teclado ( SHIFT  +  up/down ) é totalmente inutilizável com JAVA 7 no Mac OSX. Isso ocorre devido a um bug Java conhecido JDK-8025126 A correção é usar o JDK 8 b132 ou posterior.

Versão 2.13

Resumo

Novo e notável

Novos elementos

Novo BackendListener Async com implementação Graphite

Um novo BackendListener Async foi adicionado para permitir o envio de dados de resultado para um ouvinte de back-end. O JMeter é fornecido com um GraphiteBackendListenerClient que permite enviar resultados para um servidor Graphite usando os protocolos Pickle ou Plaintext. Você pode implementar seu próprio backend estendendo AbstractBackendListenerClient . Este backend pode ser um banco de dados (JDBC), um Message Oriented Middleware (JMS), um Webservice ou qualquer coisa que você queira.

Este é o tipo de Live Dashboard que você pode obter usando Grafana e InfluxDB.
Leia isto para mais detalhes.

Painel Grafana
Painel Grafana

Melhorias principais

Nova métrica de tempo de conexão

A partir desta versão, uma nova métrica chamada connectTime foi adicionada. Representa o tempo para estabelecer a conexão. Por padrão, não é salvo em CSV ou XML, para salvá-lo adicione a user.properties:
jmeter.save.saveservice.connect_time=true

Gráfico e relatório agregados

Os ouvintes Gráfico Agregado e Relatório Agregado anteriormente mostravam apenas o percentil 90 (comportamento histórico), o percentil 95 e o percentil 99 foram adicionados e são personalizáveis. Para configurar o valor de percentis desejado, adicione a user.properties:
agregado_rpt_pct1=90
agregado_rpt_pct2=95
agregado_rpt_pct3=99

Gravador de script de teste HTTP(S)

Agora o componente é capaz de detectar esquemas de autenticação e adiciona automaticamente um Gerenciador de Autorização HTTP pré-configurado com o Mecanismo correto.

Solicitação HTTP

Os verbos CalDAV (extensões de calendário para WebDAV) REPORT e MKCALENDAR foram adicionados ao amostrador de solicitação HTTP.

Solicitação JDBC

O ResultSet pode ser obtido como um objeto, isso permite manipular mais facilmente os resultados depois em BeanShell, scripts JSR223, …

Teste distribuído

Para permitir um melhor uso do Teste Distribuído na nuvem, o comportamento de repetição foi adicionado ao iniciar o teste nos servidores. Leia isto para mais detalhes.

Desempenho de teste distribuído

Desde o JMeter 2.13, os modos Stripping (StrippingBatch sendo o modo padrão) agora também retiram as respostas dos SubResults, melhorando a largura de banda da rede consumida.

Atualização da documentação

Um novo estilo de site (responsivo e mais atualizado) foi criado por Felix Schumacher. As documentações foram atualizadas particularmente:

Melhorias na GUI

Controlador de módulo

O controlador de módulo agora mostra o controlador de destino em uma exibição em árvore (em vez de uma lista de combinação).

Barra de ferramentas

A barra de ferramentas do JMeter foi atualizada para alguns ícones (iniciar, alternar, etc.). Três tamanhos estão agora disponíveis para os ícones: 22x22, 32x32 e 48x48.
A propriedade para definir seu tamanho preferido é:

jmeter.toolbar.icons.size=valor
com o valor 22x22 (tamanho padrão), 32x32 ou 48x48.

A barra de ferramentas com ícones de 22x22 pixels

A barra de ferramentas com ícones de 32x32 pixels

A barra de ferramentas com ícones de 48x48 pixels

Gravador de script de teste HTTP(S)

Se o seu Plano de Teste não contiver um Controlador de Gravação, uma nova mensagem de aviso aparecerá se o Gravador de Script de Teste HTTP(S) estiver configurado para enviar as amostras para um Controlador de Gravação.

Alterações incompatíveis

  • Desde 2.13, Gráfico Agregado, Relatório Resumido e Relatório Agregado agora exportam porcentagens para %, antes de exportarem o valor decimal que diferia do que era mostrado na GUI
  • Plugins de terceiros podem ser afetados pela correção do Bug 57586 , certifique-se de que sua subclasse de HttpTestSampleGui implemente ItemListener se você confiou na classe pai fazendo isso.
  • O pacote de relatórios foi removido, o ApacheJMeter_report.jar não é mais gerado como consequência, veja o Bug 57269

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 25430 - Gravador de script de teste HTTP(S): Faça-o preencher o Gerenciador de Autorização HTTP. Parcialmente baseado em um patch de Dzmitry Kashlach (dzmitrykashlach em gmail.com)
  • Bug 57381 - O Gravador de Script de Teste HTTP(S) deve exibir um erro se o Controlador de Destino fizer referência a um Controlador de Gravação e nenhum Controlador de Gravação existir. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57488 - Desempenho: Melhore a redefinição de SSLContext para autenticação SSL bidirecional
  • Bug 57565 - SamplerCreator: Adicionar método para permitir que implementações adicionem filhos ao sampler criado
  • Bug 57606 - HTTPSamplerBase#errorResult altera o rótulo de amostra na exceção
  • Bug 57613 - Amostrador HTTP: Adicionados verbos CalDAV (REPORT, MKCALENDAR). Contribuição de Richard Brigham (richard.brigham em teamaol.com)
  • Bug 48799 - Adiciona tempo para estabelecer conexão com as métricas de amostra disponíveis. Implementado por Andrey Pokhilko (andrey em blazemeter.com) e contribuído por BlazeMeter Ltd. e Pieter Ennes (apache.org em spam.ennes.nl)
  • Bug 57500 - Introduzir o comportamento de repetição para testes distribuídos. Implementado por Andrey Pokhilko e Dzimitry Kashlach e contribuído por BlazeMeter Ltd.

Outros amostradores

  • Bug 57322 - Elementos de teste JDBC: adicione ResultHandler para lidar com ResultSets(cursores) retornados por instruções que podem ser chamadas. Contribuição de Yngvi Þór Sigurjónsson (blitzkopf em gmail.com)

Controladores

  • Bug 57561 - UI do controlador de módulo: Substitua a caixa de combinação por árvore. Contribuição de Maciej Franek (maciej.franek em gmail.com)
  • Bug 57648 - TestFragment deve ser desabilitado quando criado. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)

Ouvintes

  • Bug 55932 - Crie um BackendListener Async para permitir a fácil conexão de um novo listener (Graphite, JDBC, Console, …)
  • Bug 57246 - BackendListener: Crie uma implementação Graphite
  • Bug 57217 - Melhorias no gráfico agregado e no relatório agregado (3 percentis configuráveis, mesmos dados em ambos, fatoração do código). Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57537 - BackendListener: permitir que implementações eliminem amostras

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

  • Bug 54453 - Aprimoramentos de desempenho: Substitua Random por ThreadLocalRandom na função __Random

I18N

Em geral

  • Bug 57518 - Ícones para barra de ferramentas com vários tamanhos
  • Bug 57605 - Quando há um erro ao carregar o Plano de Teste, SaveService.loadTree retorna nulo levando a NPE em chamadores
  • Bug 57269 - Solte o pacote org.apache.jmeter.reports
  • Bug 53764 - Site: Crie um novo estilo para o site

Alterações não funcionais

  • Atualizado para jsoup-1.8.1.jar (de 1.7.3)
  • Atualizado para tika-core e tika-parsers 1.7 (de 1.6)
  • Atualizado para commons-codec-1.10.jar (de 1.9)
  • Atualizado para dnsjava-2.1.7.jar (de 2.1.6)
  • Atualizado para jodd-3.6.4.jar (de 3.6.1)
  • Atualizado para junit-4.12.jar (de 4.11)
  • Atualizado para rinoceronte-1.7R5 (de 1.7R4)
  • Atualizado para rsyntaxtextarea-2.5.6 (de 2.5.3)
  • Atualizado para slf4j-1.7.10 (de 1.7.5)
  • Bug 57276 - RMIC não é mais necessário desde o Java 5
  • Bug 57310 - Substitua System.getProperty("file.separator") por File.separator (também " path.separator" por File.pathSeparator )
  • Bug 57389 - Corrige NPE potencial em conversores
  • Bug 57417 - Remova o método não utilizado isTemporary de NullProperty . Isso foi uma sobra de uma refatoração feita em 2003.
  • Bug 57418 - Remova o construtor não utilizado do Workbench
  • Bug 57419 - Remova a interface não utilizada ModelListener.
  • Bug 57466 - IncludeController : Remova uma criação de conjunto desnecessária. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Adicionada propriedade loggerpanel.usejsyntaxtext para desabilitar o uso de JSyntaxTextArea para o Console Logger (em caso de memória ou outros problemas)
  • Bug 57586 - HttpTestSampleGui: Remover a implementação do ItemListener da interface

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 57385 - Obtendo nome de thread vazio no resultado xml para solicitações HTTP com "Follow Redirects" definido. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57579 - Erro NullPointerException é gerado na amostra principal se "RETURN_NO_SAMPLE" for usado (padrão) e "Usar Cache-Control / Expires header…" estiver marcado no HTTP Cache Manager

Outros Amostradores

Controladores

  • Bug 57447 ​​- Use apenas os servidores DNS listados pelo usuário, quando a opção "usar resolvedor DNS personalizado" estiver habilitada.

Ouvintes

  • Bug 57262 - Exportação de relatório agregado, gráfico agregado e relatório de resumo: os cabeçalhos usam chaves em vez de rótulos
  • Bug 57346 - Summariser: Os relatórios + (diferença) mostram o tempo decorrido e a taxa de transferência incorretos
  • Bug 57449 - Teste Distribuído: Modos despojados não retiram respostas de SubResultados (afeta testes de carga que usam Download de recursos incorporados). Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57562 - Ver árvore de resultados CSS/JQuery Tester : Nada acontece quando há um erro de sintaxe e ocorre uma exceção no jmeter.log
  • Bug 57514 - Gráfico Agregado, Relatório Resumido e Relatório Agregado mostram relatórios de porcentagem errados no arquivo salvo

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 57607 - Temporizador de taxa de transferência constante: taxa de transferência incorreta calculada em modos compartilhados devido a erro de arredondamento

Em geral

  • Bug 57365 - O LAF selecionado não está configurado corretamente devido à chamada de UIManager.setLookAndFeel muito tarde. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57364 - Opções < Look And Feel não atualiza todas as janelas LAF. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57394 - Ao construir uma instância com ClassTools#construct(String, int) o inteiro foi ignorado e o construtor padrão foi usado em seu lugar.
  • Bug 57440 - OutOfMemoryError após a introdução de JSyntaxTextArea no LoggerPanel devido ao disableUndo não ser levado em consideração.
  • Bug 57569 - FileServer.reserveFile - comportamento inconsistente quando hasHeader é verdadeiro
  • Bug 57555 - Não é possível usar o JMeter 2.12 como uma dependência do maven. Contribuição de Pascal Schumacher (pascal.schumacher em t-systems.com)
  • Bug 57608 - Corrige a compatibilidade do script de início com shells Unix antigos, por exemplo, no Solaris

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Pacote de carregamento Ubik
  • Yngvi Þór Sigurjónsson (blitzkopf em gmail.com)
  • Dzmitry Kashlach (dzmitrykashlach em gmail.com)
  • BlazeMeter Ltda.
  • Benoit Wiart (benoit.wiart em gmail.com)
  • Pascal Schumacher (pascal.schumacher em t-systems.com)
  • Maciej Franek (maciej.franek em gmail.com)
  • Richard Brigham (richard.brigham em teamaol.com)
  • Pieter Ennes (apache.org em spam.ennes.nl)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:
  • Chaitanya Bhatt (bhatt.chaitanya em gmail.com) por seus testes completos da nova implementação de BackendListener e Graphite Client.
  • Marcelo Jara (marcelojara em hotmail.com) por seu relato claro sobre o Bug 57607 .
Desculpe se omitimos mais alguém.

Erros conhecidos

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:
    [java] AVISO: não foi possível liberar as preferências do usuário:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException: Não suportado: número de recuo
    
    Isso não afeta a operação do JMeter. Esse problema foi corrigido desde o Java 7b05.
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Com Java 1.6 e Gnome 3 em sistemas Linux, o menu JMeter pode não funcionar corretamente (alternar entre o clique do mouse e o menu). Este é um bug Java conhecido (veja Bug 54477 ). Uma solução alternativa é usar um tempo de execução Java 7 (OpenJDK ou Oracle JDK).
  • Com o Oracle Java 7 e o Mac Book Pro Retina Display, a GUI do JMeter pode parecer embaçada. Este é um bug Java conhecido, veja Bug JDK-8000629 . Uma solução alternativa é usar um tempo de execução do Java 7 update 40 que corrige esse problema.
  • Você pode encontrar o seguinte erro: java.security.cert.CertificateException: Os certificados não estão em conformidade com as restrições de algoritmo se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 7 versão u16 (MD2) e versão u40 (tamanho do certificado inferior a 1024 bits) e Java 8 também.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.

Versão 2.12

Resumo

Novo e notável

Suporte a Java 8

Agora, o JMeter 2.12 é compatível com Java 8.

Novos elementos

Controlador de Seção Crítica

O Critical Section Controller permite serializar a execução de uma seção em sua árvore. Apenas uma instância da seção será executada ao mesmo tempo durante o teste.

Gerenciador de cache DNS

O novo elemento de configuração DNS Cache Manager (veja Bug 56841 ) melhora o teste de:

  • CDN (Rede de Entrega de Conteúdo)
  • Balanceamento de carga DNS.
  • Balanceadores de carga como o Amazon Elastic Load Balancer

Melhorias principais

Gravação mais inteligente de planos de teste HTTP

Test Script Recorder foi melhorado de várias maneiras

  • Melhor correspondência de variáveis ​​em solicitações, fazendo com que o Test Script Recorder variabilize seu sampler durante a gravação mais versátil
  • Capacidade de filtrar da árvore de resultados de visualização as amostras que são excluídas da gravação, isso permite que você se concentre na análise de amostradores gravados e não se preocupe com resultados de amostra inúteis
  • Melhores padrões para gravação, já que esta versão Recorder irá numerar os Samplers criados permitindo que você os encontre com muita facilidade na View Results Tree. O agrupamento de Samplers sob o Transaction Controller será mais inteligente, fazendo com que todas as solicitações emitidas por uma página da Web sejam filhas como novo Transaction Controller

Suporte de solicitações Webdav

Agora você pode testar no servidor WebDav usando HttpClient4 Implementação de solicitação Http

Melhor manuseio de recursos incorporados

Quando o download de recursos incorporados está marcado, o JMeter agora usa o cabeçalho User Agent para baixar ou não recursos incorporados em comentários condicionais conforme Sobre comentários condicionais .

Capacidade de personalizar o gerenciamento de cache (simulação de cache do navegador) de recursos em cache

Agora você pode configurar o comportamento do JMeter quando um recurso é encontrado no Cache, isso pode ser controlado com a propriedade cache_manager.cached_resource_mode

Editor JMS / JMS Ponto a Ponto

Inclua os campos JMSPriority e JMSExpiration para esses amostradores.

Amostrador de Leitor de Correio

Agora você pode especificar o número de mensagens que deseja recuperar (antes de todas as mensagens serem recuperadas). Além disso, você pode buscar apenas o cabeçalho da mensagem agora.

Amostrador SMTP

Adicionando o tempo limite de conexão e o tempo limite de leitura ao amostrador SMTP.

Sincronizando Temporizador

Adicionando um tempo limite para definir o tempo máximo de espera do grupo de usuários virtuais.

Melhorias de desempenho

Uma grande melhoria no desempenho das Funções foi feita ao suspender a sincronização inútil. Diz respeito a todas as funções exceto __StringFromFile, __XPath e __BeanShell, veja Bug 57114

__jexl2 desempenhos foram melhorados para evitar pontos de contenção, veja Bug 56708

Melhorias na GUI

Suporte para desfazer/refazer

Desfazer/Refazer foi introduzido e permite ao usuário desfazer/refazer alterações feitas na Árvore do Plano de Testes. Este recurso (MODO ALPHA) está desabilitado por padrão, para habilitá-lo defina a propriedade undo.history.size=25

Ver árvore de resultados

Melhore a ergonomia da Árvore de Resultados da Visualização alterando o posicionamento dos Renderizadores e permitindo a ordenação personalizada (com a propriedade view.results.tree.renderers_order ).

Gráfico de tempo de resposta

Adicionando a capacidade do ouvinte do Response Time Graph para salvar/restaurar o formato de suas configurações no/do arquivo jmx.

Visualizador de registro

A partir desta versão, as últimas linhas do arquivo de log do JMeter (jmeter.log) podem ser visualizadas diretamente na GUI clicando no ícone Warning no canto superior direito. Isso abrirá o painel do Visualizador de logs e mostrará os logs.

Abertura de arquivo

Agora, "caixa de diálogo Abrir arquivo" usa a última pasta de arquivo aberta como pasta inicial, veja Bug 52707

Erros conhecidos

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:
    [java] AVISO: não foi possível liberar as preferências do usuário:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException: Não suportado: número de recuo
    
    Isso não afeta a operação do JMeter. Esse problema foi corrigido desde o Java 7b05.
  • Observe que em alguns sistemas Windows você pode ter este AVISO:
    java.util.prefs.WindowsPreferences
    AVISO: Não foi possível abrir/criar o nó raiz de prefs Software\JavaSoft\Prefs na raiz 0
    x80000002. O Windows RegCreateKeyEx(…) retornou o código de erro 5.
    
    A correção é executar o JMeter como Administrador, ele criará a chave de registro para você, então você poderá reiniciar o JMeter como um usuário normal e não terá mais o aviso.
  • Com Java 1.6 e Gnome 3 em sistemas Linux, o menu JMeter pode não funcionar corretamente (alternar entre o clique do mouse e o menu). Este é um bug Java conhecido (veja Bug 54477 ). Uma solução alternativa é usar um tempo de execução Java 7 (OpenJDK ou Oracle JDK).
  • Com o Oracle Java 7 e o Mac Book Pro Retina Display, a GUI do JMeter pode parecer embaçada. Este é um bug Java conhecido, veja Bug JDK-8000629 . Uma solução alternativa é usar um tempo de execução do Java 7 update 40 que corrige esse problema.
  • Você pode encontrar o seguinte erro: java.security.cert.CertificateException: Os certificados não estão em conformidade com as restrições de algoritmo se você executar uma solicitação HTTPS em um site com um certificado SSL (próprio ou um dos certificados SSL em sua cadeia de confiança) com um algoritmo de assinatura usando MD2 (como md2WithRSAEncryption) ou com um certificado SSL com tamanho inferior a 1024 bits. Este erro está relacionado ao aumento da segurança no Java 7 versão u16 (MD2) e versão u40 (tamanho do certificado inferior a 1024 bits) e Java 8 também.
    Para permitir que você execute sua solicitação HTTPS, você pode fazer downgrade da segurança de sua instalação Java editando a propriedade Java jdk.certpath.disabledAlgorithms . Remova o valor MD2 ou a restrição de tamanho, dependendo do seu caso.
    Esta propriedade está neste arquivo:
    JAVA_HOME/jre/lib/security/java.security
    Veja Bug 56357 para detalhes.

Alterações incompatíveis

  • Desde o JMeter 2.12, os encadeamentos ativos em todos os grupos de encadeamentos e os encadeamentos ativos no grupo de encadeamentos atual são salvos por padrão em resultados CSV ou XML, consulte Bug 57025 . Geralmente, esse é o comportamento esperado, pois você deseja ter o número de threads em execução durante o teste. Mas se você quiser reverter para o comportamento anterior, defina a propriedade jmeter.save.saveservice.thread_counts=false
  • Desde o JMeter 2.12, o Mail Reader Sampler mostrará 1 para o número de amostras em vez do número de mensagens recuperadas, veja Bug 56539
  • Desde o JMeter 2.12, ao usar o Cache Manager, se o recurso for encontrado no cache nenhum SampleResult será criado, na versão anterior era retornado um SampleResult com conteúdo vazio e código de retorno 204, veja Bug 54778 . Você pode escolher entre diferentes maneiras de lidar com este caso, veja cache_manager.cached_resource_mode em jmeter.properties .
  • Desde o JMeter 2.12, o Log Viewer não limpará mais os logs quando fechado e terá logs disponíveis mesmo se fechado. Veja Bug 56920 . Leia Dicas e sugestões > Ativando o log de depuração para obter detalhes sobre como configurar este componente.

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 55998 - Gravação HTTP – Substituir o valor da porta pela variável definida pelo usuário não funciona
  • Bug 56178 - erro de keytool: caractere de escape inválido no AVA: - alguns caracteres devem ser escapados
  • Bug 56222 - NPE se jmeter.httpclient.strict_rfc2616=true e a localização não for absoluta
  • Bug 56263 - DefaultSamplerCreator deve definir BrowserCompatible Multipart true
  • Bug 56231 - Mover o processamento de localização de redirecionamento de amostradores HC3/HC4 para HTTPSamplerBase#followRedirects()
  • Bug 56207 - URLs são codificados em redirecionamentos em amostradores HC3.1 e HC4
  • Bug 56303 - A largura da lista de combinação do controlador de destino deve ser definida para o tamanho atual do painel, não no tamanho da etiqueta dos controladores
  • Bug 54778 - O HTTP Sampler não deve retornar 204 quando o recurso for encontrado no Cache, torne-o configurável com a nova propriedade cache_manager.cached_resource_mode

Outros Amostradores

  • Bug 55977 - Inundação de manutenção de atividade do pool JDBC
  • Bug 55999 - A barra de rolagem no amostrador ponto a ponto jms não funciona quando o conteúdo excede a exibição
  • Bug 56198 - JMSSampler: NullPointerException é lançado quando a implementação subjacente de JNDI do provedor JMS não está em conformidade com o contrato Context.getEnvironment
  • Bug 56428 - MailReaderSampler - deve usar as propriedades mail.pop3s.*?
  • Bug 46932 - Alias ​​fornecido na instrução select não é usado como cabeçalho de coluna em dados de resposta para uma solicitação JDBC. Baseado em relatório e análise de Nicola Ambrosetti
  • Bug 56539 - Amostrador do leitor de correio: Quando o número de mensagens a serem recuperadas é superior a 1, o número de amostras deve mostrar apenas 1 e não o número de mensagens recuperadas
  • Bug 56809 - JMSSampler fecha InitialContext muito cedo. Contribuição de Bradford Hovinen (hovinen em gmail.com)
  • Bug 56761 - JMeter tenta parar a conexão JMS já interrompida e exibe "A conexão está fechada"
  • Bug 57068 - Nenhum erro gerado quando a duração negativa é inserida na ação de teste
  • Bug 57078 - LagartoBasedHTMLParser falha ao analisar a página que contém entrada sem tipo
  • Bug 57183 - JMSSampler: Para string de entrada: "" java.lang.NumberFormatException (para campos Expiration ou Priority)

Controladores

  • Bug 56243 - Foreach funciona incorretamente com índices em iterações subsequentes
  • Bug 56276 - O controlador de loop é interrompido quando a contagem de loop é avaliada como zero
  • Bug 56160 - StackOverflowError ao usar WhileController dentro de IfController
  • Bug 56811 - "Start Next Thread Loop" no Result Status Action Handler ou no Thread Group e "Go to next Loop iteration" na Test Action se comportam incorretamente com TransactionController que tem "Generate Parent Sampler" marcado

Ouvintes

  • Bug 56706 - SampleResult#getResponseDataAsString() não usa codificação no corpo da resposta impactando PostProcessors e ViewResultsTree. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57052 - ArithmeticException: / por zero quando sampleCount é igual a 0

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 56162 - Gerenciador de cache HTTP não deve armazenar em cache PUT/POST etc.
  • Bug 56227 - AssertionGUI: NPE na afirmação na seleção do mouse
  • Bug 41319 - URLRewritingModifier: permitir que o valor do parâmetro seja codificado em URL

Funções

I18N

  • Bug 56111 - "comentários" na tradução alemã não está correto

Em geral

  • Bug 56059 - TestBeans mais antigo incompatível com 2.11 ao usar TextAreaEditor
  • Bug 56080 - Erro de conversão com.thoughtworks.xstream.converters.ConversionException com Java 8 Early Access Build
  • Bug 56182 - Não é possível acionar o script bsh usando bshclient.jar; soquete é fechado inesperadamente
  • Bug 56360 - HashTree e ListedHashTree falham ao compilar com Java 8
  • Bug 56419 - JMeter falha silenciosamente ao salvar resultados
  • Bug 56662 - Salvar como xml em um listener não é lembrado
  • Bug 56367 - JMeter 2.11 no maven central aciona uma dependência não existente rsyntaxtextarea 2.5.1, atualize para 2.5.3
  • Bug 56743 - Arquivos de lista de discussão errados em mail2.xml. Contribuição de Felix Schumacher (felix.schumacher em internetallee.de)
  • Bug 56763 - Removendo os ícones do Oracle, não usados ​​pelo JMeter (e faltando licença)
  • Bug 54100 - A troca de idiomas não preserva os estados dos botões da barra de ferramentas (ativado/desativado)
  • Bug 54648 - A GUI do JMeter no OS X trava ao usar CMD+C (atalho de teclado ou entrada de menu da interface do usuário) em um elemento da árvore
  • Bug 56962 - GUIs JMS devem desabilitar todos os campos afetados pela caixa de seleção jndi.properties
  • Bug 57061 - Salvar como Fragmento de Teste falha ao clonar o nó profundamente selecionado. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57075 - O atributo BeanInfoSupport.MULTILINE não é processado
  • Bug 57076 - BooleanPropertyEditor#getAsText() deve retornar um valor que esteja em getTags()
  • Bug 57088 - NPE em ResultCollector.testEnded

Melhorias

Amostradores HTTP e Gravador de Script de Teste

  • Bug 55959 - Melhora a mensagem de erro quando o Gravador de Script de Teste falha devido a um problema de E/S
  • Bug 52013 - A Árvore de Resultados da Visualização Filho do Gravador de Script de Teste não leva em consideração os URLs excluídos/incluídos do Gravador de Script de Teste. Baseado no relatório e análise de James Liang
  • Bug 56119 - Os uploads de arquivos falham em todas as outras tentativas usando temporizadores. Habilite tempos limite ociosos para servidores que não enviam cabeçalhos Keep-Alive.
  • Bug 56272 - MirrorServer deve suportar parâmetros de consulta para status e redirecionamentos
  • Bug 56772 - Manipular comentários condicionais do IE ao analisar recursos incorporados
  • Bug 57026 - Gravador de script de teste HTTP(S): Melhores configurações padrão. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57107 - Proposta de patch: Adicionar verbos DAV ao HTTP Sampler. Contribuição de Philippe Jung (apache em famille-jung.fr)
  • Bug 56357 - Os certificados não estão em conformidade com as restrições do algoritmo: Adicionando uma nota para indicar como remover da instalação do Java essas novas restrições de segurança

Outros amostradores

  • Bug 56033 - Adicionar tempo limite de conexão e tempo limite de leitura ao amostrador SMTP
  • Bug 56429 - MailReaderSampler - não há necessidade de buscar todas as mensagens se nem todas forem desejadas
  • Bug 56427 - Aprimoramento MailReaderSampler: leia apenas o cabeçalho da mensagem
  • Bug 56510 - JMS Publisher/Point to Point: Adicionar JMSPriority e JMSExpiration

Controladores

  • Bug 56728 - Novo Controlador de Seção Crítica para serializar blocos de um Teste. Baseado em parte em um patch contribuído por Mikhail Epikhin (epihin-m em yandex.ru)
  • Bug 57145 - RandomController: Use ThreadLocalRandom em vez de Random para melhores desempenhos

Ouvintes

  • Bug 56228 - Exibir árvore de resultados: Melhore a ergonomia alterando o posicionamento dos renderizadores e permitindo a ordenação personalizada
  • Bug 56349 - "resumo" é um nome ruim para um componente Gerar resultados de resumo, documentação esclarecida
  • Bug 56769 - Adiciona a capacidade do ouvinte do Response Time Graph para salvar/restaurar configurações de formato no/do arquivo jmx
  • Bug 57025 - SaveService: Melhores padrões, salve a contagem de threads por padrão

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 56691 - Sincronizando Timer: Adicione tempo limite na espera
  • Bug 56701 - Gerenciador de Autorização HTTP/ Autenticação Kerberos: adiciona porta ao SPN quando a porta do servidor não é 80 nem 443. Baseado em patches de Dan Haughey (dan.haughey em swinton.co.uk) e Felix Schumacher (felix.schumacher em internetallee. de)
  • Bug 56841 - Novo elemento de configuração: DNS Cache Manager para melhorar o teste de CDN. Baseado no patch de Dzmitry Kashlach (dzmitrykashlach em gmail.com), e contribuído por BlazeMeter Ltd.
  • Bug 52061 - Permitir acesso aos cabeçalhos de solicitação no Regex Extractor. Baseado no patch de Dzmitry Kashlach (dzmitrykashlach em gmail.com), e contribuído por BlazeMeter Ltd.

Funções

  • Bug 56708 - __jexl2 não escala com vários núcleos de CPU. Com base na análise e patch contribuído por Mikhail Epikhin (epihin-m em yandex.ru)
  • Bug 57114 - Desempenho: Funções que possuem apenas valores como variável de instância não devem sincronizar a execução. Com base na análise do suporte do Ubik Load Pack e Vladimir Sitnikov, patch contribuído por Vladimir Sitnikov (sitnikov.vladimir em gmail.com)

I18N

Em geral

  • Bug 21695 - O script de início do jmeter Unix assume que está no PATH, não em um link
  • Bug 56292 - Adiciona a verificação da versão do Java nos arquivos de inicialização e desabilita algumas opções quando é o motor Java v8
  • Bug 56298 - A exibição do idioma JSR223 não mostra qual mecanismo será usado
  • Bug 56455 - Arquivos em lote: descarte o suporte para scripts de shell do Windows não NT
  • Bug 52707 - A caixa de diálogo Criar arquivo aberto usa a última pasta de arquivo aberta como pasta inicial. Baseado no patch de Dzmitry Kashlach (dzmitrykashlach em gmail.com), e contribuído por BlazeMeter Ltd.
  • Bug 56807 - Capacidade de forçar a liberação do arquivo ResultCollector. Contribuição de Andrey Pohilko (apc4 em ya.ru)
  • Bug 56921 - Modelos: Melhore o modelo de Gravação para ignorar o caso de recursos incorporados e os parâmetros de URL. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 42248 - Suporte a desfazer-refazer na modificação da árvore do Plano de Teste. Desenvolvido por Andrey Pohilko (apc4 em ya.ru) e contribuído por BlazeMeter Ltd. Contribuição adicional de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 56920 - LogViewer : Faz com que receba todos os eventos de log mesmo quando estiver fechado. Contribuição de Ubik Load Pack (suporte em ubikloadpack.com)
  • Bug 57083 - simplificou a enumeração CachedResourceMode. Contribuição de Graham Russel (graham em ham1.co.uk)
  • Bug 57082 - ComboStringEditor: Adicionado hashCode a uma classe interna que sobrescreveu igual. Contribuição de Graham Russel (graham em ham1.co.uk)
  • Bug 57081 - Atualizando estilo de verificação para verificar apenas guias em arquivos java, xml, xsd, dtd, htm, html e txt (não imagens!). Contribuição de Graham Russell (graham em ham1.co.uk)
  • Bug 56178 - Substitua realmente as barras invertidas no nome de usuário antes de gerar o certificado de proxy. Contribuição de Graham Russel (graham em ham1.co.uk)
  • Bug 57084 - Fecha o soquete após o uso no BeanShellClient. Contribuição de Graham Russel (graham em ham1.co.uk)

Alterações não funcionais

  • Bug 57117 - Aumente a cifra padrão para HTTPS Test Script Recorder de SSLv3 para TLS
  • Atualizado para commons-lang3 3.3.2 (de 3.1)
  • Atualizado para commons-codec 1.9 (de 1.8)
  • Atualizado para commons-logging 1.2 (de 1.1.3)
  • Atualizado para tika 1.6 (de 1.4)
  • Atualizado para xercesImpl 2.11.0 (de 2.9.1)
  • Atualizado para xml-apis 1.4.01 (de 1.3.04)
  • Atualizado para xstream 1.4.8 (de 1.4.4)
  • Atualizado para jodd 3.6.1 (de 3.4.10)
  • Atualizado para rsyntaxtextarea 2.5.3 (de 2.5.1)
  • Xalan e serializador atualizados para 2.7.2 (de 2.7.1)
  • Atualizado para jsoup-1.8.1.jar (de 1.7.3)

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • James Liang (jliang em andera.com)
  • Emmanuel Bourg (ebourg em apache.org)
  • Nicola Ambrosetti (ambrosetti.nicola em gmail.com)
  • Pacote de carregamento Ubik
  • Mikhail Epikhin (epihin-m em yandex.ru)
  • Dan Haughey (dan.haughey em swinton.co.uk)
  • Felix Schumacher (felix.schumacher em internetallee.de)
  • Dzmitry Kashlach (dzmitrykashlach em gmail.com)
  • Andrey Pohilko (apc4 em ya.ru)
  • Bradford Hovinen (hovinen em gmail.com)
  • BlazeMeter Ltda.
  • Graham Russell (graham em ham1.co.uk)
  • Philippe Jung (apache em famille-jung.fr)
  • Vladimir Sitnikov (sitnikov.vladimir em gmail.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:
  • Oliver LLoyd (e-mail em oliverlloyd.com) por sua ajuda no Bug 56119
  • Vladimir Ryabtsev (greatvovan em gmail.com) por sua ajuda no Bug 56243 e Bug 56276
  • Adrian Speteanu (asp.adieu em gmail.com) e Matt Kilbride (matt.kilbride em gmail.com) por seus comentários e testes no Bug 54648
  • Shmuel Krakower (shmulikk em gmail.com) por seus testes e relatórios sobre o recurso Desfazer/Refazer
Desculpe se omitimos mais alguém.

Versão 2.11

Resumo

Novo e notável

Melhorias no gravador de script de teste HTTP(S)

As seguintes melhorias foram feitas desde as principais alterações introduzidas no JMeter 2.10 no HTTP(S) Test Script Recorder:

  • Melhor detecção de configuração ausente ou inválida do utilitário keytool
  • A nova propriedade do sistema keytool.directory (consulte system.properties ) permite configurar o diretório contendo keytool no caso de instalação não padrão

JMS Publisher/Point to Point : Adicione a capacidade de definir valores digitados nas propriedades do cabeçalho JMS

Nos amostradores JMS Publisher e JMS Point-to-Point, agora é possível configurar a classe de valores para as propriedades do cabeçalho JMS. Anteriormente, apenas String era possível.

Exibir árvore de resultados: Adicionar um testador XPath

No ouvinte Exibir Árvore de Resultados, um novo testador XPath pode ser usado para testar expressões XPATH.

Capacidade de escolher o alias do cliente para a chave de certificação no JsseSslManager, de modo que o teste de autenticação SSL mútuo possa ser mais flexível

Ao testar autenticações de certificado baseadas em cliente, você agora tem melhor controle sobre o certificado que usa por meio de um novo campo "Nome de variável contendo alias de certificado", este campo permite selecionar o certificado que deseja enviar ao servidor para autenticação. Você pode usar um conjunto de dados CSV como detentor do valor da variável.

Adicione uma opção "Salvar como fragmento de teste"

No menu arquivo, uma nova opção permite salvar um grupo de elementos como um fragmento de teste.

O Summariser está ativado por padrão no modo Non GUI

Ao executar o JMeter a partir da linha de comandos, agora o JMeter exibe algumas estatísticas do modo Summariser.

Controlador de Transação: Altere a propriedade padrão "Incluir duração do temporizador…" para o elemento recém-criado

A partir da versão 2.11, o Transaction Controller é configurado por padrão para excluir o tempo de processamento de pré/pós processadores enquanto os temporizadores pausarem.

Erros conhecidos

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os ouvintes não mostram contagens de iteração quando um If Controller tem uma condição que é sempre falsa desde a primeira iteração (consulte Bug 52496 ). Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, o número total de threads se aplica apenas a um teste executado localmente, caso contrário, mostrará 0 (consulte o Bug 55510 ).
  • Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:
    [java] AVISO: não foi possível liberar as preferências do usuário:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException: Não suportado: número de recuo
    
    Isso não afeta a operação do JMeter. Esse problema foi corrigido desde o Java 7b05.
  • Com Java 1.6 e Gnome 3 em sistemas Linux, o menu JMeter pode não funcionar corretamente (alternar entre o clique do mouse e o menu). Este é um bug Java conhecido (veja Bug 54477 ). Uma solução alternativa é usar um tempo de execução Java 7 (OpenJDK ou Oracle JDK).
  • Com o Oracle Java 7 e o Mac Book Pro Retina Display, a GUI do JMeter pode parecer embaçada. Este é um bug Java conhecido, veja Bug JDK-8000629 . Uma solução alternativa é usar um tempo de execução do Java 7 update 40 que corrige esse problema.

Alterações incompatíveis

  • Ao criar um novo Controlador de Transação, a propriedade "Incluir duração do temporizador e pré-pós processadores na amostra gerada" será desmarcada a partir da versão 2.11
  • No modo Non GUI, uma vez que o sumarizador 2.11 está habilitado com uma frequência de 30 segundos
  • O JMeter é mais tolerante com o manuseio de redirecionamento e relaxa no RFC2616, permitindo locais relativos. Veja a propriedade " jmeter.httpclient.strict_rfc2616 " em jmeter.properties para alterar este comportamento, veja o Bug 55717
  • Ao criar uma nova Asserção de Resposta, a propriedade "Regras de Correspondência de Padrão" agora assume como padrão Substring a partir da versão 2.11

Correções de bugs

Amostradores HTTP e Gravador de Script de Teste

  • Bug 55815 - Proxy#getDomainMatch não lida com curingas corretamente
  • Bug 55717 - Tratamento incorreto de redirecionamento quando URLs estão em formato relativo por HttpClient4 e HttpClient3.1

Outros Amostradores

  • Bug 55685 - OS Sampler: opção de tempo limite não salva e restaura corretamente o valor e não inicializa corretamente o tempo limite

Controladores

  • Bug 55816 - Controlador de transação com "Incluir duração do temporizador…" desmarcado não ignora o tempo de processamento do último amostrador filho

Ouvintes

  • Bug 55826 - Acessos simultâneos não sincronizados à lista no campo RespTimeGraphVisualizer.internalList

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 55694 - Assertions and Extractors: Evite NullPointerException quando o escopo for variável e a variável estiver ausente
  • Bug 55721 - Gerenciador de cache HTTP - a diretiva no-store é interpretada incorretamente

Funções

  • Bug 55871 - Resultado errado com a função intSum() quando um caractere de espaço está presente antes/depois do número. Contribuição de Milamber com base em uma proposta de James Liang.

I18N

Em geral

  • Bug 55739 - Teste remoto: o total de threads no modo GUI mostra o número total de threads inválido

Melhorias

Amostradores e proxy HTTP

Outros amostradores

  • Bug 55589 - Publicador JMS/Ponto a Ponto: Adicionada a capacidade de definir valores digitados nas propriedades do cabeçalho JMS.

Controladores

  • Bug 55854 - Controlador de Transação: Altere a propriedade padrão "Incluir duração do temporizador…" para o elemento recém-criado

Ouvintes

  • Bug 55610 - Exibir árvore de resultados: adicionar um testador XPath

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 55908 - Asserção de resposta: Alterar o padrão de regras de correspondência de padrões para Substring na criação para melhores desempenhos
  • Bug 54977 - Capacidade de escolher o alias do cliente para a chave de certificação no JsseSslManager, de modo que o teste de autenticação SSL mútuo possa ser mais flexível. Contribuição do UBIK Load Pack (suporte em ubikloadpack.com)

Funções

I18N

Em geral

  • Bug 55693 - Adicionar uma opção "Salvar como fragmento de teste"
  • Bug 55753 - Melhorar o comportamento do FilePanel para iniciar a partir do valor definido no campo Nome do arquivo, se houver. Contribuição do UBIK Load Pack (suporte em ubikloadpack.com)
  • Bug 55756 - HTTP Mirror Server: Adicione a capacidade de definir cabeçalhos
  • Bug 55852 - Seja mais tolerante na análise quando o valor do charset estiver entre aspas simples
  • Bug 55857 - Desempenho: AbstractProperty deve testar a vacuidade para evitar o lançamento de exceção
  • Bug 55858 - Desempenho de inicialização: Na inicialização, BeanInfoSupport deve testar a disponibilidade de chave em vez de lançar
  • Bug 55865 - Desempenho: Desativar verificação obsoleta por padrão no HttpClient 4 e 3.1
  • Bug 55512 - Summariser deve ser ativado por padrão no modo Non GUI

Alterações não funcionais

  • Atualizado para rsyntaxtextarea-2.5.1.jar (de 2.5.0)
  • Atualizado para jodd-core-3.4.9.jar de (3.4.8) e jodd-lagarto-3.4.9.jar (de 3.4.9)
  • Atualizado para jsoup-1.7.3.jar (de 1.7.2)
  • Atualizado para mail-1.5.0-b01 (de 1.4.4)
  • Atualizado para mongo-java-driver-2.11.3 (de 2.11.2)

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • James Liang (jliang em andera.com)
  • UBIK Load Pack (suporte em ubikloadpack.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:
  • John Natsioulas (john_natsioulas em yahoo.com.au)
  • Antonio Gomes Rodrigues (ra0077 em gmail.com)
Desculpe se omitimos mais alguém.

Versão 2.10

Resumo

Novo e notável

Melhorias principais

Novas melhorias de desempenho

  • Uma grande melhoria de desempenho foi feita em testes de alta taxa de transferência (sem pausa), consulte Bug 54777
  • Foi corrigido um problema com a redefinição de contexto SSL desnecessária que melhora o desempenho de testes HTTP puros, consulte Bug 55023
  • Melhoria de desempenho importante na análise de recursos Embedded em páginas HTML graças a uma mudança para JODD/Lagarto HTML Parser, veja Bug 55632

Novo testador CSS/JQuery na visualização de resultados da árvore

Um novo CSS/JQuery Tester na View Tree Results que torna o CSS/JQuery Extractor um cidadão de primeira classe no JMeter, agora você pode testar suas expressões com muita facilidade

Muitas melhorias na gravação HTTP(S) foram feitas

O elemento de teste "HTTP Proxy Server" foi renomeado como "HTTP(S) Test Script Recorder".

Agora você pode carregar o MongoDB de teste por meio do novo MongoDB Source Config

A autenticação Kerberos foi adicionada ao Auth Manager

O dispositivo agora pode ser usado além do endereço IP de origem

Agora você pode fazer testes funcionais de scripts MongoDB por meio do novo MongoDB Script

O tempo limite foi adicionado ao SO Process Sampler

O tempo limite da consulta foi adicionado à solicitação JDBC

Novas funções (__urlencode e __urldecode) agora estão disponíveis para codificar/decodificar caracteres codificados em URL

A Integração Contínua agora é facilitada pela adição de um novo sinalizador que força a JVM NON-GUI a sair após o término do teste

Veja a propriedade jmeter:

jmeterengine.force.system.exit

HttpSampler agora permite DELETE Http Method ter um corpo (funciona para implementações HC4 e HC31). Isso permite, por exemplo, testar APIs do Elastic Search

2 implementações de HtmlParser foram adicionadas para melhorar a análise de recursos incorporados

Você pode escolher a implementação a ser usada para analisar recursos incorporados em páginas HTML: Consulte jmeter.properties e observe a propriedade "htmlParser.className".

  • org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser para desempenho ideal
  • org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser para análise mais precisa e testes funcionais

O teste distribuído foi aprimorado

  • O número de threads em cada nó agora é relatado ao controlador.

  • Melhoria de desempenho em BatchSampleSender( Bug 55423 )
  • Adição de 2 modos SampleSender (StrippedAsynch e StrippedDiskStore), consulte jmeter.properties

O ModuleController foi aprimorado para lidar melhor com as alterações nos controladores referenciados

Configuração aprimorada do carregador de classes, consulte Bug 55503

  • Nova propriedade "plugin_dependency_paths" para dependências de plugins
  • Propriedades "search_paths", "user.classpath" e "plugin_dependency_paths" agora adicionam automaticamente todos os jars dos diretórios configurados

A seção de práticas recomendadas foi aprimorada, certifique-se de lê-la para aproveitar ao máximo o JMeter

Veja as melhores práticas

Melhorias na GUI e na ergonomia

Novo recurso de modelos que permite criar um plano de teste a partir de um modelo existente ou mesclar modelo em seu plano de teste

Workbench agora pode ser salvo

A cor da sintaxe foi adicionada aos elementos de scripts (BeanShell, BSF e JSR223), elementos MongoDB e JDBC tornando o código muito mais legível e permitindo UNDO/REDO através de CTRL+Z/CTRL+Y

Amostrador BSF com cor de sintaxe

Pré-processador JSR223 com cor de sintaxe

Editores melhores agora estão disponíveis para elementos de teste com conteúdo de texto grande, como HTTP Sampler e elemento de teste relacionado a JMS, fornecendo numeração de linha e permitindo UNDO/REDO por meio de CTRL+Z/CTRL+Y

A GUI do JMeter agora pode ser totalmente internacionalizada, todos os problemas restantes foram corrigidos

Atualmente o francês tem todos os seus rótulos traduzidos. Outros idiomas são parcialmente traduzidos, sinta-se à vontade para contribuir com traduções lendo Localização (Guia do Tradutor)

A movimentação de elementos no plano de teste foi aprimorada de várias maneiras

Arrastar e soltar elementos na árvore do Plano de Teste agora é muito mais fácil e possível em vários nós

Observe que devido a esse bug no Java , você não pode descartar um nó após o último nó. A solução é soltá-lo antes deste último nó e, em seguida, arrastar e soltar o último nó antes do que você acabou de soltar.

Novos atalhos foram adicionados para mover elementos na árvore.

(alt + seta para cima) e (alt + seta para baixo) movem o elemento dentro do nó pai
(alt + seta para a esquerda) e (alt + seta para a direita) movem o elemento para cima e para baixo na profundidade da árvore

O eixo Y do gráfico de tempo de resposta agora pode ser dimensionado

JUnit Sampler dá agora mais detalhes sobre erros de configuração

Erros conhecidos

  • O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).
  • Os ouvintes não mostram contagens de iteração quando um If Controller tem uma condição que é sempre falsa desde a primeira iteração (consulte Bug 52496 ). Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).
  • O amostrador de serviço da Web não considera o status da resposta HTTP para calcular o status de uma resposta, portanto, uma resposta 500 contendo um corpo não vazio será considerada bem-sucedida, consulte Bug 54006 . Para solucionar esse problema, certifique-se de sempre ler a resposta e adicionar um texto de verificação de declaração de resposta dentro da resposta.
  • Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, estes se aplicam apenas a um teste executado localmente; eles não incluem nenhum encadeamento iniciado em sistemas remotos ao usar o modo cliente-servidor (consulte Bug 54152 ).
  • Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:
    [java] AVISO: não foi possível liberar as preferências do usuário:
     java.util.prefs.BackingStoreException:
     java.lang.IllegalArgumentException: Não suportado: número de recuo
    
    Isso não afeta a operação do JMeter. Esse problema foi corrigido desde o Java 7b05.
  • Com Java 1.6 e Gnome 3 em sistemas Linux, o menu JMeter pode não funcionar corretamente (alternar entre o clique do mouse e o menu). Este é um bug Java conhecido (veja Bug 54477 ). Uma solução alternativa é usar um tempo de execução Java 7 (OpenJDK ou Oracle JDK).
  • Com o Oracle Java 7 e o Mac Book Pro Retina Display, a GUI do JMeter pode parecer embaçada. Este é um bug Java conhecido, veja Bug JDK-8000629 . Uma solução alternativa é usar um tempo de execução do Java 7 update 40 que corrige esse problema.

Alterações incompatíveis

  • O SMTP Sampler agora usa o assunto do arquivo eml se o campo de assunto estiver vazio
  • Com esta versão o autoFlush foi desligado no PrintWriter encarregado de escrever os resultados dos testes. Isso resulta em uma taxa de transferência aprimorada para testes intensivos, mas pode resultar em mais perda de dados de teste em caso de falha do JMeter (extremamente raro). Para reverter para o comportamento anterior, defina a propriedade jmeter.save.saveservice.autoflush como true .
  • O atalho para a caixa de diálogo do auxiliar de função agora é CTRL+SHIFT+F1 (CMD + SHIFT + F1 para Mac OS) . A sequência de teclas original (Ctrl+F1) não funcionou em alguns locais (ela é consumida pelo Java Swing ToolTipManager). Foi, portanto, necessário alterar o atalho.
  • A solicitação de serviço da Web (SOAP) foi removida por padrão da GUI, pois o elemento está obsoleto. (Use HTTP Request with Body Data , veja também o Template Building a SOAP Webservice Test Plan ), se precisar mostrá-lo, veja a propriedade not_in_menu em jmeter.properties
  • O Transaction Controller agora define o Código de Resposta do Amostrador Pai Gerado (se o Amostrador Pai Gerado estiver marcado) para o código de resposta do primeiro filho com falha em caso de falha de um dos filhos, nas versões anteriores o Código de Resposta estava vazio.
  • Nas versões anteriores, IncludeController poderia executar Test Elements localizados dentro de um Thread Group , este comportamento ( que não foi documentado ) poderia resultar em um comportamento estranho, foi removido nesta versão (veja Bug 55464 ). A maneira correta de incluir elementos de teste é usar o fragmento de teste conforme indicado na documentação do controlador de inclusão .
  • A contagem de novas tentativas para os amostradores HttpClient 3.1 e HttpClient 4.x foi alterada para 0 . Anteriormente, o padrão era 1, o que poderia causar tráfego adicional inesperado.
  • A partir desta versão, o HTTP(S) Test Script Recorder tenta detectar quando uma amostra é o resultado de um redirecionamento anterior. Se a resposta atual for um redirecionamento, o JMeter salvará a URL de redirecionamento. Quando a próxima solicitação é recebida, ela é comparada com a URL de redirecionamento salva e, se houver correspondência, o JMeter desabilitará a amostra gerada. Para reverter ao comportamento anterior, defina a propriedade proxy.redirect.disabling=false
  • A partir desta versão, no HTTP(S) Test Script Recorder , se Grouping estiver definido como Put each group in a new Transaction Controller , o Recorder criará instâncias do Transaction Controller com Include duration of timer and pre-post processors in Generad sample definido como false . Esse valor padrão reflete o tempo de resposta com mais precisão.
  • A função __escapeOroRegexpChars (que escapa caracteres reservados ORO) não corta mais o valor (consulte Bug 55328 )
  • O commons-lang-2.6.jar foi removido das bibliotecas incorporadas na pasta jmeter/lib , pois não é necessário pelo JMeter em tempo de execução (é usado apenas pelo Apache Velocity para gerar documentação). Se você usar qualquer plugin ou código de terceiros que dependa dele, você precisa adicioná-lo na pasta jmeter/lib

Correções de bugs

Amostradores e proxy HTTP

  • Bug 54627 - JMeter Proxy GUI: A configuração do tipo de amostrador ocupa a tela inteira quando há amostradores com nomes longos.
  • Bug 54629 - HTMLParser não extrai urls de tag <object>.
  • Bug 55023 - O recurso de reutilização de contexto SSL (51380) afeta negativamente o desempenho/taxa de transferência de solicitações não SSL. baseado na análise de Brent Cromarty (brent.cromarty em yahoo.ca)
  • Bug 55092 - Mensagem de log "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase: URL nulo detectado (não deve acontecer)" exibido quando o URL do recurso incorporado é malformado.
  • Bug 55161 - Processamento inútil em SoapSampler.setPostHeaders. Contribuição de Adrian Nistor (nistor1 em illinois.edu)
  • Bug 54482 - HC não segue redirecionamentos com caracteres não codificados.
  • Bug 54142 - HTTP Proxy Server lança uma exceção quando o caminho contém "|" personagem.
  • Bug 55388 - HC3 não permite que o campo IP Source substitua httpclient.localaddress.
  • Bug 55450 - redirecionamentos HEAD devem permanecer como HEAD
  • Bug 55455 - HTTPS com HTTPClient4 ignora a configuração de cps
  • Bug 55502 - Proxy gera entradas http:/ vazias ao gravar
  • Bug 55504 - O proxy emite incorretamente solicitações CONNECT quando o navegador solicita a substituição do certificado
  • Bug 55506 - O proxy deve entregar solicitações com falha para qualquer ouvinte configurado
  • Bug 55545 - A GUI do servidor proxy HTTP não deve permitir a seleção de seguir e redirecionar automaticamente

Outros Amostradores

  • Bug 54913 - JMSPublisherGui restaura incorretamente seu estado. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 55027 - Regressão de ação de teste, valor de duração não é registrado (compilação noturna).
  • Bug 55163 - BeanShellTestElement falha ao citar a string ao chamar testStarted(String)/testEnded(String).
  • Bug 55349 - NativeCommand trava se nenhum arquivo de entrada for especificado e o aplicativo solicitar entrada.
  • Bug 55462 - O amostrador do sistema não deve alterar o rótulo do amostrador se uma amostra falhar

Controladores

  • Bug 54467 - Controlador de Loop: calcula o valor do loop apenas uma vez por iteração pai.
  • Bug 54985 - Fazer o controlador de transação definir o código de resposta do amostrador pai gerado para o código de resposta do primeiro filho com falha em caso de falha de um de seus filhos. Contribuição de Mikhail Epikhin (epihin-m em yandex.ru)
  • Bug 54950 - ModuleController : Alterações no módulo referenciado não são levadas em consideração se ocorrerem alterações após a primeira execução e o nó referenciado estiver desabilitado.
  • Bug 55201 - O controlador ForEach exclui o índice inicial e inclui o índice final (documentação esclarecida).
  • Bug 55334 - Adicionar controlador de inclusão ao plano de teste (feito de controladores de inclusão) sem salvar TestPlan leva ao código incluído não sendo levado em consideração até salvar.
  • Bug 55375 - StackOverflowError com ModuleController no modo Non-GUI se seu nome for o mesmo que o nó de destino.
  • Bug 55464 - Incluir Controlador executando o grupo de threads incluído

Ouvintes

  • Bug 54589 - A árvore de resultados de visualização tem muitos caracteres de lixo se a página html usa um conjunto de caracteres de byte duplo.
  • Bug 54753 - StringIndexOutOfBoundsException em SampleResult.getSampleLabel() se key_on_threadname=false ao usar o modo estatístico.
  • Bug 54685 - ArrayIndexOutOfBoundsException se "sample_variable" estiver definido no cliente, mas não no servidor.
  • Bug 55111 - ViewResultsTree: texto não reajustado se a barra de rolagem vertical for necessária. Contribuição de Milamber

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 54540 - "Máscara de parâmetro HTML" não está marcada como obsoleta no IHM.
  • Bug 54575 - CSS/JQuery Extractor: Escolher a implementação JODD sempre usa JSOUP.
  • Bug 54901 - A GUI de Asserção de Resposta se comporta de maneira estranha.
  • Bug 54924 - XMLAssertion usa JMeter JVM file.encoding em vez de codificação de resposta e não limpa a variável threadlocal.
  • Bug 53679 - Bug do Constant Throughput Timer com localização. Reportagem de Ludovic Garcia

Funções

  • Bug 55328 - __escapeOroRegexpChars corta espaços.

I18N

  • Bug 55437 - ComboStringEditor não traduz strings EDIT e UNDEFINED na mudança de idioma
  • Bug 55501 - Codificação incorreta para descrição em francês da função __char. Contribuição de Antonio Gomes Rodrigues (ra0077 em gmail.com)

Em geral

  • Bug 54504 - Cadeia de recursos não encontrada: [clipboard_node_read_error].
  • Bug 54538 - GUI: o menu de contexto é muito grande.
  • Bug 54847 - Recortar e Colar está quebrado com a seleção múltipla de árvores. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54870 - Arrastar e soltar árvore pode perder nós de folha (construção noturna afetada). Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 55056 - trabalho desperdiçado em Data.append(). Contribuição de Adrian Nistor (nistor1 em illinois.edu)
  • Bug 55129 - Altere a geração do Javadoc de acordo com CVE-2013-1571, VU#225657.
  • Bug 55187 - Estouro de número inteiro ao calcular ONE_YEAR_MS no HTTP CacheManager.
  • Bug 55208 - As entradas de idioma JSR223 são duplicadas; dobre para minúsculas.
  • Bug 55203 - TestBeanGUI - configurações de idioma erradas encontradas.
  • Bug 55065 - Processamento inútil em Spline3.converge(). Contribuição de Adrian Nistor (nistor1 em illinois.edu)
  • Bug 55064 - Processamento inútil em ReportTreeListener.isValidDragAction(). Contribuição de Adrian Nistor (nistor1 em illinois.edu)
  • Bug 55242 - O jar do BeanShell Client lança exceções após atualizar para 2.8.
  • Bug 55288 - O JMeter deve ter como padrão 0 novas tentativas para solicitações HTTP.
  • Bug 55405 - a tarefa ant download_jars falha se lib/api ou lib/doc estiverem faltando. Contribuição de António Gomes Rodrigues.
  • Bug 55427 - TestBeanHelper deve ignorar propriedades não suportadas por GenericTestBeanCustomizer
  • Bug 55459 - Elementos usando ComboStringEditor perdem o valor de entrada se o usuário selecionar outro Elemento de Teste
  • Bug 54152 - Em testes distribuídos: activeThreads sempre mostra 0 na GUI e no Summariser
  • Bug 55509 - Permitir que Plugins sejam notificados da progressão do número de thread remoto
  • Bug 55572 - O pop-up de detalhes do parâmetro não mostra uma barra de rolagem quando o conteúdo excede a exibição
  • Bug 55580 - O painel de ajuda não rola para iniciar os links <a href="#">
  • Bug 55600 - JSyntaxTextArea: comportamento estranho no primeiro desfazer
  • Bug 55655 - NullPointerException ao parar/desligar remotamente todos se um motor não iniciar corretamente. Contribuição do UBIK Load Pack (suporte em ubikloadpack.com)
  • Bug 55657 - O estado dos botões de parada/desligamento remoto e local não leva em consideração o status local/remoto

Melhorias

Amostradores e proxy HTTP

  • Solicitação HTTP: Pequenas melhorias na interação do usuário na caixa de detalhes do parâmetro de linha. Contribuição de Milamber
  • Bug 55255 - Permitir que o método Body in HTTP DELETE dê suporte à API que o usa (como ElasticSearch).
  • Bug 53480 - Adicionar suporte Kerberos ao Http Sampler (HttpClient4). Baseado no patch de Felix Schumacher (felix.schumacher em internetallee.de)
  • Bug 54874 - Dispositivo de suporte além do endereço IP de origem. Baseado no patch de Dan Fruehauf (malkodan em gmail.com)
  • Bug 55488 - Adicionar extensão de arquivo .ico e .woff às exclusões padrão sugeridas no gravador de proxy. Contribuição de Antonio Gomes Rodrigues
  • Bug 55525 - Proxy deve suportar alias para entrada do servidor de chaves
  • Bug 55531 - Gravação e redirecionamentos de proxy. Adicionado código para desabilitar amostras redirecionadas.
  • Bug 55507 - A gravação de proxy SSL não lida bem com recursos incorporados externos
  • Bug 55632 - Tenha uma nova implementação do htmlParser para análise de recursos incorporados com melhor desempenho
  • Bug 55653 - HTTP(S) Test Script Recorder deve definir a propriedade TransactionController "Incluir duração do temporizador e pré-pós processadores na amostra gerada" para false

Outros amostradores

  • Bug 54788 - JMS Point-to-Point Sampler - melhorias na GUI para aumentar a legibilidade e facilidade de uso. Contribuição de Bruno Antunes (bmantunes em gmail.com)
  • Bug 54798 - Usando o assunto do arquivo EML para o SMTP Sampler. Contribuição de Mikhail Epikhin (epihin-m em yandex.ru)
  • Bug 54759 - SSLPeerUnverifiedException usando HTTPS , propriedade documentada.
  • Bug 54896 - O amostrador JUnit fornece apenas a mensagem "falha ao criar uma instância da classe" com problemas de construtor.
  • Bug 55084 - Adicionar suporte de tempo limite para solicitação JDBC. Contribuição de Mikhail Epikhin (epihin-m em yandex.ru)
  • Bug 55403 - Aprimoramento no amostrador de SO: suporte para tempo limite
  • Bug 55518 - Adicionada a capacidade de limitar o número de PreparedStatements em cache por conexão quando o tipo de consulta "Instrução de seleção preparada", "Instrução de atualização preparada" ou "Instrução de chamada" é selecionado

Controladores

  • Bug 54271 - O controlador do módulo quebra se o plano de teste for renomeado.

Ouvintes

  • Bug 54532 - Melhora a escala do eixo Y do gráfico de tempo de resposta com valores grandes ou pequenos (< 1000ms). Adicione um novo campo para definir a escala de incremento. Contribuição de Milamber baseado no patch de Luca Maragnani (luca.maragnani em gmail.com)
  • Bug 54576 - Exibir Árvore de Resultados: Adicione um Testador CSS/JQuery.
  • Bug 54777 - Melhora o desempenho do ResultCollector padrão. Baseado no patch de Mikhail Epikhin (epihin-m em yandex.ru)
  • Bug 55389 - Mostrar endereço de origem IP nos dados de solicitação

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 54789 - XPath Assertion - melhorias na GUI para aumentar a legibilidade e facilidade de uso.

Funções

  • Bug 54991 - Adicionar funções para codificar/decodificar caracteres codificados em URL (__urlencode e __urldecode). Contribuição de Milamber.

I18N

  • Bug 55241 - Precisa do Editor de GUI para processar campos baseados em Enums com strings de exibição localizadas
  • Bug 55440 - ComboStringEditor deve permitir que as tags sejam dependentes do idioma
  • Bug 55432 - CSV Dataset Config perde o modo de compartilhamento ao alternar idiomas

Em geral

  • Bug 54584 - Plugin MongoDB. Baseado no patch de Jan Paul Ettles (janpaulettles em gmail.com)
  • Bug 54669 - Adicionar sinalizador forçando a JVM não-GUI a sair após o teste. Contribuição de Scott Emmons
  • Bug 42428 - Workbench não salvo com Plano de Teste. Contribuição de Dzmitry Kashlach (dzmitrykashlach em gmail.com)
  • Bug 54825 - Adicionar atalhos para mover elementos na árvore. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54834 - Melhore o Arrastar e Soltar na árvore jmeter. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54839 - Defina o nome do aplicativo no Mac. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54841 - Manuseie corretamente o atalho de saída no Mac Os (CMD-Q). Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54844 - Defina o ícone do aplicativo no Mac OS. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54864 - Habilite a seleção múltipla de arrastar e soltar na árvore sem precisar começar a arrastar antes de liberar Shift ou Control. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54945 - Adicionar Gancho de Desligamento para habilitar a captura de sinais de kill ou CTRL+C.
  • Bug 54990 - Baixe arquivos grandes evitando outOfMemory.
  • Bug 55085 - Melhoria de UX: Capacidade de criar Novo Plano de Teste a partir de Modelos. Contribuição do UBIK Load Pack (suporte em ubikloadpack.com)
  • Bug 55172 - Fornece aos plugins uma maneira de adicionar o menu superior e itens de menu.
  • Bug 55202 - Adicionar cor de sintaxe para elementos de scripts (BeanShell, BSF e JSR223) e elementos JDBC com RSyntaxTextArea. Contribuição de Milamber com base no patch de Marko Vlahovic (vlahovic74 em gmail.com)
  • Bug 55175 - Refatoração HTTPHC4Impl para permitir melhor herança.
  • Bug 55236 - Modelos - fornece botão para recarregar os detalhes do modelo.
  • Bug 55237 - O sistema de modelo deve suportar entradas relativas de nome de arquivo.
  • Bug 55423 - BatchSampleSender: Reduza a granularidade de bloqueio movendo listener.processBatch para fora do bloco sincronizado
  • Bug 55424 - Adicionar Stripping a SampleSenders existentes
  • Bug 55451 - Test Element GUI com JSyntaxTextArea rola para baixo quando o conteúdo do texto é longo o suficiente para adicionar uma barra de rolagem
  • Bug 55513 - StreamCopier não pode ser usado com System.err ou System.out, pois fecha o fluxo de saída
  • Bug 55514 - SystemCommand deve suportar fluxos de entrada e saída arbitrários
  • Bug 55515 - SystemCommand deve suportar encadeamento de comandos
  • Bug 55606 - Use JSyntaxtTextArea para solicitação HTTP, elementos de teste JMS
  • Bug 55651 - Altere o ícone do aplicativo JMeter para o ícone de pluma do Apache

Alterações não funcionais

  • Atualizado para jsoup-1.7.2
  • Bug 54776 - Atualize a dependência do Bouncy Castle para 1.48. Contribuição de Emmanuel Bourg (ebourg em apache.org)
  • Atualizado para HttpComponents Client 4.2.6 (de 4.2.3)
  • Atualizado para HttpComponents Core 4.2.5 (de 4.2.3)
  • Atualizado para commons-codec 1.8 (de 1.6)
  • Atualizado para commons-io 2.4 (de 2.2)
  • Atualizado para commons-logging 1.1.3 (de 1.1.1)
  • Atualizado para commons-net 3.3 (de 3.1)
  • Atualizado para jdom-1.1.3 (de 1.1.2)
  • Atualizado para jodd-lagarto e jodd-core 3.4.8 (de 3.4.1)
  • Atualizado para junho 4.11 (de 4.10)
  • Atualizado para slf4j-api 1.7.5 (de 1.7.2)
  • Atualizado para tika 1.4 (de 1.3)
  • Atualizado para xmlgraphics-commons 1.5 (de 1.3.1)
  • Atualizado para xstream 1.4.4 (de 1.4.2)
  • Atualizado para BouncyCastle 1.49 (de 1.48)
  • Bug 54912 - JMeterTreeListener deve usar constantes. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 54903 - Remova a dependência da Estrutura de Ativação. Contribuição de Emmanuel Bourg (ebourg em apache.org)
  • Movido commons-lang (2.6) para lib/doc, pois só é necessário para o Velocity.
  • Arquivos de AVISO e LICENÇA reorganizados e simplificados.
  • Bug 55411 - NativeCommand pode ser útil em outro lugar. Código copiado para oajorphan.exec.
  • Bug 55435 - ComboStringEditor pode ser simplificado para tornar a maioria das configurações finais
  • Bug 55436 - ComboStringEditor deve implementar ClearGui
  • Bug 55463 - Component.requestFocus() é desencorajado; use requestFocusInWindow() em vez disso
  • Bug 55486 - Novo logotipo do JMeter. Contribuição do UBIK Load Pack (suporte em ubikloadpack.com)
  • Bug 55548 - Limpar o uso de TestElement.ENABLED; use TestElement.isEnabled()/setEnabled() em todo
  • Bug 55617 - Melhorias na coleção jorphan. Contribuição de Benoit Wiart (benoit.wiart em gmail.com)
  • Bug 55623 - Valores de configuração inválidos/inesperados não devem ser ignorados silenciosamente
  • Bug 55626 - Renomear HTTP Proxy Server como HTTP(S) Test Script Recorder

Obrigado

Agradecemos a todos os contribuidores mencionados nas seções de bugs e melhorias acima:

  • Bruno Antunes (bmantunes em gmail.com)
  • Emmanuel Bourg (ebourg em apache.org)
  • Scott Emmons
  • Mikhail Epikhin (epihin-m em yandex.ru)
  • Dzmitry Kashlach (dzmitrykashlach em gmail.com)
  • Luca Maragnani (luca.maragnani em gmail.com)
  • Milâmber
  • Adrian Nistor (nistor1 em illinois.edu)
  • Antonio Gomes Rodrigues (ra0077 em gmail.com)
  • UBIK Load Pack (suporte em ubikloadpack.com)
  • Benoit Wiart (benoit.wiart em gmail.com)

Agradecemos também aos relatores de bugs que nos ajudaram a melhorar o JMeter.
Para esta versão, queremos agradecer especialmente aos seguintes repórteres pelos relatórios claros e testes feitos após nossas correções:
  • Immanuel Hayden (immanuel.hayden em gmail.com)
  • Danny Lade (dlade em web.de)
  • Brent Cromarty (brent.cromarty em yahoo.ca)
  • Wolfgang Heider (wolfgang.heider em racon.at)
  • Shmuel Krakower (shmulikk em gmail.com)
Desculpe se omitimos mais alguém.

Versão 2.9

Novo e notável

Melhorias principais:

* Foi introduzido um novo Extractor que usa CSS ou sintaxe de seletor semelhante a jquery, permitindo usar implementações JODD ou JSOUP

Resultado: o título da página em uma variável JMeter

* O JMeter agora pode lidar com diferentes tipos de documentos (PDF, arquivos do MsOffice, arquivos do Apache OpenOffice, …) em diferentes elementos

  • Extrator de Expressão Regular, extraia texto de documentos
  • Assertion Response, verifique o texto nos documentos
  • Exibir Árvore de Resultados, exibir como texto os documentos

* Um novo pré-processador de parâmetros de usuário Regex que permite injetar nomes e valores de parâmetros de entrada usando uma referência extraída pelo Extrator de Expressão Regular de uma resposta anterior

* TCP Sampler: novas opções

O TCP Sampler foi aprimorado com novas opções para permitir a configuração do valor de byte Close Connection , SO_LINGER e End of line (EOL)

* Uma nova função __escapeOroRegexpChars(,) foi introduzida citação ORO regexp meta caracteres

* ForEach Controller: novos campos

ForEach Controller agora tem 2 novos campos para controlar o início e o fim do loop

* O manipulador de ação de status de resultado agora tem uma nova opção para "Iniciar o próximo loop de thread"

* JMS Publisher: nova opção

O JMS Publisher agora pode enviar mensagens de bytes

* Melhorias de memória e desempenho

Melhorias significativas foram feitas nesta versão no uso de memória por thread e CPU quando mais de um pós-processador é usado como filho de um amostrador

Os elementos JSR223 (habilitados usando Groovy, Scala, … como linguagens de script) foram aprimorados para habilitar o cache de resultados de compilação quando os scripts são passados ​​na área de texto

Alguns padrões de configuração foram alterados para melhorar o desempenho por padrão (veja o Bug 54412 ), veja a descrição na seção Novos e Notáveis.

  • O teste distribuído agora usa MODE_STRIPPED_BATCH, que retorna amostras no modo de lote (a cada 100 amostras ou a cada minuto por padrão). Observe também que MODE_STRIPPED_BATCH retira os dados de resposta de SampleResult, portanto, se você precisar, mude para outro modo (propriedade de modo em jmeter.properties)
  • Os dados do resultado agora são salvos em CSV por padrão (jmeter.save.saveservice.output_format em jmeter.properties)

* XPath Assertion agora permite usar uma variável JMeter como entrada

Melhorias na GUI e na ergonomia:

* O recurso de pesquisa foi aprimorado para pesquisar em mais campos internos de elementos e expandir os resultados da pesquisa

* Copiar/colar agora é possível entre 2 instâncias do JMeter >= versão 2.9

Copie o(s) elemento(s) de uma instância do JMeter:

Cole o(s) elemento(s) em uma segunda instância do JMeter:

* Gerenciador de cabeçalho HTTP

Permitir cópia da área de transferência para HeaderPanel, os cabeçalhos devem ser separados por uma nova linha e ter o seguinte nome de formulário: valor

* Módulo Controlador

O Module Controller foi aprimorado para renderizar melhor o controlador referenciado e expandi-lo clicando em um novo botão

* Servidor proxy HTTP

HTTP Proxy Server agora tem um botão para adicionar um conjunto de exclusões padrão para padrões de URL, esta lista pode ser configurada através da propriedade: proxy.excludes.suggested

* A renderização do controlador de destino foi aprimorada no HTTP Proxy Server

Gravação do servidor proxy HTTP:

* O HTTP Proxy Server agora usa automaticamente a solicitação HTTP com o modo Raw Post Body para amostras que têm apenas um argumento sem nome (JSON, XML, GWT, …)

* HTTP Proxy Server não força o usuário a selecionar o tipo de amostrador nas configurações do amostrador HTTP, isso permite alternar mais facilmente entre as implementações, pois o amostrador não tem mais essa informação definida

* A interface SamplerCreator foi enriquecida para atender aos novos requisitos para provedores de plug-ins

* Agora é possível criar amostrador binário para solicitação POST x-www-form-urlencoded modificando a propriedade proxy.binary.types para adicionar application/x-www-form-urlencoded

* Detecção automática de formato de carimbo de data/hora aprimorada ao ler arquivos CSV

Erros conhecidos

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

Os ouvintes não mostram contagens de iteração quando um If Controller tem uma condição que é sempre falsa desde a primeira iteração (consulte Bug 52496 ). Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).

O amostrador de serviço da Web não considera o status da resposta HTTP para calcular o status de uma resposta, portanto, uma resposta 500 contendo um corpo não vazio será considerada bem-sucedida, consulte Bug 54006 . Para solucionar esse problema, certifique-se de sempre ler a resposta e adicionar um texto de verificação de declaração de resposta dentro da resposta.

Alterar o idioma pode quebrar parte da configuração dos seguintes elementos (veja Bug 53679 ):

  • Configuração do conjunto de dados CSV (o modo de compartilhamento será perdido)
  • Temporizador de taxa de transferência constante (calcular a taxa de transferência com base em será perdido)

Os números que aparecem à esquerda da caixa verde são o número de threads ativos / número total de threads, estes se aplicam apenas a um teste executado localmente; eles não incluem nenhum encadeamento iniciado em sistemas remotos ao usar o modo cliente-servidor (consulte Bug 54152 ).

Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:

[java] AVISO: não foi possível liberar as preferências do usuário:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Não suportado: número de recuo
Isso não afeta a operação do JMeter.

Alterações incompatíveis

O JMeter agora requer um tempo de execução Java 6 ou superior.

Alguns padrões de configuração foram alterados para melhorar o desempenho por padrão (veja Bug 54412 ), veja a descrição na seção Novos e Notáveis.

O amostrador de serviço da Web agora adiciona à solicitação os cabeçalhos definidos por meio do Gerenciador de cabeçalhos, que eram ignorados anteriormente

A propriedade jdbcsampler.cachesize foi removida, anteriormente limitava o tamanho de um cache por conexão de Map < String, PreparedStatement > , também limitava o tamanho desse mapa que continha o PreparedStatement para consultas SQL. Esta limitação provocou um bug Bug 53995 . Ele foi removido, então agora o tamanho desses 2 mapas não é mais limitado. Essa alteração altera o comportamento, pois a partir desta versão nenhum PreparedStatement será fechado durante o teste.

A partir desta versão, há algumas mudanças importantes nos elementos de teste JSR223:

  • Elementos de teste JSR223 que têm um nome de arquivo inválido (não existente ou ilegível) fará com que o teste falhe em vez de fazer o elemento funcionar silenciosamente
  • Em elementos de teste JSR223: responseCodeOk, responseMessageOK e success são definidos antes que o script seja executado, se responseData for definido, ele não será mais substituído por um toString() no valor de retorno do script

Exibir Árvore de Resultados agora considera a resposta com tipo de conteúdo ausente como texto.

No modo de teste remoto, o JMeter agora sai com erro se um dos mecanismos remotos não puder ser configurado, anteriormente ele iniciava o teste com os mecanismos disponíveis.

Correções de bugs

Amostradores e proxy HTTP

  • Não registre mensagens de aviso falsas ao usar downloads incorporados de pool simultâneo com o Cache Manager ou CookieManager
  • Bug 54057 - Opção de proxy para definir usuário e senha na inicialização (-u e -a) não funciona com HTTPClient 4
  • Bug 54187 - A guia de solicitação não mostra os cabeçalhos se a solicitação falhar
  • Bug 53840 - Gravação de proxy: Mensagem de resposta: URLDecoder: Caracteres hexadecimais ilegais no padrão de escape (%) - Para string de entrada: "" "
  • Bug 54351 - fragmentos HC4 e URI estão falhando

Outros Amostradores

  • Bug 53997 - Solicitação estendida do LDAP: Escape e comercial (&), colchete angular esquerdo (<) e colchete angular direito (>) na tag de filtro de pesquisa nos dados de resposta XML
  • Bug 53995 - AbstractJDBCTestElement compartilha PreparedStatement entre multi-threads
  • Bug 54119 - A resposta HTTP 307 não é redirecionada
  • Bug 54326 - AjpSampler enviar arquivo no post lança FileNotFoundException
  • Bug 54331 - AjpSampler lança ponteiro nulo na solicitação GET que está protegida

Controladores

Ouvintes

  • Bug 54088 - O tipo video/f4m é texto, não binário
  • Bug 54166 - ViewResultsTree não pôde renderizar a resposta HTML: lidar com falha ao analisar HTML
  • Bug 54287 - timestamp incorreto no gráfico de tempo de resposta ao usar uma data com hora no campo formato de data
  • Bug 54451 - Response Time Graph reporta tempos errados quando há muitas amostras para o mesmo tempo
  • Bug 54459 - CSVSaveService não lida muito bem com a análise de data

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 54058 - Em HTTP Request Defaults, o valor do campo "Embedded URLs must match: não é salvo se a caixa de seleção "Retrieve All Embedded Resources" não estiver marcada.
  • Bug 54375 - Extrator de Expressão Regular: Quando a sintaxe regex está errada, o pós-processamento é interrompido

Funções

I18N

Em geral

  • Bug 53975 - A substituição de variáveis ​​não funciona com a opção "Atrasar a criação de thread até que seja necessário"
  • Bug 54055 - Exibir árvore de resultados: = os sinais são retirados dos valores dos parâmetros na guia HTTP
  • Bug 54129 - O recurso de pesquisa não encontra texto embora exista em elementos
  • Bug 54023 - Não é possível iniciar o JMeter a partir de um diretório raiz e se o caminho completo da instalação do JMeter contiver um ou mais espaços (Unix/linux)
  • Bug 54172 - Tecla de atalho duplicada não funciona e CTRL+C/CTRL+V/CTRL+V não cancela o evento padrão
  • Bug 54057 - Opção de proxy para definir usuário e senha na inicialização (-u e -a) não funciona com HTTPClient 4
  • Bug 54267 - A configuração Start Next Thread Loop não funciona em grupos de threads personalizados
  • Bug 54413 - DataStrippingSampleSender retorna 0 para o número de bytes de qualquer resposta

Melhorias

Amostradores HTTP

  • Bug 54185 - Permitir strings de consulta em caminhos que começam com HTTP ou HTTPS

Outros amostradores

  • Bug 54004 - Webservice Sampler: Permitir adicionar cabeçalhos para solicitar com o Header Manager
  • Bug 54106 - JSR223TestElement deve verificar a existência do arquivo quando um nome de arquivo é definido em vez de usar o conteúdo da área de texto
  • Bug 54107 - JSR223TestElement: Habilitar compilação e cache de texto de script
  • Bug 54109 - JSR223TestElement: As propriedades SampleResult devem ser definidas antes de inserir o script para permitir que o usuário configure um código diferente
  • Bug 54230 - TCP Sampler, adições das opções "Close Connection", "SO_LINGER" e "End of line(EOL) byte value"
  • Bug 54182 - Suporte ao envio de ByteMessage para JMS Publisher.

Controladores

  • Bug 54131 - ForEach Controller: Adicione o índice inicial e final para fazer loop sobre variáveis
  • Bug 54132 - GUI do controlador de módulo: melhore a renderização do controlador referenciado
  • Bug 54155 - ModuleController: Adicione um botão de atalho para desdobrar a árvore até o controlador referenciado e destacá-lo

Ouvintes

  • Bug 54200 - Adiciona suporte a vários tipos de documentos (como arquivos do Apache OpenOffice, arquivos do MS Office, arquivos PDF, etc.) aos elementos View Results Tree, Assertion Response e Regular Expression Extractor (usando Apache Tika)
  • Bug 54226 - Exibir árvore de resultados: Mostrar resposta mesmo quando o servidor não retornar o cabeçalho ContentType

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 54259 - Introduzir um novo Extractor que usa CSS ou sintaxe de seletor semelhante a jquery
  • Bug 45772 - Pós-processador de parâmetros de usuário RegEx
  • Bug 54160 - Adicionado suporte para declaração xpath para aplicar a uma variável JMeter.

Funções

  • Bug 54189 - Adicionar uma função para citar meta caracteres ORO regexp
  • Bug 54418 - Função UUID

I18N

Em geral

  • Bug 54005 - HTTP Mirror Server: adicione cabeçalhos especiais "X-" para controlar o status da resposta e o conteúdo da resposta
  • Bug 53875 - Incluir padrões sugeridos para filtros de URL no proxy HTTP
  • Bug 54031 - Adicionar dica de ferramenta ao indicador de threads em execução/total
  • A solicitação de serviço Web (SOAP) foi preterida
  • Bug 54161 - Proxy: ser capaz de criar amostrador binário para solicitação POST x-www-form-urlencoded
  • Bug 54154 - HTTP Proxy Server não deve forçar o usuário a selecionar o tipo de amostrador nas configurações do amostrador HTTP
  • Bug 54165 - Servidor Proxy: Melhore a renderização do controlador de destino
  • Bug 46677 - Copiando elementos de teste entre planos de teste
  • Bug 54204 - Manipulador de ação de status de resultado: Adicionar opção iniciar próximo loop de thread
  • Bug 54232 - Recurso de pesquisa: adicione um botão para pesquisar e expandir os resultados
  • Bug 54251 - Adicionar implementação de caixa de seleção tristate
  • Bug 54257 - Aprimore a interface do SamplerCreator para atender aos novos requisitos
  • Bug 54258 - Proxy: Use Raw Post Body quando o Sampler tiver um argumento sem nome, útil para Samplers usando o método POST do tipo JSON, XML, GWT body
  • Bug 54268 - Melhora o uso de CPU e memória
  • Bug 54376 - ScopePanel: Permite configurar escopos com mais precisão
  • Bug 54412 - Alterando os padrões do JMeter para garantir melhores desempenhos por padrão
  • Bug 54414 - Teste remoto não deve iniciar se um dos motores não iniciar corretamente

Alterações não funcionais

  • Bug 53956 - Adicionar capacidade de colar (uma lista de valores) da área de transferência para o Header Manager
  • Atualizado para HttpComponents Client 4.2.3 (de 4.2.1)
  • Atualizado para HttpComponents Core 4.2.3 (de 4.2.2)
  • Bug 54110 - BSFTestElement e JSR223TestElement devem usar superclasse compartilhada para campos comuns
  • Bug 54199 - Mover para Java 6
  • Atualizado para o rinoceronte 1.7R4

Versão 2.8

Novo e notável

Melhorias principais:

Grupo de threads: nova opção de atraso na criação de threads até que seja necessário

Nova opção "Atrasar a criação de threads até que seja necessário" que criará e iniciará threads quando necessário em vez de criá-los na inicialização do teste
Este novo recurso permite executar testes com um grande número de threads de curta duração.

Gerenciador de cookies HTTP (suporte a IPv6)

Adicione a implementação de cookie HTTPClient 4 no JMeter.
O Cookie Manager tem agora a implementação padrão do HC3.1 e uma nova opção de implementação do HC4 (compatível com o endereço IPv6)

Melhorias de memória e desempenho

Melhorias significativas foram feitas nesta versão no uso de memória do JMeterThread

Os elementos JSR223 (habilitar usando Groovy, scala, … como linguagens de script) foram aprimorados para habilitar:

  • uso da interface Compilável quando disponível para aumentar o uso da CPU
  • cache de compilação quando scripts são usados ​​como arquivos
Veja o desempenho do JMeter em todas as versões

Amostrador de processos do SO

Permite definir arquivos para stdout/stderr/stdin.

Solicitação HTTP: verbo PATCH

Adicionar verbo PATCH ao amostrador HTTP

Solicitação HTTP: HTTPClient 4 agora é a implementação padrão

O HTTPClient 4 agora é a implementação de solicitação HTTP padrão (e para o elemento Proxy ao gerar solicitações HTTP).
Anteriormente, o padrão era a implementação Java HTTP (ou seja, a implementação fornecida pela JVM)

Solicitação HTTP

Adicionar filtro de URL incorporado ao controle de padrões de solicitação HTTP (já estava presente para solicitações HTTP)

Diversos

  • Conjunto de dados CSV: novas linhas incorporadas agora são suportadas em dados cotados
  • Os arquivos JMX agora contêm a versão do JMeter que criou o arquivo
  • A versão JMeter agora está disponível como propriedade "jmeter.version"

Melhorias nos relatórios:

Gráfico de tempo de resposta

Adicione um novo gráfico de tempo de resposta do visualizador para desenhar um gráfico de linhas mostrando a evolução do tempo de resposta para um teste

Configurações do gráfico de tempo de resposta

Ver resultados na tabela

Adicionar latência ao ouvinte Exibir resultado na tabela

Gráfico agregado

Pequenas melhorias: a legenda à esquerda ou à direita agora está em 1 coluna (em vez de 1 linha grande), …

Melhorias na GUI e na ergonomia:

Simplificações do servidor proxy HTTP

As opções de HTTPS Spoofing foram removidas do Proxy, pois a gravação HTTPS está diretamente disponível desde o JMeter 2.4.

Servidor proxy HTTP

Permitir que filtros de URL sejam colados da área de transferência

Localizar no JMeter

CTRL + F para o novo recurso Localizar

A tecla ESC agora fecha os pop-ups.

Interface do usuário no GNOME 3

Exiba o título 'Apache JMeter' na barra de título do aplicativo no Gnome 3

Erros conhecidos

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

Os ouvintes não mostram contagens de iteração quando um If Controller tem uma condição que é sempre falsa desde a primeira iteração (consulte Bug 52496 ). Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).

Alterar o idioma pode quebrar parte da configuração dos seguintes elementos (veja Bug 53679 ):

  • Configuração do conjunto de dados CSV (o modo de compartilhamento será perdido)
  • Temporizador de taxa de transferência constante (calcular a taxa de transferência com base em será perdido)

Observe que há um bug no Java em alguns sistemas Linux que se manifesta como o seguinte erro ao executar os casos de teste ou o próprio JMeter:

[java] AVISO: não foi possível liberar as preferências do usuário:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Não suportado: número de recuo
Isso não afeta a operação do JMeter.

Alterações incompatíveis

Ao usar o CacheManager, o JMeter agora armazena em cache as respostas para consultas GET, desde que o cabeçalho Cache-Control seja diferente de "sem cache", conforme descrito na especificação. Além disso, ele não coloca mais entradas obsoletas no Cache para respostas "sem cache". Veja Bug 53521 e Bug 53522

Uma grande mudança ocorreu nos Elementos de Teste JSR223, as variáveis ​​anteriormente configuradas antes da execução do script eram armazenadas no ScriptEngineManager que era criado uma vez por execução, agora o ScriptEngineManager é um singleton compartilhado por todos os elementos JSR223 e apenas o ScriptEngine é criado uma vez por execução, as variáveis ​​configuradas antes da execução do script agora ser armazenada em Bindings criados em cada execução, veja Bug 53365 .

Os elementos de teste JSR223 usando o arquivo Script agora são compilados se o ScriptEngine suportar esse recurso, consulte Bug 53520 .

O atalho para a caixa de diálogo Function Helper agora é CTRL+F1 (CMD + F1 para Mac OS), CTRL+F (CMD+F1 para Mac OS) agora abre a caixa de diálogo Search.

Por padrão, o TestCompiler agora armazena detalhes de quais pares ele viu nas instâncias do Controller, em vez de em um Set estático. [ Bug 53796 ] Isso fornece um comportamento de memória muito melhor para planos de teste de início atrasado, pois a memória usada é proporcional ao número de threads simultâneos. Com o uso de memória do Conjunto estático foi proporcional à contagem total de encadeamentos. É muito improvável que essa alteração cause um problema. O comportamento original pode ser restaurado definindo a propriedade TestCompiler.useStaticSet=true

As opções de HTTPS Spoofing foram removidas do Proxy, pois a gravação HTTPS está diretamente disponível desde o JMeter 2.4.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 53521 - O Gerenciador de Cache deve armazenar em cache o conteúdo com Cache-control=private
  • Bug 53522 - O Cache Manager não deve armazenar nenhuma resposta com o cabeçalho "no-cache" e armazenar outros tipos de Cache-Control com valor max-age
  • Bug 53838 - Pressionar "Stop" não interrompe o amostrador TCP
  • Bug 53911 - JmeterKeystore não permite chave para baixo na lista de certificados

Outros Amostradores

  • Bug 53348 - JMeter JMS Point-to-Point Request-Response sampler não funciona quando Request-queue e Receive-queue são diferentes
  • Bug 53357 - JMS Point to Point relata tempos de resposta muito altos no modo de resposta de solicitação
  • Bug 53440 - A conexão SSL leva a ArrayStoreException no JDK 6 com algum SPI KeyManagerFactory
  • Bug 53511 - amostrador de log de acesso SessionFilter lança NullPointerException - gerenciador de cookies não inicializado corretamente
  • Bug 53715 - JMeter não carrega WSDL

Controladores

Ouvintes

  • Bug 53742 - Quando jmeter.save.saveservice.sample_count é definido como verdadeiro, o tempo decorrido lido pelo ouvinte é sempre igual a 0
  • Bug 53774 - RequestViewRaw não mostra cabeçalhos a menos que samplerData seja não nulo
  • Bug 53802 - Os valores IdleTime não são salvos no log CSV
  • Bug 53874 - Exibir árvore de resultados: se algum parâmetro contendo caracteres especiais como % não for codificado, RequestViewHTTP falhará com java.lang.IllegalArgumentException: URLDecoder: caracteres hexadecimais ilegais no padrão de escape (%) e a resposta não é exibida

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 51512 - Os cookies não são inseridos na solicitação HTTP com o cabeçalho do host IPv6

Funções

I18N

Em geral

  • Bug 53365 - JSR223TestElement deve armazenar em cache ScriptEngineManager
  • Bug 53520 - Elementos JSR223: Use a interface Compilável para melhorar o desempenho em scripts de arquivo
  • Bug 53501 - O temporizador de sincronização bloqueia o teste final.
  • Bug 53750 - TestCompiler salva entradas desnecessárias na coleção de emparelhamento
  • Bug 52266 - Código: Sincronização inconsistente
  • Bug 53841 - CSVSaveService lê o arquivo usando a codificação de arquivo padrão da JVM em vez de usar a configurada em saveservice.properties
  • Bug 53953 Novo: Erro de digitação na documentação do plano de teste do monitor

Melhorias

Amostradores HTTP

  • Bug 53675 - Adicionar verbo PATCH ao amostrador HTTP
  • Bug 53931 - Definir HTTPClient 4 para a solicitação HTTP padrão (e elemento Proxy para gerar as solicitações HTTP). Antes do padrão, era o HTTP Java Sampler
  • Bug 53934 - Remove as opções de falsificação de HTTPS no JMeter HTTP Proxy Server. Desde o JMeter 2.4, o protocolo HTTPS é suportado diretamente pelo proxy

Outros amostradores

  • Bug 55310 - TestAction deve implementar Interruptible
  • Bug 53318 - Adicionar filtro de URL incorporado ao controle de padrões de solicitação HTTP
  • Bug 53782 - Melhore a manipulação do JavaSampler da limpeza do JavaSamplerClient para usar menos memória
  • Bug 53168 - Processo do SO - permite especificação de stdout/stderr/stdin
  • Bug 53844 - Elementos relacionados ao JDBC devem verificar a classe do Nome da Variável que deveria conter a Configuração de Conexão JDBC para evitar ClassCastException

Controladores

  • Bug 53671 - grupo de threads tearDown para ser executado mesmo se o teste de desligamento acontecer

Ouvintes

  • Bug 53566 - Não registre respostas parciais no log do jmeter
  • Bug 53716 - Pequenas melhorias no gráfico agregado: a legenda à esquerda ou à direita agora está em 1 coluna (em vez de 1 linha grande), sem borda para a cor quadrada da referência, reduz a largura em alguns campos
  • Bug 53718 - Adicione um novo visualizador 'Response Time Graph' para desenhar um gráfico de linhas mostrando a evolução do tempo de resposta para um teste
  • Bug 53738 - Acompanhe o número de threads iniciados e concluídos
  • Bug 53753 - Summariser: não adianta exibir tempo fracionário na maioria dos casos
  • Bug 53749 - A interface TestListener pode ser dividida. Isso deve reduzir os requisitos e o processamento de memória por thread, pois apenas os elementos de teste que realmente usam a funcionalidade testIterationStart agora precisam ser manipulados.
  • Bug 53941 - Adicionar latência ao ouvinte da tabela de resultados de exibição

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 53755 - Adicionando uma implementação de cookie HttpClient 4 no JMeter. O Cookie Manager tem agora a implementação padrão do HC3.1 e uma nova opção de implementação do HC4 (compatível com o endereço IPv6)

Funções

  • Bug 51527 - função __time(): adicione outra opção a __time() para fornecer *segundos* desde a época

I18N

Em geral

  • Bug 53364 - Lista de classificação de funções na caixa de diálogo do auxiliar de função
  • Bug 53418 - Nova opção "Atrasar a criação de threads até que seja necessário" que criará e iniciará threads quando necessário, em vez de criá-los na inicialização de teste
  • Bug 42245 - Mostrar senhas claras no Gerenciador de Autorização HTTP
  • Bug 53616 - Exibe o título 'Apache JMeter' na barra de título do aplicativo no Gnome 3
  • Bug 53759 - ClientJMeterEngine executa travessias desnecessárias usando SearchByClass(TestListener)
  • Bug 52601 - CTRL + F para o novo recurso Localizar
  • Bug 53796 - TestCompiler usa conjunto estático que pode crescer enorme
  • Bug 53673 - Adicionar versão do JMeter no arquivo jmx
  • Adicionar suporte para HeapDump ao cliente JMeter não GUI e GUI
  • Bug 53862 - Seria bom ter a versão JMeter disponível como propriedade
  • Bug 53806 - FileServer deve fornecer análise thread-safe
  • Bug 53807 - O conjunto de dados CSV não lida com novas linhas incorporadas em dados citados
  • Bug 53879 - GUI: Permitir que os pop-ups sejam fechados com a tecla ESC
  • Bug 53876 - Permitir que filtros de URL (proxy HTTP) sejam colados da área de transferência

Alterações não funcionais

  • Bug 53311 - JMeterUtils#runSafe não deve gerar erro quando interrompido
  • Atualizado para commons-net-3.1 (de 3.0.1)
  • Atualizado para HttpComponents Core 4.2.2 (de 4.1.4) e HttpComponents Client 4.2.1 (de 4.1.3)
  • Bug 53765 - Mudar para commons-lang3-3.1
  • Bug 53884 - ID de grupo Maven incorreto para commons-lang

Versão 2.7

Novo e notável

Amostrador de processos do SO

Um novo System Sampler que pode ser usado para executar comandos na máquina local.

Exemplo de resultados do OS Process Sampler com o comando de pesquisa DNS 'dig'

Melhorias nos Amostradores JMS

Adição de uma opção "Entrega Não Persistente" para enviar "Não Persistente" (Garantido para ser entregue no máximo uma vez. A perda de mensagens não é uma preocupação.) Mensagens JMS

Suporte ao envio de mensagens de objeto JMS para permitir o envio de objetos não empacotados do XML pelo XStream

Ative a configuração de propriedades JMS por meio do amostrador do JMS Publisher

Amostrador de ação de teste

Permitir saída prematura de um loop

Melhorias no Webservice Sampler

Adicione uma propriedade jmeter soap.document_cache para controlar o tamanho do Document Cache

Tornar a manutenção da sessão HTTP configurável

Gráfico agregado: char de barra agrupada com média, mediana, linha de 90%, colunas mínimas e máximas

Agregar alterações de gráfico ao gráfico de barras agrupadas, adicionar mais colunas (mediana, 90% de linha, mín., máx.) e opções, corrigir alguns bugs

Novas configurações para gráfico agregado

Melhorias no design do relatório HTML gerado pela tarefa JMeter Ant na pasta extras

Exemplo de relatório HTML

Exemplo de relatório HTML com alguns erros de declaração

Visualizador de mala direta

  • Habilite autenticação e segurança de conexão com SSL ou TLS
  • Melhore o design da GUI
  • Adicionar suporte à internacionalização (i18n)

Novo Indicador Visual do número de mensagens de ERRO/FATAL nos logs

O indicador mostra o número de mensagens de ERRO/FATAL nos logs, pode ser clicado para alternar o painel do Visualizador de Log

Caixa de diálogo para mostrar detalhes de uma linha de parâmetro

Adicionar um botão de detalhes na tabela de parâmetros para mostrar detalhes de uma linha

Exemplo de caixa de detalhes

Escritores de plug-ins

A nova interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator foi introduzida para informar se um ConfigTestElement pode ser mesclado no Sampler (consulte Bug 53042 ):

public boolean aplica(ConfigTestElement configElement);

Nova interface org.apache.jmeter.protocol.http.proxy.SamplerCreator para permitir conectar amostradores baseados em HTTP que diferem de amostradores HTTP padrão por meio de proxy durante a fase de gravação (consulte Bug 52674 ):

public String[] getManagedContentTypes();
public HTTPSamplerBase createSampler(solicitação HttpRequestHdr, Map<String, String> pageEncodings, Map<String, String> formEncodings);
public void populateSampler(amostrador HTTPSamplerBase, solicitação HttpRequestHdr, Map<String, String> pageEncodings, Map<String, String> formEncodings) lança exceção;

Erros conhecidos

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

Os ouvintes não mostram contagens de iteração quando um If Controller tem uma condição que é sempre falsa desde a primeira iteração (consulte Bug 52496 ). Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).

Alterações incompatíveis

Ao fazer a substituição de Variáveis ​​Definidas pelo Usuário, o Proxy não substituirá mais os valores parciais quando a "correspondência Regexp" for usada. Ele usará correspondência de palavras Perl 5 ("\b")

Em Variáveis ​​Definidas pelo Usuário, Plano de Teste, Tabela de Argumentos do Amostrador HTTP, Padrões de Solicitação Java, Amostrador e Publicador JMS, Padrões de Solicitação LDAP e Padrões de Solicitação Estendida LDAP, as linhas com Nome e Valor vazios não são mais salvas.

O JMeter agora expande a árvore do Plano de Teste para o nível do plano de teste e não mais e seleciona a raiz da árvore. Além disso, o valor padrão de onload.expandtree é false.

O Ouvinte de Resultados Completos do Gráfico foi removido.

Ao chamar o comando "Clear All", se o Log Viewer for exibido, seu conteúdo será limpo.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 52613 - Usando a opção Raw Post Body, o texto é codificado
  • Bug 52781 - Cabeçalho de disposição de conteúdo ilegível mesmo se os cabeçalhos compatíveis com o navegador estiverem marcados (HC4)
  • Bug 52796 - MonitorHandler falha ao limpar variáveis ​​ao iniciar uma nova análise
  • Bug 52871 - Vários certificados não funcionam com HTTP Client 4
  • Bug 52885 - Proxy: Problemas de gravação com HTTPS, cookies começando com seguro são parcialmente truncados
  • Bug 52886 - Proxy: Problemas de gravação com HTTPS quando a falsificação está ativada, cookies seguros nem sempre são alterados
  • Bug 52897 - HTTPSampler: Usar o método PUT com HTTPClient4 e codificação de conteúdo vazia e enviar arquivos leva a NullPointerException
  • Bug 53145 - HTTP Sampler - função no caminho avaliada muito cedo

Outros Amostradores

  • Bug 51737 - TCPSampler: O pacote é convertido/corrompido
  • Bug 52868 - A lista de idiomas BSF deve ser classificada
  • Bug 52869 - A lista de idiomas JSR223 atualmente usa a lista BSF que está errada
  • Bug 52932 - JDBC Sampler: Sampler não está marcado com erro em uma exceção que não é da classe IOException, SQLException, IOException ocorre
  • Bug 52916 - Exceção JDBC se houver uma variável definida pelo usuário vazia
  • Bug 52937 - Webservice Sampler: Limpar o cache de documentos Soap no final do teste
  • Bug 53027 - JMeter começa a lançar exceções ao usar SMTP Sample em um plano de teste com HTTP Cookie Mngr ou HTTP Request Defaults
  • Bug 53072 - As instruções JDBC PREPARED SELECT devem retornar resultados em variáveis ​​como SELECT não preparado

Controladores

  • Bug 52968 - Opção Start Next Loop in Thread Group não marca o Amostrador de Transação pai com erro quando ocorre um erro
  • Bug 50898 - IncludeController: script de carregamento NullPointerException no modo não-GUI se os Inclusores usarem o mesmo nome de elemento

Ouvintes

  • Bug 43450 - Listeners/Savers assumem que a contagem de SampleResult é sempre 1; fixo Gerar resultados resumidos

Asserções

Funções

I18N

  • Bug 52551 - A caixa de diálogo do auxiliar de função não alterna o idioma corretamente
  • Bug 52552 - A referência de ajuda funciona apenas em inglês

Em geral

  • Bug 52639 - O divisor JSplitPane para o painel de log deve ser ocultado se o log não estiver ativado
  • Bug 52672 - A ação Change Controller exclui todos os samplers filhos, exceto um
  • Bug 52694 - Deadlock na GUI relacionado à GUI de atualização de threads não AWT
  • Bug 52678 - Proxy: Ao fazer substituição de UserDefinedVariables, valores parciais não devem ser substituídos
  • Bug 52728 - O elemento CSV Data Set Config não pode coexistir com o BSF Sampler no mesmo Thread Plan
  • Bug 52762 - Problema com certificados múltiplos: primeiro índice não usado até que os índices sejam reiniciados
  • Bug 52741 - Os valores padrão do TestBeanGUI não funcionam na segunda vez ou depois
  • Bug 52783 - propriedade oro.patterncache.size nunca usada devido à inicialização antecipada
  • Bug 52789 - Proxy com Regexp Matching pode falhar com NullPointerException na Substituição de Valor se o valor for nulo
  • Bug 52645 - Gravação com Proxy leva a OutOfMemory
  • Bug 52679 - Colunas de parâmetros do usuário estreitas
  • Bug 52843 - Amostra headerSize e bodySize não sendo acumulados para subamostras
  • Bug 52967 - A função __P() não podia usar o valor padrão ao executar com servidor remoto no modo GUI.
  • Bug 50799 - Ter um amostrador não HTTP em um plano de teste http impede que vários gerenciadores de cabeçalho funcionem
  • Bug 52997 - JMeter não deve sair sem salvar o Plano de Teste se salvar antes da saída falhar
  • Bug 53136 - Pegar arremessável precisa ser manuseado com cuidado

Melhorias

Amostradores HTTP

Outros amostradores

  • Bug 52775 - JMS Publisher: Adicionar opção de entrega não persistente
  • Bug 52810 - Habilitar a configuração de propriedades JMS por meio do amostrador do JMS Publisher
  • Bug 52938 - Webservice Sampler: Adicione uma propriedade jmeter soap.document_cache para controlar o tamanho do Document Cache
  • Bug 52939 - Webservice Sampler: Tornar o MaintainSession configurável
  • Bug 53073 - Permite atribuir o resultado OUT de um JDBC CALLABLE para variáveis ​​JMeter
  • Bug 53164 - Novo Amostrador de Sistema
  • Bug 53172 - SO Process Sampler - permite a especificação de variáveis ​​de ambiente
  • Bug 52936 - JMS Publisher: Suporte ao envio de mensagens de objeto JMS

Controladores

Ouvintes

  • Bug 52603 - MailerVisualizer: habilitar SSL, TLS e autenticação
  • Bug 52698 - Remover ouvinte de resultados completos do gráfico
  • Bug 53070 - Altere o gráfico agregado para o gráfico de barras agrupadas, adicione mais colunas (mediana, 90% de linha, mín, máx.) e opções, corrigiu alguns bugs
  • Bug 53246 - Mailer Visualizer: melhore o design da GUI e I18N

Temporizadores, asserções, configuração, pré e pós-processadores

Funções

I18N

  • O Mailer Visualizer foi internacionalizado. Tradução francesa adicionada. (veja Bug 53246 )

Em geral

  • Bug 45839 - Ação de teste: permitir saída prematura de um loop
  • Bug 52614 - MailerModel.sendMail tem uma maneira estranha de calcular a configuração de depuração
  • Bug 52782 - Adicionar um botão de detalhes na tabela de parâmetros para mostrar detalhes de uma linha
  • Bug 52674 - Proxy: Adicione um Criador de Amostradores para permitir conectar amostradores baseados em HTTP usando corpo de POST potencialmente não textual (AMF, Silverlight, …) e personalizá-los para outros
  • Bug 52934 - GUI: Plano de teste aberto com a árvore expandida para o nível do plano de teste e não mais e selecione a raiz da árvore
  • Bug 52941 - Melhorias no design do relatório HTML gerado pela tarefa JMeter Ant extra
  • Bug 53042 - Introduzir um novo método na interface do Sampler para permitir que o Sampler decida se um elemento de configuração se aplica ao Sampler
  • Bug 52771 - Documentação: Adicionado feed RSS na página inicial do JMeter no link "Assine o que há de novo"
  • Bug 42784 - Mostra o número de erros registrados na GUI
  • Bug 53256 - O comando Tornar claro tudo limpa o conteúdo do LogViewer
  • Bug 53261 - Adicione o contador "Error/fatal" no Bug 42784 , abra o painel do Log Viewer quando o indicador de aviso for clicado

Alterações não funcionais

  • Atualizado para o rinoceronte 1.7R3 (era js-1.7R2.jar). Nota: as coordenadas do Maven para o jar foram alteradas de rhino:js para org.mozilla:rhino. Isso não afeta o JMeter diretamente, mas pode causar problemas ao usar o JMeter em um projeto Maven com outro código que dependa de uma versão anterior do jar Rhino Javascript.
  • Bug 52675 - Refatorar Proxy e HttpRequestHdr para permitir a criação de amostrador por proxy
  • Bug 52680 - Mencione a versão em que a função foi introduzida
  • Bug 52788 - HttpRequestHdr: Otimize o código para evitar trabalho inútil
  • A tarefa JMeter Ant (ant-jmeter-1.1.1.jar) foi atualizada de 1.0.9 para 1.1.1
  • Atualizado para commons-io 2.2 (de 2.1)
  • Bug 53129 - Atualize o XStream de 1.3.1 para 1.4.2
  • Atualizado para httpcomponents-client 4.1.3 (de 4.1.2)
  • Guia de teste distribuído JMeter atualizado (jmeter_distributed_testing_step_by_step.pdf). Altera o formato de origem para OpenOffice odt (de sxw)

Versão 2.6

Novo e notável

Barra de ferramentas

Uma nova barra de ferramentas na janela principal do JMeter

Botão de teste de início do JMeter

Uma nova opção de menu e botão permitem iniciar um teste ignorando os temporizadores de pausa

Aparência e comportamento da interface gráfica do JMeter

Permitir que System ou CrossPlatform LAF seja definido no menu de opções

GUI JMeter - nó duplicado

Adicione "nó duplicado" no menu de contexto

Visualização em árvore do JMeter - recurso de pesquisa

Funcionalidade para pesquisar por palavra-chave em Samplers Tree View

Solicitação HTTP - painel de solicitação bruta

Melhore a GUI de solicitação HTTP para mostrar melhor os parâmetros sem nome (solicitação GWT RPC ou solicitação SOAP, por exemplo)

Solicitação HTTP - outras alterações

  • Permitir seleção múltipla no painel de argumentos
  • Permitir adicionar (colar) entradas da área de transferência em uma lista de argumentos
  • Capacidade de mover variáveis ​​para cima ou para baixo na solicitação HTTP

Solicitação HTTP - protocolo de arquivo

Melhor suporte para arquivo: protocolo no amostrador HTTP

Recupere recursos incorporados com arquivo: protocolo

Solicitação HTTP - Falha ao ignorar recursos incorporados

Ativar "ignorar falha" para recursos incorporados

O sucesso do pai com um recurso incorporado falhou

Visualizar resultados na tabela - exibição de amostra filho

Adicionar opção ao TableVisualiser para exibir amostras filho em vez de pai

Armazenamento de chaves - vários certificados

Permitindo vários certificados (JKS)

Melhorias no gráfico agregado

Algumas melhorias no Aggregate Graph Listener:

  • nova GUI para configurações
  • tamanho do gráfico dinâmico
  • permite alterar fontes para gráfico de título e legenda
  • permite alterar a cor da barra (fundo e valores de texto)
  • permitir desenhar ou não contornos de barras
  • permite selecionar apenas alguns amostradores por um filtro regexp
  • permite definir a escala máxima do eixo Y

Barra de gráfico agregado

Contador - nova opção de reset

Adicione uma opção para redefinir o contador em cada iteração do Thread Group

Funções

  • Adicione uma nova função __RandomString para gerar Strings aleatórias
  • Adicione uma nova função __TestPlanName retornando o nome do "Test Plan" atual
  • Adicione uma nova função __machineIP retornando o endereço IP
  • Adicione uma nova função __jexl2 para suportar Jexl2

Melhorias na variável definida pelo usuário

  • Adicionar um campo de comentário em Variáveis ​​Definidas pelo Usuário
  • Permitir adicionar (colar) entradas da área de transferência em uma lista de argumentos
  • Capacidade de mover variáveis ​​para cima ou para baixo em variáveis ​​definidas pelo usuário

Ver árvore de resultados

Em Exibir Árvore de Resultados, em vez de mostrar apenas uma mensagem se os resultados forem muito grandes, mostre o resultado que estiver configurado

Controladores - elementos de mudança

Adicione a capacidade de alterar os elementos do controlador

Pré e pós-processador JDBC

Adicionar pré e pós-processador JDBC

Opção de isolamento de transação JDBC

Permitir definir o isolamento da transação na configuração de conexão JDBC

Temporizador de Poisson

Adicione um temporizador baseado em Poisson

Interação GUI e SO

Suporte para arrastar e soltar arquivos.

Confirme a caixa de diálogo Remover

Adicione uma caixa de diálogo para confirmar a remoção do(s) elemento(s) quando a ação Remover for chamada

O diálogo pode ser ignorado definindo a propriedade JMeter confirm.delete.skip=true

Suporte a lotes remotos

Use armazenamento externo para armazenar amostras durante o teste distribuído, Adicionado o remetente de amostra remoto DiskStore: como Hold, mas salva amostras em disco até o final do teste

Amostrador de Assinante JMS

Com o Assinante JMS, capacidade de usar seletores

Novo painel do registrador

Um novo Log Viewer foi adicionado à GUI e pode ser ativado no menu Options → Log Viewer:

Este Log Viewer mostra o arquivo jmeter.log e é útil (por exemplo) para depurar scripts BeanShell/BSF:

O item de menu Opções / Escolher idioma agora está totalmente funcional

O item de menu Opções / Escolher idioma agora altera todo o texto exibido para o novo idioma, desde que todas as mensagens sejam traduzidas. Você pode ajudar nisso traduzindo para o seu idioma.

Suporte ao formato Legacy JMX e JTL Avalon restaurado

O suporte para leitura/gravação do formato XML Avalon original de arquivos JMX (script) e JTL (resultado de amostra) foi descartado no JMeter versão 2.4. O JMeter agora pode ler os arquivos no formato Avalon novamente, porém não há suporte para salvar arquivos no formato antigo.

Jars JMeter disponíveis no repositório Maven

Jars JMeter agora estão disponíveis no repositório Maven.

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI (veja Bugs 40671, 41286, 44973, 50898). Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

Os ouvintes não mostram contagens de iteração quando um If Controller tem uma condição que é sempre falsa desde a primeira iteração (consulte Bug 52496 ). Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).

Alterações incompatíveis

As versões do JMeter desde 2.1 falharam ao criar uma amostra de contêiner ao carregar recursos incorporados. Isso foi corrigido; ainda pode reverter para o comportamento do Bug 51939 definindo a seguinte propriedade: httpsampler.separate.container=false

O servidor espelho agora usa a porta padrão 8081, era 8080 antes de 2.5.1.

O TCP Sampler trata SocketTimeoutException, SocketException e InterruptedIOException de forma diferente desde 2.6, quando isso ocorre, o Sampler é marcado como com falha.

As implementações de Sample Sender agora resolvem sua configuração no lado do cliente desde 2.6. Esse comportamento pode ser alterado com a propriedade sample_sender_client_configured (defina-a como false).

O elemento de teste HTTP User Parameter Modifier foi removido; está obsoleto há muito tempo.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 51932 - CacheManager não lida com cabeçalho de controle de cache com nenhum atributo após max-age
  • Bug 51918 - Tráfego compactado GZIP produz erros, quando várias conexões são permitidas
  • Bug 51939 - Deve gerar uma nova amostra pai, se necessário, ao recuperar recursos incorporados
  • Bug 51942 - Problema de sincronização no CacheManager quando o download simultâneo é usado
  • Bug 51957 - A obtenção simultânea pode travar se uma tarefa não for concluída
  • Bug 51925 - Chamar Stop on Test vaza threads do executor quando o download simultâneo de recursos está ativado
  • Bug 51980 - HtmlParserHTMLParser conta duas imagens usadas em links
  • Bug 52064 - Risco de OutOfMemory no CacheManager
  • Bug 51919 - Random ConcurrentModificationException ou NoSuchElementException em CookieManager#removeMatchingCookies ao usar o download simultâneo
  • Bug 52126 - HttpClient4 não limpa cookies entre iterações
  • Bug 52129 - O tamanho do corpo relatado está errado ao usar o HTTP Client 4 e a conexão Keep Alive
  • Bug 52137 - Problemas com o Gerenciador de Cache HTTP
  • Bug 52221 - Exceção Nullpointer com uso Retrieve Embedded Resource sem HTTP Cache Manager
  • Bug 52310 - variável no IPSource falhou na solicitação HTTP se "Tamanho do pool simultâneo" estiver ativado
  • Bug 52371 - API Incompatibilidade - Métodos em HTTPSampler2 agora requerem PostMethod em vez de HttpMethod[Base]. Revertido para os tipos originais.
  • Bug 49950 - Proxy: IndexOutOfBoundsException ao gravar com o servidor Proxy
  • Bug 52409 - HttpSamplerBase#errorResult modifica sampleResult passado como parâmetro; código de correção que assume que uma nova instância é criada (ou seja, ao adicionar uma subamostra)
  • Bug 52507 - Excluir modificador de parâmetros do usuário Http (obsoleto, obsoleto)

Outros Amostradores

  • Bug 51996 - vazamento de contexto inicial do JMS Contexto recém-criado quando vários threads entram InitialContextFactory#lookupContext ao mesmo tempo
  • Bug 51691 - A autorização não funciona para JMS Publisher e JMS Subscriber
  • Bug 52036 - Falha de assinatura durável com ActiveMQ devido à falta do campo clientId
  • Bug 52044 - O Assinante JMS usado com muitos encadeamentos leva a javax.naming.NamingException: Algo já vinculado ao ActiveMQ
  • Bug 52072 - LengthPrefixedBinaryTcpClientImpl pode encerrar uma amostra prematuramente
  • Bug 52390 - AbstractJDBCTestElement: vazamento de memória e problema de sincronização no perConnCache

Controladores

  • Bug 51865 - Loop infinito dentro do grupo de threads não funciona corretamente se a opção "Iniciar próximo loop após um erro de amostra" estiver definida
  • Bug 51868 - Muitas exceções no jmeter.log ao usar a opção "Start next loop" para thread
  • Bug 51866 - Counter under loop não funciona corretamente se a opção "Start next loop on error" estiver definida para o grupo de threads
  • Bug 52296 - TransactionController + Children ThrouputController ou InterleaveController leva a ERROR sampleEnd chamado duas vezes java.lang.Throwable: Sequência de chamada inválida quando o TPC não executa amostra
  • Bug 52330 - Com next-Loop-On-Error após amostras de erro não serem executadas no próximo loop

Ouvintes

  • Bug 52357 - Exibir resultados na tabela não permite várias amostras de resultados
  • Bug 52491 - Análise incorreta de parâmetros de dados Post na visualização Tree Listener/Http Request

Asserções

  • Bug 52519 - XMLSchemaAssertion usa JMeter JVM file.encoding em vez de codificação de resposta

Funções

  • O exemplo CRLF para a função char estava errado; CRLF=(0xD,0xA), não (0xC,0xA)

I18N

Em geral

  • Bug 51937 - JMeter não lida bem com a entrada ausente do TestPlan
  • Bug 51988 - A configuração do conjunto de dados CSV não resolve o delimitador padrão para análise de cabeçalho quando o campo de variáveis ​​está vazio
  • Bug 52003 - Exibir árvore de resultados "Rolar automaticamente" não rola corretamente caso os nós sejam expandidos
  • Bug 27112 - Parâmetros do usuário devem usar barras de rolagem
  • Bug 52029 - O desligamento da linha de comando só é enviado para o último mecanismo que foi iniciado
  • Bug 52093 - As dicas de ferramentas da barra de ferramentas não mudam o idioma
  • Bug 51733 - SyncTimer está confuso se você interromper um plano de teste
  • Bug 52118 - Nova barra de ferramentas: botões de desligamento e parada não desabilitados quando nenhum teste está sendo executado
  • Bug 52125 - StatCalculator.addAll(StatCalculator calc) junções incorretas se houver mais amostras com o mesmo tempo de resposta em um dos TreeMap
  • Bug 52339 - O modo estatístico JMeter em testes distribuídos mostra o tempo de resposta errado
  • Bug 52215 - Sincronização confusa no StatVisualizer, SummaryReport, Summariser e problema no StatGraphVisualizer
  • Bug 52216 - TableVisualizer: campo currentData está mal sincronizado
  • Bug 52217 - ViewResultsFullVisualizer: problemas de sincronização na raiz e treeModel
  • Bug 43294 - Problemas de namespace do XPath Extractor
  • Bug 52224 - TestBeanHelper não suporta NOT_UNDEFINED == Boolean.FALSE
  • Bug 52279 - Mudar para outro idioma perde ícones na Árvore e registra erro Não é possível obter a classe GUI de…
  • Bug 52280 - O item de menu Opções / Escolher idioma não altera todo o texto exibido para o novo idioma
  • Bug 52376 - StatCalculator#addValue(T val, int sampleCount) deve usar long, não int
  • Bug 49374 - A codificação de URLs de elementos incorporados depende da propriedade file.encoding
  • Bug 52399 - URLRewritingModifier usa file.encoding padrão para corresponder ao conteúdo de texto
  • Bug 50438 - o código calcula a média com matemática inteira, esperando valor duplo
  • Bug 52469 - Mudanças no suporte de SSH-Tunneling de tráfego RMI para teste remoto
  • Bug 52466 - Recurso de plano de teste de atualização: NameUpdater não atualiza propriedades
  • Bug 52503 - Unificar arquivo → Fechar e janela fechar comportamento de salvamento de arquivo
  • Bug 52537 - A ajuda não rola para corrigir a âncora quando o arquivo é carregado pela primeira vez

Melhorias

Amostradores HTTP

  • Bug 51981 - Melhor suporte para arquivo: protocolo no amostrador HTTP
  • Bug 52033 - Permitindo vários certificados (JKS)
  • Bug 52352 - Proxy: Suporta captura de URLs IPv6
  • Bug 44301 - Ativar "ignorar falha" para recursos incorporados

Outros amostradores

  • Bug 51419 - Assinante JMS: capacidade de usar seletores
  • Bug 52088 - JMS Sampler: Adicione um seletor quando REQUEST/RESPONSE for escolhido
  • Bug 52104 - TCP Sampler lida com erros graves
  • Bug 52087 - A interface TCPClient não permite leituras parciais
  • Bug 52115 - SOAP/XML-RPC não deve enviar uma solicitação POST quando o arquivo a ser enviado não for encontrado
  • Bug 40750 - TCPSampler: Comportamento quando os soquetes são fechados pelo host remoto
  • Bug 52396 - TCP Sampler no "modo de conexão de reutilização" reutiliza a conexão do sampler anterior mesmo se estiver configurado com outro host, porta, usuário ou senha
  • Bug 52048 - BSFSampler, BSFPreProcessor e BSFPostProcessor devem compartilhar a mesma GUI

Controladores

Ouvintes

  • Bug 52022 - Em Exibir Árvore de Resultados, em vez de mostrar apenas uma mensagem se os resultados forem muito grandes, mostre o resultado que estiver configurado
  • Bug 52201 - Adicionar opção ao TableVisualiser para exibir amostras filho em vez de pai
  • Bug 52214 - Salvar respostas em um arquivo - melhorar o algoritmo de nomenclatura
  • Bug 52340 - Permitir que o modo de amostragem remota seja alterado em tempo de execução
  • Bug 52452 - Melhorias no Aggregate Graph Listener (GUI e configurações)
  • OldSaveService ressuscitado para permitir a leitura de arquivos JTL (resultado) no formato Avalon

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 52128 - Adicionar pré e pós-processador JDBC
  • Bug 52183 - SyncTimer pode ser melhorado (desempenho + confiabilidade)
  • Bug 52317 - Counter: Adicionada opção para redefinir o contador em cada iteração do Thread Group
  • Bug 37073 - Adicione um temporizador baseado em Poisson
  • Bug 52497 - Melhorar DebugSampler e DebugPostProcessor

Funções

  • Bug 52006 - Crie uma função RandomString para gerar Strings aleatórias
  • Bug 52016 - Seria útil suportar Jexl2
  • A função __char() agora suporta valores octais
  • Nova função __machineIP retornando o endereço IP
  • Bug 51091 - Nova função retornando o nome do "Plano de Teste" atual

I18N

Em geral

  • Bug 51892 - A porta de espelho padrão deve ser diferente da porta de proxy padrão
  • Bug 51817 - Movendo variáveis ​​para cima e para baixo no controle de Variáveis ​​Definidas pelo Usuário
  • Bug 51876 - Funcionalidade para pesquisar em Samplers TreeView
  • Bug 52019 - Adicionar opção de menu para iniciar um teste ignorando os temporizadores de pausa
  • Bug 52027 - Permitir que System ou CrossPlatform LAF seja definido no menu de opções
  • Bug 52037 - Lembre-se de LaF definido pelo usuário durante as reinicializações.
  • Bug 51861 - Melhorar a GUI de solicitação HTTP para mostrar melhor os parâmetros sem nome (solicitações GWT RPC, por exemplo) (EM DESENVOLVIMENTO)
  • Bug 52040 - Adicionar uma barra de ferramentas na janela principal do JMeter
  • Bug 51816 - Campo Comentário no controle de Variáveis ​​Definidas pelo Usuário.
  • Bug 52052 - Usando um delimitador para separar mensagens de resultado para assinante JMS
  • Bug 52103 - Adicionar opção de rolagem automática ao visualizador de tabela
  • Bug 52097 - Salvar como deve apontar para a mesma pasta que foi usada para abrir um arquivo se a lista MRU for usada
  • Bug 52085 - Permitir seleção múltipla no painel de argumentos
  • Bug 52099 - Permite definir o isolamento da transação na configuração de conexão JDBC
  • Bug 52116 - Permitir adicionar (colar) entradas da área de transferência para uma lista de argumentos
  • Bug 52160 - Não exibe itens TestBeanGui que são sinalizados como ocultos
  • Bug 51886 - Configuração do SampleSender resolvida parcialmente no cliente e parcialmente no servidor
  • Bug 52161 - Habilite plugins para adicionar suas próprias regras de tradução além de upgrade.properties. Carrega quaisquer propriedades adicionais encontradas nos arquivos META-INF/resources/org.apache.jmeter.nameupdater.properties
  • Bug 42538 - Adicionar "nó duplicado" no menu de contexto
  • Bug 46921 - Adicionada a capacidade de alterar os elementos do controlador
  • Bug 52240 - TestBeans deve suportar Boolean, Integer e Long
  • Bug 52241 - GenericTestBeanCustomizer assume que o valor padrão é a string vazia
  • Bug 52242 - FileEditor não permite que a saída seja salva em um arquivo
  • Bug 51093 - ao carregar uma seleção previamente armazenada por "Salvar Seleção como", mostrar o nome do arquivo na barra azul da janela
  • Bug 50086 - Campos de senha não ocultos no JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler e Database Configuration
  • Bug 29352 - Use armazenamento externo para armazenar amostras durante o teste distribuído, Adicionado remetente de amostra remoto DiskStore: como Hold, mas salva amostras em disco até o final do teste.
  • Bug 52333 - Reduza a sobrecarga no cálculo de SampleResult#nanoTimeOffset
  • Bug 52346 - Shutdown detecta se há encadeamentos não-daemon restantes que impedem a saída da JVM.
  • Bug 52281 - Suporte para arrastar e soltar arquivos
  • Bug 52471 - Melhore o desempenho do servidor espelho usando o pool de threads em vez de iniciar um thread para cada solicitação
  • OldSaveService ressuscitado para permitir a leitura de arquivos JMX no formato Avalon (removido na versão 2.4)
  • Adicione uma caixa de diálogo para confirmar a remoção do(s) elemento(s) quando a ação Remover for chamada
  • Bug 41788 - Visualizador de log (janela do console) necessário como opção
  • Inclua a opção para alterar o tempo de pausa (padrão 2000ms) no encadeamento do daemon que verifica a saída bem-sucedida da JVM. O encadeamento não é iniciado agora, a menos que o tempo de pausa seja maior que 0.

Alterações não funcionais

  • correções para build.xml: scripts de suporte; localizar nomes de propriedades reutilizáveis
  • Bug 51923 - Bug de função de contador ou problema de documentação? (documentos fixos)
  • Atualize o velocity.jar para 1.7 (de 1.6.2)
  • Atualize js.jar para 1.7R3 (de 1.6R5)
  • Atualizar o codec comum 1.5 ⇒ 1.6
  • Atualizar commons-io 2.0.1 ⇒ 2.1
  • Atualizar commons-jexl 2.0.1 ⇒ 2.1.1
  • Atualizar jdom 1.1 ⇒ 1.1.2
  • Atualizar junho 4.9 ⇒ 4.10
  • Bug 51954 - Documentos gerados incluem </br> entradas que causam linhas extras em branco
  • Bug 52075 - JMeterProperty.clone() atualmente retorna Object; ele deve retornar JMeterProperty
  • Atualizado httpcore para 4.1.4
  • Bug 49753 - Por favor, publique os artefatos do jMeter no repositório central do Maven

Versão 2.5.1

Resumo das principais alterações

  • O amostrador HttpClient4 agora reutiliza as conexões corretamente (anteriormente, ele usava uma por amostra, o que poderia causar esgotamento de recursos rapidamente).
  • Várias correções para samplers JMS
  • As funções não são mais invocadas falsamente quando usadas com um elemento de configuração
  • A GUI do amostrador WebService foi reorganizada para melhor design e mais facilidade de uso. Algumas melhorias no assistente de configuração WSDL
  • Melhor manuseio do desligamento de teste. System.exit agora só é chamado se não houver outra opção; mesmo isso pode ser desativado.

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI. Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

O controlador If pode causar um loop infinito se a condição for sempre falsa desde a primeira iteração. Uma solução é adicionar um amostrador no mesmo nível (ou superior) do controlador If. Por exemplo, um amostrador de ação de teste com 0 tempo de espera (que não gera uma amostra) ou um amostrador de depuração com todos os campos definidos como False (para reduzir o tamanho da amostra).

O item de menu Opções / Escolher idioma não altera todo o texto exibido para o novo idioma. [O comportamento melhorou, mas a mudança de idioma ainda não está funcionando totalmente] Para substituir totalmente o idioma local padrão, defina a propriedade "language" do JMeter antes de iniciar o JMeter.

Alterações incompatíveis

Os amostradores HttpClient4 e Commons HttpClient 3.1 anteriormente usavam uma contagem de repetição de 3. Isso foi alterado para o padrão 1, para ser compatível com a implementação Java. A contagem de novas tentativas pode ser substituída definindo a propriedade JMeter relevante, por exemplo:

httpclient4.retrycount=3
httpclient3.retrycount=3

Correções de bugs

Amostradores e proxy HTTP

  • Corrija o amostrador HttpClient 4 para que ele reutilize instâncias e conexões HttpClient sempre que possível.
  • Correção temporária para amostrador HC4 para contornar HTTPCLIENT-1120.
  • Bug 51863 - Muitas conexões ESTABELECIDAS com implementação HttpClient 4 (vs HttpClient 3.1 impl)
  • Bug 51750 - Recuperar todos os recursos incorporados não segue IFRAME
  • Bug 51752 - O cache HTTP é quebrado ao usar "Recuperar todos os recursos incorporados" com pool simultâneo
  • Bug 39219 - Servidor HTTP: Você não pode pará-lo após Arquivo → Abrir
  • Bug 51775 - Número de porta duplicado no cabeçalho do Host ao capturar por HttpClient (3.1 e 4.x)
  • Bug 50617 - A legenda dos resultados do monitor mostra o servidor "morto", embora os valores do servidor sejam recuperados

Outros Amostradores

  • Bug 50424 - Caixa de lista suspensa de métodos da Web inconsistente
  • Bug 43293 - Campos de solicitação de Java não limpos ao criar um novo amostrador
  • Bug 51830 - Webservice Soap Request aciona muitos pop-ups quando a URL WSDL do Webservice está inativa
  • Solicitação de WebService (SOAP) - adicione um tempo limite de conexão para obter o wsdl usado para preencher os métodos da Web quando o servidor não responder
  • Bug 51841 - JMS: Se ocorrer um erro no construtor ReceiveSubscriber ou no Publicador, as conexões permanecerão abertas
  • Bug 51691 - A autorização não funciona para JMS Publisher e JMS Subscriber
  • Bug 51840 - JMS: Cache de InitialContext tem alguns problemas
  • Bug 47888 - JUnit Sampler reutiliza objeto de teste

Controladores

  • If Controller - Corrigido duas regressões introduzidas pelo Bug 50032 (veja o Bug 50618 também)
  • If Controller - Captura um StackOverflowError quando uma condição retorna sempre false (após pelo menos uma iteração com retorno true) Veja Bug 50618
  • Bug 51869 - Exceção NullPointer ao usar o Include Controller

Ouvintes

Asserções

Funções

  • Bug 48943 - As funções são invocadas mais vezes quando usadas em combinação com um elemento de configuração

I18N

  • Solicitação de WebService (SOAP) - adicione I18N para alguns rótulos

Em geral

  • Bug 51831 - Não é possível desabilitar o servidor UDP ou alterar a porta UDP máxima
  • Bug 51821 - Adicionar atalho para habilitar/desabilitar (sub)árvore ou ramificações no plano de teste.
  • Bug 47921 - Variáveis ​​não liberadas para GC após a saída do JMeterThread.
  • Bug 51839 - "… fim de execução" impresso prematuramente
  • Bug 51847 - Alguns testes JUnit são sensíveis à localidade e falham se a localidade for diferente dos EUA
  • Bug 51855 - As amostras pai podem ter tempos decorridos ligeiramente imprecisos
  • Bug 51880 - O comando de desligamento não está funcionando se eu invocá-lo antes que todos os threads sejam iniciados
  • O item de menu do host Remote Shut não estava sendo ativado.
  • Bug 51888 - Deadlock ocasional ao interromper um plano de teste

Melhorias

Amostradores HTTP

  • Bug 51380 - Controlar a reutilização de contexto SSL em cache de iteração para iteração
  • Bug 51882 - HTTPHC3Client usa uma contagem de repetição padrão de 3, torne-o configurável; o padrão agora é 1
  • Altere a contagem de novas tentativas do amostrador HttpClient 4 padrão para 1

Outros amostradores

  • Beanshell Sampler agora suporta interface Interruptible
  • Bug 51605 - Solicitação de WebService(SOAP) - O valor do campo WebMethod muda sub-repticiamente para todas as solicitações quando um valor é selecionado em uma solicitação
  • Solicitação de WebService (SOAP) - GUI reorganizada para melhor design e mais facilidade de uso

Controladores

Ouvintes

  • Bug 42246 - Necessidade de uma opção 'auto-scroll' em "View Results Tree" e "Assertion Results"
  • Exibir árvore de resultados: Regexp Tester - pequenas melhorias na interface do usuário

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 51885 - Permitir uma variável JMeter como entrada para XPathExtractor

Funções

I18N

Em geral

  • Bug 51822 - (parte 1) salve 1 invocação de GuiPackage#getCurrentGui
  • Adicionado AsynchSampleSender que envia amostras do servidor para o cliente de forma assíncrona.
  • Atualizado para htmlparser 2.1; Java Mail 1.4.4; JUnit 4.9

Alterações não funcionais

  • Bug 49976 - A visibilidade de FormCharSetFinder é padrão em vez de pública.
  • Bug 50917 - Propriedade CookieManager.save.cookies não respeitada quando definida a partir do plano de teste
  • Melhore o registro de erros quando erros de Javascript são detectados.
  • Rodapé de documentação atualizado

Versão 2.5

Resumo das principais alterações

  • A implementação HTTP agora pode ser selecionada em tempo de execução, e o JMeter agora também suporta Apache HttpComponents HttpClient 4.x. Observe que o Commons HttpClient 3.1 não é mais desenvolvido ativamente e o suporte pode ser removido do JMeter em uma versão futura.
  • O amostrador HTTP agora permite downloads simultâneos de recursos incorporados em uma página HTML
  • O HTTP Sampler agora pode relatar o tamanho de uma solicitação antes da descompactação.
  • Os amostradores JMS e Mail foram aprimorados.
  • O novo elemento de teste de fragmento de teste facilita o uso de controladores de inclusão
  • Existem várias melhorias no Ouvinte da Árvore de Resultados da Visualização
  • Bug 30563 - Thread Group deve ter uma opção start next loop no Sample Error
  • Existem dois novos tipos de grupos de threads - setUp e tearDown - que são executados antes e depois dos principais grupos de threads.
  • O modo cliente-servidor agora suporta parada/encerramento externo via UDP
    . Várias instâncias do servidor JMeter podem ser iniciadas no mesmo host sem a necessidade de alterar a propriedade da porta.
  • Bug 50516 - O cabeçalho "Host" no HTTP Header Manager não está incluído na solicitação HTTP gerada

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI. Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

O item de menu Opções / Escolher idioma não altera todo o texto exibido para o novo idioma. [O comportamento melhorou, mas a mudança de idioma ainda não está funcionando totalmente] Para substituir totalmente o idioma local padrão, defina a propriedade "language" do JMeter antes de iniciar o JMeter.

Alterações incompatíveis

Os métodos não suportados não são mais convertidos em GET pelo amostrador Commons HttpClient.

Removido o método public static long currentTimeInMs(). Isso foi substituído pelo método de instância public long currentTimeInMillis().

ProxyControl.getSamplerTypeName() agora retorna uma String em vez de um int. Isso é interno ao funcionamento do JMeter Proxy e sua GUI, portanto, não deve afetar nenhum código de usuário.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 50178 - HeaderManager adicionado como filho de Thread Group pode criar nomes de HeaderManager concatenados e OutOfMemoryException
  • Bug 50392 - o valor é aparado ao enviar a solicitação em Multipart
  • Bug 50686 - Log de HeaderManager muito detalhado ao mesclar instâncias
  • Bug 50963 - AjpSampler lança java.lang.StringIndexOutOfBoundsException
  • Bug 50516 - O cabeçalho "Host" no HTTP Header Manager não está incluído na solicitação HTTP gerada
  • Bug 50544 - No Apache Common Log as solicitações HEAD causam problemas.
  • Bug 51268 - A solicitação HTTPS por meio de um proxy inválido causa NullPointerException e não aparece na árvore de resultados. Em vez de delegar ao manipulador de encadeamento do JMeter falhas "inesperadas", certifique-se de que todas as exceções gerem um erro de amostra.
  • Bug 51275 - Cookie Panel clearGui() define a política padrão incorreta no Java 1.6

Outros Amostradores

  • Bug 50173 - JDBCSampler descarta ResultSet de um PreparedStatement
  • Certifique-se de que o Amostrador JSR223 tenha acesso ao SampleResult atual
  • Bug 50977 - Não é possível definir o TCP Sampler para amostras individuais

Controladores

  • Bug 50032 - Last_Sample_Ok junto com outros controladores não funcionam corretamente quando o grupo de threads tem vários loops
  • Bug 50080 - O controlador de transação cria amostras incorretamente, incluindo a duração do temporizador
  • Bug 50134 - TransactionController: Relata tempo de resposta ruim quando contém outros TransactionControllers

Ouvintes

  • Bug 50367 - Limpar / Limpar tudo na árvore de resultados de exibição não limpa o elemento selecionado

Asserções

  • Bug 51488 - Asserção: O escopo do nome da variável é compartilhado entre todas as asserções (e Bug 51255 )

Funções

  • Bug 50568 - Função __FileToString(): Não foi possível ler o arquivo quando a opção de codificação está em branco/vazia

I18N

Em geral

  • Bug 49734 - Exceção de ponteiro nulo no comando stop Threads (Executar → Parar)
  • Bug 49666 - Cabeçalho CSV lido como dados após EOF
  • Bug 45703 - Sincronizando Temporizador
  • Bug 50088 - corrige getAvgPageBytes no SamplingStatCalculator para que ele retorne o que deveria
  • Bug 50203 Não é possível definir a propriedade "jmeter.save.saveservice.default_delimiter=\t"
  • mirror-server.sh - corrige o caminho de classe para usar: separador (não ;)
  • Bug 50286 - Modificador de reescrita de URL: o valor jsessionid extraído está incorreto quando está entre as tags XML
  • System.nanoTime() tende a flutuar em relação a System.currentTimeMillis(). Altere SampleResult para recalcular o deslocamento a cada vez. Habilite também a reversão usando somente System.currentTimeMillis().
  • Bug 50425 - Remover grupos de threads do menu de adição do controlador
  • Bug 50675 - Configuração do Conjunto de Dados CVS incompatível com Inicialização Remota Corrigida a inicialização do RMI para fornecer a localização do arquivo JMX em relação ao user.dir.
  • Bug 50221 - Renomear elementos na árvore não redimensiona o rótulo
  • Bug 51002 - Parar Thread se o arquivo CSV não estiver disponível. JMeter agora trata IOError como EOF.
  • Defina sun.net.http.allowRestrictedHeaders=true por padrão. Isso corrige o Bug 51238 .
  • Bug 51645 - CSVDataSet não lê arquivos UTF-8 quando file.encoding é UTF-8

Melhorias

Amostradores HTTP

  • AJP Sampler agora implementa Interruptible
  • Permitir que a implementação HTTP seja selecionada em tempo de execução
  • Bug 50684 - Opcionalmente desabilite Content-Type e Transfer-Encoding em Multipart POST
  • Bug 50943 - Permitindo downloads simultâneos de recursos incorporados na página html
  • Bug 50170 - Bytes relatados pelo amostrador http é após GUnZip
    Adicionar propriedades opcionais para permitir alterar o método para obter o tamanho da resposta
  • Escondendo a senha do proxy no HTTP Sampler (apenas na GUI, não no arquivo JMX)

Outros amostradores

  • Bug 49622 - Permitir o envio de mensagens sem assunto (SMTP Sampler)
  • Bug 49603 - Permitir aceitar certificados expirados no Mail Reader Sampler
  • Bug 49775 - Permitir o envio de mensagens sem corpo
  • Bug 49862 - Melhora a saída da solicitação SMTPSampler.
  • Bug 50268 - Adiciona destinos estáticos e dinâmicos ao JMS Publisher
  • Assinante JMS - Adicionar destino dinâmico
  • Bug 50666 - JMSSubscriber: suporte para assinaturas duráveis
  • Bug 50937 - O TCP Sampler não fornece / honra o tempo limite de conexão
  • Bug 50569 - Jdbc Request Sampler para armazenar opcionalmente dados do objeto do conjunto de resultados
  • Bug 51011 - Mail Reader: em caso de falha de autenticação, diga o que você tentou

Controladores

  • Bug 50475 - Introdução de um elemento de teste de fragmento de teste para um fluxo de inclusão melhor

Ouvintes

  • Exibir árvore de resultados - Adicione uma caixa de texto de diálogo na guia "Resultado do amostrador → Analisado" para exibir o valor longo com um clique duplo na célula
  • Bug 37156 - Visualização formatada da solicitação na árvore de resultados
  • Bug 49365 - Permitir que o conjunto de resultados seja gravado no arquivo em um caminho relativo ao script carregado
  • Bug 50579 - A contagem de erros é longa, a contagem de amostras é int. Contagem de amostra alterada para longa.
  • Exibir árvore de resultados - Adicionar novos campos de tamanho: cabeçalhos de resposta e corpo de resposta (em bytes) - derivados do Bug 43363

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 48015 - Proposta de novos ícones para pré-processador, pós-processador e elementos de asserção
  • Bug 50962 - A validação SizeAssertionGui impede o uso de variáveis ​​para o tamanho
  • Asserção de tamanho - Adicionar escopo de tamanho de resposta (completo, cabeçalhos, corpo, código, mensagem) - derivado do Bug 43363

Funções

  • Bug 49975 - Nova função retornando o nome do sampler atual

I18N

  • Adicione a tradução francesa para os novos rótulos e reduza o tamanho de alguns rótulos (por abreviação) no exemplo HTTP

Em geral

  • Bug 30563 - Thread Group deve ter uma opção start next loop no Sample Error
  • Bug 50347 - As instruções de configuração do Eclipse devem lembrar o usuário de baixar jars dependentes
  • Bug 50490 - Aprimoramentos de configuração e pós-grupo de threads para melhor fluxo de teste.
  • Todos os elementos de teste do BeanShell agora têm as variáveis ​​de script "prev" e "Label" definidas.
  • Bug 50708 - A ordem do jar do classpath no NewDriver não está em ordem alfabética
  • Bug 50659 - O servidor JMeter não suporta testes simultâneos - impede que o cliente inicie outro
  • Adicionada funcionalidade de desligamento remoto
  • O mecanismo Client JMeter agora suporta parada/desligamento externo via UDP
  • O desligamento do UDP agora pode usar uma variedade de portas, de jmeterengine.nongui.port=4445 a jmeterengine.nongui.maxport=4455, permitindo várias instâncias do JMeter no mesmo host sem a necessidade de alterar a propriedade da porta.
  • Atualizado para httpcore 4.1.3 e httpclient 4.1.2

Alterações não funcionais

  • Bug 50008 - Permitir que BatchSampleSender seja subclassificado
  • Bug 50450 - use a cópia do System.array no jacobi solver pois, sendo nativo, é mais performático.
  • Bug 50487 - runSerialTest verifica objetos que nunca precisam persistir
  • Use Thread.setDefaultUncaughtExceptionHandler() em vez de ThreadGroup privado
  • Atualização para Commons Net 3.0

Versão 2.4

Resumo das principais alterações

  • O JMeter agora requer pelo menos Java 1.5.
  • HTTP Proxy agora pode gravar sessões HTTPS.
  • O amostrador JUnit agora suporta anotações JUnit4.
  • Adicionados elementos de teste JSR223 (javax.script).
  • O MailReader Sampler agora pode usar qualquer protocolo suportado pela implementação subjacente.
  • Um amostrador SMTP foi adicionado.
  • O JMeter agora permite que os usuários forneçam suas próprias implementações de grupos de threads.
  • Exibir árvore de resultados agora suporta mais opções de exibição, incluindo pesquisa e teste de Regex.
  • O desempenho do StatCalculator é muito aprimorado; Relatório agregado etc. precisam de muito menos memória.
  • Os amostradores JMS foram amplamente retrabalhados e não devem mais perder mensagens. O processamento de correlação é aprimorado. O Editor e Assinante JMS agora suportam Tópicos e Filas.
  • Muitas outras melhorias foram feitas, veja abaixo e no manual.

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI. Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

O item de menu Opções / Escolher idioma não altera todo o texto exibido para o novo idioma. [O comportamento melhorou, mas a mudança de idioma ainda não está funcionando totalmente] Para substituir totalmente o idioma local padrão, defina a propriedade "language" do JMeter antes de iniciar o JMeter.

Alterações incompatíveis

O redirecionamento HTTP agora é padronizado para "Seguir redirecionamentos" em vez de "Redirecionar automaticamente". Isso permite que o JMeter rastreie os cookies que podem ser enviados durante os redirecionamentos. Isso não afeta os planos de teste existentes; ela afeta apenas o padrão para novos Amostradores HTTP.

O formato de arquivo Avalon para arquivos JMX e JTL não é mais suportado. Esses arquivos precisarão ser convertidos lendo-os no JMeter 2.3.4 e salvando-os novamente.

Os elementos XPath Assertion e XPath Extractor não buscam mais DTDs externos por padrão; isso pode ser alterado na GUI.

JMSConfigGui foi renomeado como JMSSamplerGui. Isso não afeta os planos de teste existentes.

O construtor public SampleResult(SampleResult res) foi alterado para se tornar um verdadeiro "construtor de cópia". Ele não chama mais addSubResult(). Isso pode afetar alguns complementos de terceiros.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 47445 - Usar Proxy com cookies seguros de falsificação de https precisa ser desprotegido
  • Bug 47442 - Substituição ausente de https por http para certas condições usando https-spoofing
  • Bug 48451 - Erro em: SoapSampler.setPostHeaders(PostMethod post) no else branch
  • Bug 48542 - SoapSampler usa campo de cabeçalho de resposta errado para decidir se a resposta é codificada em gzip
  • Bug 48568 - CookieManager quebrado para AjpSampler
  • Bug 48570 - AjpSampler não suporta parâmetros de consulta (GET/POST)
  • Bug 46901 - HTTP Sampler não processa var/func refs corretamente no primeiro parâmetro de arquivo
  • Bug 43678 - Manipular o conjunto de caracteres http-equiv da tag META?
  • Bug 49294 - Imagens não baixadas de páginas redirecionadas
  • Bug 49560 - "tamanho em bytes" incorreto ao seguir redirecionamentos

Outros Amostradores

  • Bug 47420 - Solicitação estendida de LDAP não fechando conexões durante a solicitação de adição
  • Bug 48573 - Manipulação de contexto de diretório LDAPExtSampler
  • Bug 47870 - JMSSubscriber falha devido a NPE
  • Bug 47899 - NullPointerExceptions no construtor JMS ReceiveSubscriber
  • Bug 48144 - NPE no JMS OnMessageSubscriber
  • Bug 47992 - JMS Point-to-Point Request - A opção de resposta não funciona
  • Bug 48579 - Single Bind não mostra informações de configuração quando o LdapExt Sampler é acessado
  • Bug 49111 - Erro "Mensagem com ID não encontrado" no amostrador JMS P2P.
  • Bug 47949 - O Assinante JMS nunca recebe todas as mensagens
  • Bug 46142 - Problemas de correlação ponto a ponto JMS
  • Bug 48747 - TCP Sampler engole exceções
  • Bug 48709 - A configuração do TCP Sampler Config "classname" não tem efeito

Controladores

  • Bug 47385 - TransactionController deve definir AllThreads e GroupThreads
  • Bug 47940 - O controlador do módulo cria incorretamente a Sub-árvore de substituição
  • Bug 47592 - Executar grupos de threads consecutivamente com "Stop test" em erro, o JMeter não marcará como concluído
  • Bug 48786 - Executar grupos de threads consecutivamente: com "Stop test now" em erro ou parada manual, o JMeter deixa a caixa verde ativa
  • Bug 48727 - Não é possível parar o teste se todos os grupos de threads estiverem desabilitados

Ouvintes

  • Bug 48603 - Mailer Visualiser envia dois e-mails para uma única resposta com falha
  • Cálculo correto de min/max/std.dev para amostras agregadas (Relatório de resumo)
  • Bug 48889 - Tempo de resposta errado com mode=Statistical e num_sample_threshold > 1
  • Bug 47398 - SampleEvents são enviados duas vezes por RMI em teste distribuído e modo não GUI

Asserções

Funções

I18N

Em geral

  • Bug 47646 - NullPointerException no elemento "variável aleatória"
  • Não permitir a adição de qualquer elemento filho à configuração JDBC
  • BeanInfoSupport agora armazena em cache getBeanDescriptor() - deve evitar um NPE em JVMs não Sun ao usar CSVDataSet (e alguns outros TestBeans)
  • Bug 48350 - Deadlock em testes distribuídos com 2 clientes
  • Bug 48901 - espera infinita adicionando o temporizador de sincronização
  • Bug 49149 - usermanual/index.html tem erro de digitação no link para a página "Expressões regulares"
  • Bug 49394 - Exceção de Classcast em ActionRouter.postActionPerformed
  • Bug 48136 - Arquivos essenciais ausentes do tarball de origem.
    Os arquivos de origem agora contêm todos os arquivos de origem, incluindo os arquivos de origem fornecidos anteriormente apenas nos arquivos binários.
  • Bug 48331 - XpathExtractor não retorna representações de string XML para um Nodeset

Melhorias

Amostradores HTTP

  • Bug 47622 - habilita a gravação de sessões HTTPS
  • Permitir que o Proxy Server seja especificado na GUI do amostrador HTTP e na GUI de configuração HTTP
  • Bug 47461 - Atualizar o Gerenciador de Cache para lidar com o cabeçalho HTTP Expires
  • Bug 48153 - Suporte para cabeçalhos Cache-Control e Expires
  • Bug 47946 - O proxy deve habilitar o agrupamento dentro de um controlador de transação
  • Bug 48300 - Permitir substituição do endereço de origem IP para solicitações HTTP HttpClient
  • Bug 49083 - recolher '/pathsegment/..' em URLs de redirecionamento

Outros amostradores

  • O amostrador JUnit agora suporta testes JUnit4 (usando anotações)
  • Bug 47900 - Permitir que o JMS SubscriberSampler seja interrompido
  • Amostrador JSR223 adicionado
  • Bug 47556 - O campo JMS-PointToPoint-Sampler Timeout deve usar Strings
  • Bug 47947 - Mail Reader Sampler deve permitir que a porta seja substituída
  • Bug 48155 - Vários problemas/aprimoramentos com classes de protocolo JMS
  • Permitir que o amostrador MailReader use protocolos arbitrários
  • Bug 45053 - Amostrador SMTP para JMeter
  • Bug 49552 - Adicionar cabeçalhos de mensagem no SMTPSampler
  • O Editor e Assinante JMS agora suportam Tópicos e Filas. Adicionado tempo limite de leitura para o assinante JMS. Limpeza geral do código JMS.

Controladores

  • Bug 47909 - TransactionController deve somar a latência
  • Bug 41418 - Excluir a duração do temporizador do tempo de execução do Transaction Controller no relatório
  • Bug 48749 - Permitindo grupos de threads personalizados
  • Bug 43389 - Permitir que arquivos de inclusão sejam encontrados em relação ao arquivo JMX atual

Ouvintes

  • Adicionado remetente DataStrippingSample - suporta os modos "Stripped" e "StrippedBatch".
  • Adicionado Visualizador de Asserção de Comparação
  • Bug 47907 - Melhorias (aprimoramentos e I18N) Asserção de Comparação e Visualizador de Comparação
  • Bug 36726 - adicionar função de pesquisa ao Ouvinte de exibição em árvore
  • Bug 47869 - Capacidade de limpar campos de SampleResult
  • Bug 47952 - Adicionado Ouvinte JSR223
  • Bug 47474 - Exibir suporte à árvore de resultados para renderizadores de plug-in
  • Permitir que o tempo ocioso seja salvo em arquivos de log de amostra
  • Bug 48259 - Melhore o desempenho do StatCalculator usando TreeMap
  • Os ouvintes que usam SamplingStatCalculator têm necessidades de memória muito reduzidas, pois o cache de amostra foi movido para a nova classe CachingStatCalculator. Em particular, o Relatório Agregado agora pode lidar com um grande número de amostras.
  • O Relatório Agregado e o Relatório de Resumo agora permitem que os cabeçalhos das colunas sejam opcionalmente excluídos
  • Bug 49506 - Adicionar extensão de arquivo .csv na caixa de diálogo aberta da funcionalidade "ler do arquivo" dos ouvintes
  • Bug 49545 - Visualização formatada (analisada) do Resultado da Amostra na Árvore de Resultados

Temporizadores, asserções, configuração, pré e pós-processadores

  • Bug 47338 - XPath Extractor força a recuperação do documento DTD
  • Asserção de comparação adicionada
  • Bug 47952 - Adicionado pré-processador e pós-processador JSR223
  • Adicionada asserção JSR223
  • Adicionado temporizador BSF e temporizador JSR223
  • Bug 48511 - adicione pai, filho, todas as seleções ao extrator de regex
  • Adicionar seleção de escopo do Sampler ao XPathExtractor
  • Extrator de Expressão Regular, Asserção de Resposta e Asserção de Tamanho agora podem ser aplicados a uma variável JMeter
  • Bug 46790 - A configuração do conjunto de dados CSV deve ser capaz de analisar os cabeçalhos CSV

Funções

I18N

  • Bug 47938 - Adicionando algumas traduções em francês para novos elementos
  • Bug 48714 - adicionar novas mensagens em francês

Em geral

  • Bug 47223 - Desempenho de relatório agregado lento (StatCalculator)
  • Bug 47980 - o nome do host resolve para 127.0.0.1 - não é possível especificar o IP
  • Bug 47943 - DisabledComponentRemover não é usado na classe Start
  • Classe HeapDumper para geração de dumps em tempo de execução
  • Implementação básica do provedor JavaMail somente leitura para leitura de arquivos de correio bruto
  • Bug 49540 - Classifique os menus "Adicionar" em ordem alfabética

Alterações não funcionais

  • Os jars Beanshell, JavaMail e JMS API (Apache Geronimo) agora estão incluídos no arquivo binário.
  • Adicionar suporte ao Editor de Tabelas TestBean
  • Removidas todas as bibliotecas externas do SVN; adicionado download_jars destino Ant
  • Vários arquivos jar atualizados:
    • BeanShell - 2.0b4 ⇒ 2.0b5
    • Codec comum - 1.3 ⇒ 1.4
    • Commons-Coleções - 3.2 ⇒ 3.2.1
    • JTidy ⇒ r938
    • JUnit - 3.8.2 ⇒ 4.8.1
    • Logkit - 1,2 ⇒ 2,0
    • Serializador Xalan = 2.7.1 (anteriormente mostrado erroneamente como 2.9.1)
    • Xerces xml-apis = 1.3.04 (anteriormente mostrado erroneamente como 2.9.1)
    • Alguns arquivos jar foram renomeados.

Versão 2.3.4

Resumo das principais alterações

Esta é uma versão de correção de bug menor, principalmente para corrigir alguns bugs que foram adicionados acidentalmente na versão 2.3.3.

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI. Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

O item de menu Opções / Escolher idioma não altera todo o texto exibido para o novo idioma. [O comportamento melhorou, mas a mudança de idioma ainda não está funcionando totalmente] Para substituir totalmente o idioma local padrão, defina a propriedade "language" do JMeter antes de iniciar o JMeter.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 47321 - Tempo limite de resposta HTTPSampler2 não respeitado

Outros Amostradores

  • Bug 47290 - Loop infinito na pesquisa de fábrica de conexão (JMS)
  • O JDBC Sampler não deve fechar as instruções Prepared ou Callable, pois elas são armazenadas em cache

Controladores

  • Bug 39509 - Controlador de apenas uma vez executando duas vezes

Ouvintes

  • Altere ResultCollector para avisar apenas se o diretório não foi criado
  • Corrige alguns problemas de sincronização em ResultCollector e SampleResult (bloqueios errados estavam sendo usados)

I18N

  • Corrigido bug introduzido na versão 2.3.3: JMeter não inicializa se não houver arquivo messages.properties para o Locale padrão.

Em geral

  • Corrigir problemas com clientes remotos - bug introduzido em 2.3.3
  • Bug 47377 - Tornar o ClassFinder mais robusto e fechar os recursos do arquivo zip
  • Corrige alguns erros na geração da documentação (bug latente revelado em 2.3.3 quando o Velocity foi atualizado)

Melhorias

Outros amostradores

  • Bug 47266 - FTP Request Sampler: permite especificar uma porta FTP, diferente do padrão

Versão 2.3.3

Resumo das principais alterações

A manipulação de encerramento de teste é muito melhorada. O comando "Shutdown" gradual agora espera até que todos os encadeamentos tenham parado e não relata um erro se os encadeamentos não pararem em 5 segundos. O comando imediato "Stop" agora pode ser usado se "Shutdown" demorar muito. Além disso, o comando imediato "Stop" é capaz de interromper samplers que suportam a nova interface Interruptible (por exemplo, HTTP e SOAP, FTP). Isso permite a conclusão imediata de respostas pendentes. Testes de modo não GUI também podem agora receber uma mensagem "Shutdown" ou "Stop". A ação de teste agora suporta uma ação "Parar agora", assim como os elementos Thread Group e Result Status Action Handler Post Processor.

O manuseio de cookies HTTP foi aprimorado e o HTTP POST agora pode usar nomes de arquivos variáveis ​​corretamente. Codificações de caracteres de amostrador HTTP, SOAP/XML-RPC e WebService(SOAP) atualizadas para serem mais consistentes. Os amostradores HTTP agora suportam tempos limite de conexão e resposta (requer JVM 1.5 para o amostrador HTTP Java). Juntamente com as melhorias de fechamento descritas acima, isso deve evitar a maioria dos casos em que uma execução de teste trava. Vários elementos do Header Manager agora são suportados para um único amostrador HTTP. O Proxy Server foi aprimorado e não armazena mais os cabeçalhos "Host" por padrão.

A Solicitação JDBC pode opcionalmente salvar os resultados das instruções Select em variáveis. A solicitação JDBC agora lida com strings entre aspas e UTF-8 e pode manipular tipos de variáveis ​​arbitrárias.

Existem várias novas funções : Função __char(): permite que caracteres Unicode arbitrários sejam inseridos em campos. Função __unescape(): permite que strings com escape Java sejam usadas. Função _unescapeHtml(): decodifica texto codificado em Html. Função __escapeHtml(): codifica texto usando codificação Html. Uma referência a uma função ausente - por exemplo, ${__missing(a)} - agora é tratada da mesma forma que uma variável ausente. Anteriormente, o nome da função - e o { inicial - foram descartados. Isso facilita a depuração dos planos de teste.

Algumas asserções agora podem ser aplicadas a subamostras, bem como (ou em vez de) apenas a amostra pai. Há um novo elemento de configuração de variável aleatória .

Os amostradores JMS foram muito aprimorados (veja os detalhes abaixo). O TCP Sampler agora suporta alguns clientes adicionais e é um pouco mais flexível.

O modo cliente-servidor foi aprimorado e o servidor pode, opcionalmente, usar uma porta RMI fixa, o que deve ajudar na configuração de firewalls.

Várias mudanças no I18N foram feitas; a mudança de idioma funciona melhor (embora ainda não seja perfeita). Há traduções melhoradas para o francês, bem como novas traduções para o polonês e português do Brasil.

O jar do BeanShell agora está incluído no arquivo binário; não há necessidade de baixá-lo separadamente.

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI. Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta corretamente em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

O item de menu Opções  →  Escolher idioma não altera todo o texto exibido para o novo idioma. [O comportamento melhorou, mas a mudança de idioma ainda não está funcionando totalmente] Para substituir totalmente o idioma local padrão, defina a propriedade JMeter " language " antes de iniciar o JMeter.

Alterações incompatíveis

Ao carregar resultados de amostra de um arquivo, os resultados anteriores não são mais apagados. Isso permite mesclar vários arquivos. Se o comportamento anterior for necessário, use o item de menu Executar  →  Limpar ( Ctrl  +  Shift  +  E ) ou Executar  →  Limpar tudo ( Ctrl  +  E ) antes de carregar o arquivo.

Os elementos de teste "Salvar resultados em um arquivo" e "Gerar resultados de resumo" agora são mostrados como Ouvintes. Eles eram mostrados anteriormente como Pós-Processadores, embora sejam implementados como Ouvintes.

O Cookie Manager não salva mais os cookies recebidos como variáveis ​​por padrão. Para salvar cookies como variáveis, defina a propriedade " CookieManager.save.cookies=true ". Além disso, os nomes dos cookies são prefixados com " COOKIE_ " antes de serem armazenados (isso evita a corrupção acidental de variáveis ​​locais) Para reverter ao comportamento original, defina a propriedade " CookieManager.name.prefix= " (um ou mais espaços).

O elemento Counter agora é mostrado como um elemento Configuration. Anteriormente era mostrado como um pré-processador, embora seja implementado como um item de configuração.

As alterações acima afetam apenas os ícones exibidos e os locais nos menus pop-up da GUI. Eles não afetam os planos de teste ou o comportamento do teste.

Os PreProcessors agora são invocados diretamente pela classe JMeterThread, em vez do método TestCompiler#configureSampler(). (JMeterThread lida com os PostProcessors). Isso não afeta os planos de teste ou o comportamento, mas talvez possa afetar os complementos de terceiros (muito improvável).

Movida a subseção Regras de Escopo da Seção 3. "Construindo um Plano de Teste" para a Seção 4. "Elementos de um plano de teste"

O controlador While agora apara os espaços à esquerda e à direita do valor da condição antes de ser comparado com LAST , em branco ou falso.

A variável "threadName" nas funções _jexl() e __javaScript() foi anteriormente escrita incorretamente como "theadName".

Os seguintes métodos obsoletos foram removidos de JOrphanUtils: booleanToString(boolean) e valueOf(boolean). Java 1.4+ tem esses métodos na classe Boolean.

A interface TestElement tem alguns novos métodos:

  • void setProperty(chave de string, valor de string, String dflt)
  • void setProperty(Chave de string, valor booleano, dflt booleano)
  • void setProperty(String chave, valor int)
  • void setProperty(String key, int value, int dflt)
  • int getPropertyAsInt(String key, int defaultValue)
Eles são implementados na classe AbstractTestElement, que todos os elementos devem estender, portanto, é improvável que isso cause um problema.

Correções de bugs

Amostradores e proxy HTTP

  • Bug 46332 - HTTP Cookie Manager ignora cookies definidos manualmente (bug introduzido em r707810)
  • O Cookie Manager não estava passando a política de cookies para threads de tempo de execução, então eles sempre usavam o modo de compatibilidade
  • Adicionar atributo de versão à classe JMeter Cookie (necessário para suporte adequado a cookies)
  • O Cookie Manager agora salva/restaura versões de cookies
  • Verifique a validade dos cookies antes de armazená-los.
  • HTTPSamplers agora podem usar variáveis ​​em nomes de arquivos POSTados
  • Corrige o processamento do primeiro nome de arquivo em HTTP POST para que funções/variáveis ​​funcionem (bug introduzido com suporte a vários arquivos)
  • Bug 45831 - WS Sampler relata taxa de transferência incorreta se a criação do pacote SOAP falhar
  • Codificações de caracteres de amostrador HTTP, SOAP/XML-RPC e WebService (SOAP) atualizadas para serem mais consistentes
  • Bug 46148 - O amostrador HTTP falha em solicitações SSL quando o log para jmeter.util está definido como DEBUG
  • Corrigir o erro https do Java 1.6: java.net.SocketException: Soquetes desconectados não implementados
  • Bug 46838 - se não houver dados, ainda precisa definir a latência no HTTPSampler
  • Bug 46993 - Salvar do Header Manager gera ClassCastException
  • Bug 46690 - tratamento de redirecionamentos 302 com caminhos relativos inválidos. O JMeter agora remove os segmentos "../" principais estranhos (assim como muitos navegadores)
  • Bug 44521 - variáveis ​​vazias para um POST na solicitação HTTP não são ignoradas
  • Bug 46977 - JMeter não lida com cabeçalhos HTTP não delimitados por espaços em branco
  • Correção de bug no arquivo HTTP: manipulação - ler bytes, não caracteres na codificação padrão.
  • Remova o Host dos cabeçalhos salvos pelo servidor Proxy, pois normalmente será gerado pela pilha HTTP
  • Bug 45199 - não tente substituir variáveis ​​em branco na gravação de proxy
  • Altere a falsificação de HTTPS para que https: os links sejam substituídos mesmo quando a correspondência de URL falhar
  • Bug 46436 - Melhore o relatório de erros no Proxy Gui
  • Bug 46435 - Mensagem de erro mais detalhada para o erro 501 (Proxy Server)

Outros Amostradores

  • Os objetos "prev" e "sampler" agora são definidos para elementos de teste BSF
  • Corrigir NPE (em DataSourceElement) ao usar JDBC no modo cliente-servidor
  • Bug 45425 - Solicitação JDBC não suporta Unicode (amostrador alterado para usar UTF-8)
  • Bug 46522 - "Dados de resposta" incorretos na amostra JDBC quando os nomes das colunas estão ausentes
  • Bug 46821 - JDBC select request não armazena a primeira coluna nas variáveis
  • Bug 43791 - certifique-se de que o QueueReceiver esteja fechado no amostrador JMS Point to Point
  • Bug 46016 - evite possível NPE no JMSSampler
  • Bug 46142 - Receptor JMS agora usa MessageID
  • Bug 45458 - Point to Point JMS em combinação com autenticação
  • Bug 45460 - Os elementos JMS TestPlan dependem da propriedade do recurso
  • Várias correções de segurança de thread do ReceiveSubscriber
  • Correções do JMSPublisher e do Assinante: segurança de encadeamento, suporte a mudanças dinâmicas de localidade, independência de localidade para valores de atributo JMX
  • O FTP Sampler agora efetua logout antes de desconectar.
  • O amostrador TCP agora chama os métodos setupTest() e teardownTest()
  • Bug 45887 - TCPSampler: propriedade de tempo limite definida incorretamente

Controladores

  • Corrija o NPE ao usar controladores de transação aninhados com amostras pai
  • Corrige o processamento do modo pai do Transaction Controller para que o amostrador atual seja definido como amostrador real
  • Bug 44941 - Os controladores de taxa de transferência não devem compartilhar contadores globais
  • Bug 47120 - Controlador de taxa de transferência: altera o percentual de execuções para o total de execuções, o valor é armazenado em uma String e interpretado como 1 execução
  • Bug 47150 - ThreadGroup com uma contagem de loop de zero causa loop infinito
  • Bug 47009 - Inserir pai fez com que o nome do controlador filho fosse redefinido
  • Bug 47165 - Usar nomes de controlador de módulo duplicados no modo de linha de comando causa NPE

Ouvintes

  • A documentação do Mailer Visualizer agora concorda com o código, ou seja, as contagens de falha/sucesso precisam ser excedidas para acionar o e-mail.
  • Mailer Visualizer agora mostra a contagem de falhas
  • Mailer Visualiser - corrige a análise de vários endereços de e-mail ao usar o botão Testar
  • Bug 45976 - arquivo de resultado incompleto ao usar testes remotos com mais de 1 servidor
  • Corrija o Summariser para que funcione no modo cliente-servidor
  • Bug 34096 - Amostras duplicadas não eliminadas ao gravar em arquivos CSV
  • Salvar a configuração "Incluir nome do grupo no rótulo" nos relatórios agregados e de resumo
  • A variável JMeter "sample_variables" é enviada para todas as instâncias do servidor para garantir que os dados estejam disponíveis para o cliente.
  • CSVSaveService - verifique o EOF ao ler a string entre aspas

Asserções

  • Bug 45749 - Asserção de resposta não funciona com uma substring que é uma RE inválida
  • Bug 45904 - Permitir que a declaração de resposta 'Não' seja bem-sucedida com amostra nula

Funções

  • Corrigir a função regex - estava falhando ao processar $m$mid$n$ corretamente
  • Proteja contra possível NPE em RegexFunction se chamado durante o desligamento do teste.
  • Evite NPE se a função XPath não corresponder a nenhum nó
  • Corrija o nome da variável "theadName" para "threadName" nas funções __jexl() e __javaScript()
  • Uma referência a uma função ausente - por exemplo, ${__missing(a)} - agora é tratada da mesma forma que uma variável ausente. Anteriormente, o nome da função - e o { inicial - foram descartados.

I18N

  • Corrigido o tratamento de mudança de idioma para menus (ainda não funciona para TestBeans)
  • Adicione HeaderAsPropertyRenderer para dar suporte a nomes de recursos de cabeçalho; use isso para corrigir alterações de localidade em vários elementos da GUI
  • Bug 46424 - correções na tradução francesa
  • Bug 46844 - O rótulo "Biblioteca" no plano de teste não é I18N
  • Bug 47064 - correções para Mac LAF
  • Bug 47127 - Não é possível alterar o idioma para pl_PL
  • Bug 47137 - Rótulos na Árvore de Resultados da Visualização não são I18N
  • Bug 46423 - I18N do Proxy Recorder
  • Bug 45928 - O Sampler AJP/1.3 não recupera seu rótulo de messages.properties

Em geral

  • Solicitar a substituição de um arquivo existente ao salvar um novo plano de teste pela primeira vez
  • Altere TestBeans para mostrar o menu pop-up correto para Listeners
  • Bug 45185 - O delimitador em branco do conjunto de dados CSV causa OOM
  • Corrija classificações de GUI incorretas: "Salvar resultados em um arquivo" e "Gerar resultados de resumo" agora são mostrados como ouvintes. "Contador" agora é mostrado como um elemento de configuração.
  • Bug 41608 - mensagem de log de aviso enganosa removida
  • Bug 46359 - O pré-processador JavaScript BSF não pode acessar a variável sampler na primeira iteração (Implementar uma solução temporária para BSF-22)
  • Bug 46407 - Elementos BSF não carregam arquivos de script, tentam interpretar o nome do arquivo como script
  • Melhor tratamento de exceções durante o desligamento do teste
  • Correção de possível problema de segurança de thread na classe JMeterThread
  • Bug 46491 - Valor incorreto para a última variável em "CSV Data Set Config" (erro no processamento de strings entre aspas)

Melhorias

Amostradores HTTP

  • Bug 45479 - Suporte para vários nós do HTTP Header Manager
  • Os amostradores HTTP agora oferecem suporte a tempos limite de conexão e solicitação (requer Java 1.5 para amostrador Java Http)
  • O Apache SOAP 2.3.1 não fornece acesso ao código/mensagem de resposta HTTP, portanto, o amostrador de WebService agora trata uma resposta vazia como um erro
  • O servidor espelho agora suporta o cabeçalho "X-Sleep" - se estiver definido, o thread de resposta aguardará o número especificado de milissegundos
  • Bug 45694 - Suporta logs compactados GZIP no Access Log Sampler

Outros amostradores

  • A Solicitação JDBC pode opcionalmente salvar os resultados das instruções Select em variáveis.
  • JDBC Request agora lida com strings entre aspas.
  • A solicitação JDBC agora lida com tipos de variáveis ​​arbitrárias.
  • Dados de resultado LDAP agora formatados com quebras de linha
  • Bug 45200 - MailReaderSampler: armazena toda a mensagem MIME no SamplerResult
  • Bug 45571 - Aprimoramento de correlação do JMS Sampler
  • Bug 46030 - Estender o amostrador TCP para dar suporte a dados binários prefixados por comprimento
  • Adicionar campo de nome de classe às GUIs do TCP Sampler

Controladores

  • Permitir que o controlador if use expressões variáveis ​​(não apenas Javascript)
  • Apare os espaços da condição do controlador While antes de comparar com o LAST, em branco ou falso

Ouvintes

  • Salvar As respostas a um arquivo podem salvar o(s) nome(s) de arquivo gerado(s) em variáveis.
  • Adicionar opção para pular a geração de sufixos em Salvar respostas em um arquivo
  • Bug 43119 - Salvar respostas no arquivo: opcionalmente omita o número do arquivo
  • Adicionar elemento BSF Listener
  • Bug 47176 - Monitorar resultados: melhorar o gráfico de status de carregamento
  • Bug 40045 - Permitir que o monitor de resultados selecione um conector específico
  • Leia arquivos XML JTL com mais eficiência - passe amostras para visualizadores à medida que são lidas, em vez de salvá-los todos e depois processá-los

Asserções, configuração, pré e pós-processadores

  • Bug 45903 - permite que asserções se apliquem a subamostras
  • Adicione a opção de origem Body (sem escape) ao Extrator de Expressão Regular.
  • Variável aleatória - novo elemento de configuração para criar variáveis ​​numéricas aleatórias

Funções

  • Adicione OUT e variáveis ​​de log à função __jexl()
  • Use Script para avaliar a função __jexl() para que possa ter várias instruções.
  • Adicionar variável de log à função __javaScript()
  • Função __char() adicionada: permite que caracteres Unicode arbitrários sejam inseridos em campos.
  • Função __unescape() adicionada: permite que strings com escape Java sejam usadas.
  • Adicionada função __unescapeHtml(): decodifica texto codificado em Html.
  • Adicionada função __escapeHtml(): codifica texto usando codificação Html.

I18N

  • Bug 45929 - traduções francesas melhoradas
  • Bug 47132 - traduções do português brasileiro
  • Bug 46900 - traduções em polonês
  • Adicionada a propriedade locales.add para permitir novas localidades

Em geral

  • Permitir espaços nos nomes de caminho do JMeter (aplicar solução alternativa para Java Bug 4496398 )
  • Processe JVM_ARGS por último nos arquivos de script para que os usuários possam substituir as configurações padrão
  • Bug 46636 - Permitir que o modo servidor use opcionalmente uma porta rmi fixa
  • Torne alguns samplers interrompíveis: HTTP (ambos), SoapSampler, FTPSampler
  • A ação de teste agora suporta a ação "Parar agora", assim como os elementos Thread Group e Result Status Post Processor
  • Os itens de Menu Parar e Desligar agora se comportam melhor. O desligamento agora aguardará até que todos os threads saiam. No modo GUI, ele pode ser cancelado e parar a execução. Parar agora informa se alguns encadeamentos não sairão e sairá se estiver sendo executado no modo não GUI
  • Adicione o servidor UDP para aguardar a mensagem de desligamento se estiver executando no modo não GUI; adicione o cliente UDP para enviar a mensagem.
  • Bug 41209 - JLabeled* e dicas de ferramentas
  • Inclua o jar do BeanShell 2.0b4 no download binário.

Alterações não funcionais

  • Introduza a classe AbstractListenerGui para facilitar a criação de ouvintes sem saída visual
  • Asserções são executadas após PostProcessors; alterar a ordem dos menus pop-up de acordo
  • Remova métodos clone() desnecessários de classes de função
  • Invocação do PreProcessor movida para a classe JMeterThread
  • Feito o campo HashTree Map final
  • Melhore o desempenho de chamar ResultCollector#isSampleWanted() para várias amostras
  • Atualizado para novas versões de: xmlgraphics-commons (1.3.1), jdom (1.1), xstream (1.3.1), velocidade (1.6.2)

Versão 2.3.2

Resumo das principais alterações

Correções de bugs

A versão 2.3.1 mudou a forma como os tipos de conteúdo binário e de texto eram determinados no que dizia respeito ao View Results Tree Listener: originalmente tudo, exceto os tipos de conteúdo "image/" eram considerados texto, mas 2.3.1 introduziu uma verificação para tipos de conteúdo específicos. Isso causou problemas, pois vários tipos populares foram omitidos e não foram mais exibidos por padrão na guia Resposta. Em vez de tentar listar todos os tipos de texto possíveis, o JMeter agora apenas verifica os seguintes tipos binários:

  • imagem/*
  • áudio/*
  • vídeo/*
Todos os outros tipos são agora assumidos como texto.

O JMeter 2.3.1 introduziu um bug no Cookie Manager - se "Limpar Cookie a cada iteração" fosse selecionado, todos os threads veriam os mesmos cookies. Este bug foi corrigido.

Melhorias

O servidor proxy agora pode registrar solicitações binárias. Por padrão, os tipos de conteúdo application/x-amf e application/x-java-serialized-object serão tratados como binários e salvos em um arquivo. Para alterar os tipos de conteúdo, atualize a propriedade proxy.binary.types .

O elemento de configuração CSV Dataset tem novas opções de compartilhamento de arquivos: por grupo de encadeamentos, por encadeamento, por identificador. Isso permite um processamento de arquivos mais flexível, por exemplo, cada thread pode processar os mesmos dados na mesma ordem.

O Switch Controller agora funciona corretamente com funções e variáveis, e a condição agora pode ser um nome em vez de um número. O Controlador Simples agora funciona corretamente em um Controlador While

Os campos CSV em arquivos JTL agora podem conter delimitadores. Arquivos CSV e XML agora podem conter variáveis ​​adicionais (defina a propriedade JMeter sample_variables ).

A Asserção de Resposta agora pode corresponder em substrings (ou seja, não em expressão regular). O extrator Regex pode operar em variáveis.

O processamento XPath é aprimorado; Erros de arrumação são tratados melhor.

Botões Salvar dados da tabela adicionados aos relatórios Resumo e Agregado para permitir o fácil salvamento dos dados calculados.

Os samplers HTTP agora podem salvar apenas o hash MD5 de respostas, em vez de toda a resposta. Como um caso especial, se o caminho do HTTP Sampler começar com "http://" ou "https://", ele será usado como o URL completo, substituindo os campos host e port. Os Amostradores HTTP agora podem POSTAR vários arquivos. O Webservice(SOAP) Sampler agora pode carregar arquivos WSDL locais usando o protocolo "file:".

Um gerenciador de cache HTTP simples foi adicionado. Isso precisa de mais desenvolvimento.

View Results Tree Listener agora usa Tidy para exibir XML. Isso deve permitir que mais conteúdo seja exibido com sucesso. Também evita a necessidade de baixar arquivos DTD remotos, o que pode diminuir consideravelmente a renderização.

O amostrador MailReader agora suporta os protocolos POP3S e IMAPS. E-mails individuais agora são adicionados como subamostras.

Várias melhorias no BSF Sampler: agora suporta Jexl e o bug do Javascript funciona corretamente. Adicionados elementos de teste BSF PreProcessor, PostProcessor e Assertion. Todos agora têm acesso ao objeto Propriedades JMeter "props".

O número de classes carregadas no modo não GUI é muito reduzido.

Erros conhecidos

O Include Controller tem alguns problemas no modo não-GUI. Em particular, pode causar um NullPointerException se houver dois controladores de inclusão com o mesmo nome.

O controlador Once Only se comporta bem em um Thread Group ou Loop Controller, mas, caso contrário, seu comportamento não é consistente (ou claramente especificado).

O item de menu Opções / Escolher idioma não altera todo o texto exibido para o novo idioma. Para substituir o idioma local padrão, defina a propriedade "language" do JMeter antes de iniciar o JMeter.

Alterações incompatíveis

  • Para reduzir o número de classes carregadas no modo não-GUI, as funções só serão encontradas se o nome da classe contiver a string '.functions'. e não contém a string '.gui.'. Todas as funções existentes do JMeter estão em conformidade com essa restrição. Para reverter ao comportamento anterior, comente ou altere as propriedades classfinder.functions.* em jmeter.properties.
  • O parâmetro de valor de referência para intSum() agora é opcional. Como consequência, se um nome de variável for usado, ele não deve ser um inteiro válido.
  • A implementação TCPClient fornecida não trata mais tcp.eolByte=0 como especial. Para pular a verificação de EOL, defina tcp.eolByte=1000 (ou algum outro valor que não seja um byte válido)
  • Espaços à esquerda e à direita são cortados de nomes de variáveis ​​em chamadas de função. Por exemplo, ${__Random(1,63, LOTTERY )} usará a variável 'LOTTERY' em vez de 'LOTTERY'.
  • A sincronização foi removida da classe RunningSample (de qualquer forma, não era totalmente threadsafe). Os desenvolvedores de complementos de terceiros que usam a classe podem precisar sincronizar o acesso.

Correções de bugs

  • Verifique se o delimitador CSV é razoável.
  • Corrija o Switch Controller para funcionar corretamente com funções e variáveis
  • Bug 44011 - aplicativo/soap+xml não tratado como um tipo de texto
  • Bug 43427 - Simple Controller é executado apenas parcialmente no loop While
  • Bug 33954 - Stack Overflow nos controladores If/While (pode ter sido corrigido anteriormente)
  • Bug 44022 - Memory Leak ao fechar o plano de teste
  • Bug 44042 - Regressão no Cookie Manager (Bug introduzido em 2.3.1)
  • Bug 41028 - O servidor JMeter não alerta o usuário quando o host é definido como um endereço de loopback
  • Bug 44142 - A função __machineName causa NPE se os parâmetros forem omitidos.
  • Bug 44144 - JMS ponto a ponto: teste de resposta de solicitação não funciona
  • Bug 44314 - Não é possível adicionar mais de um SyncTimer
  • Capture a saída de erro do console Tidy e registre-a
  • Corrigir problemas usando Tidy (analisador tolerante) no XPath Assertion e XPath Extractor
  • Bug 44374 - melhora o cálculo do temporizador
  • O Extrator de Expressão Regular agora exclui todas as variáveis ​​obsoletas de partidas anteriores.
  • Bug 44707 - A execução de teste remoto altera o plano de teste interno
  • Bug 44625 - Não é possível ter dois ou mais samplers FTP com ações "put" e "get" diferentes
  • Bug 40850 - Vazamento de memória do BeanShell
  • Certifique-se de que ResponseCode e ResponseMessage estejam configurados para amostras JDBC bem-sucedidas
  • FTPSampler agora detecta e relata falha ao abrir o arquivo remoto
  • Os diretórios de classe definidos em search_paths e user.classpath não precisam mais de "/" à direita
  • Bug 44852 A solicitação SOAP/ XML-RPC não mostra os detalhes da solicitação na árvore de resultados da visualização
  • WebService(SOAP) Sampler ResponseData agora inclui os EOLs enviados pelo servidor
  • Bug 44910 - fecha o soquete anterior (se houver) no TCP Sampler
  • Bug 44912 - Filtro não funciona no Log Parser
  • A documentação do componente BeanShell e BSF fez algumas referências incorretas ao objeto "SampleResponse"; isso foi corrigido para "SampleResult"
  • BSF Sampler agora funciona corretamente com Javascript
  • Ação de teste "Parar teste" agora funciona
  • Bug 42833 - A classe de argumento usa LinkedHashMap em getArgumentsAsMap() para preservar a ordenação
  • Bug 45093 - SizeAssertion não chamou getBytes()
  • Bug 45007 - Reescrever cabeçalhos de localização ao usar falsificação de proxy HTTPS
  • Use CRLF em vez de LF no Proxy ao retornar cabeçalhos ao cliente
  • Bug 45007 - corrige o cabeçalho do tamanho do conteúdo se o conteúdo pode ter sido alterado

Melhorias

  • Os arquivos CSV agora podem manipular campos com delimitadores incorporados.
  • função longSum() adicionada
  • Bug 43382 - configura a saída Tidy (avisos, erros) para XPath Assertion e Post-Processor
  • Bug 43984 - aparar espaços do campo da porta
  • Adicionar comentário opcional à função __log()
  • Tornar o nome da variável da função aleatória opcional
  • Reduza o carregamento de classe no modo não-GUI procurando apenas funções em nomes de classe que contenham '.functions'. e não contém '.gui.'
  • Bug 43379 - Switch Controller agora suporta seleção por nome e número
  • Pode especificar uma lista de nomes de variáveis ​​a serem gravadas em arquivos JTL (formato CSV e XML)
  • Agora verifica se as opções remoteStart -r e -R são usadas apenas com a opção non_GUI -n
  • Bug 44184 - Permitir que o cabeçalho seja salvo com dados do Gráfico Agregado
  • Adicionados botões "Salvar dados da tabela" para relatórios agregados e de resumo - salve a tabela como formato CSV com cabeçalho
  • Permitir que a maioria das funções seja usada no Plano de Teste. Observação __evalVar(), __split() e __regex() não podem ser usados ​​no Plano de Teste.
  • Permitir que propriedades globais sejam carregadas de um arquivo, por exemplo -Gglobal.properties
  • Adicionar a opção "Substring" à declaração de resposta
  • Bug 44378 - localização turca
  • Adicione o nome da variável de saída opcional à função Jexl
  • Adicione application/vnd.wap.xhtml+xml como um tipo de texto
  • Adicione meios para substituir o tamanho máximo de exibição na Árvore de Resultados da Visualização - defina a propriedade: view.results.tree.max_size
  • Use Tidy para exibir XML no View Results Tree Listener (evita buscar DTDs)
  • Bug 44487 - tradução alemã
  • Como um caso especial, se o caminho do Amostrador HTTP começar com "http://" ou "https://", isso será usado como o URL completo.
  • Bug 44575 - Result Saver agora pode salvar apenas resultados bem-sucedidos
  • Bug 44650 - O conjunto de dados CSV agora lida com valores de coluna entre aspas
  • Bug 44600 - temporizador de resolução de 1 ms ao executar com Java 1.5+
  • Bug 44632 - Aprimoramento de entrada de texto para FTP Sampler
  • Bug 42204 - adicione o nome do grupo de threads aos relatórios agregados e de resumo
  • FTP Sampler define latência = tempo para login
  • O FTP Sampler define um URL se puder
  • Bug 41921 - adiciona opção para samplers armazenarem MD5 de resposta; feito para Amostradores HTTP.
  • A função Regex agora também pode ser aplicada a uma variável em vez de apenas ao resultado da amostra anterior.
  • Remova a máscara de parâmetro HTML, o modificador de parâmetro do usuário HTTP dos menus, pois eles estão obsoletos
  • Bug 44807 - permite que os IDs de sessão sejam encerrados por barra invertida
  • Bug 44784 - permite servidor quebrado retornando charset adicional
  • Adicionada propriedade/variável TESTSTART.MS = hora de início do teste em milissegundos
  • Adicione protocolos POP3S e IMAPS ao Mail Reader Sampler.
  • O Mail Reader Sampler agora cria uma subamostra para cada e-mail.
  • A implementação TCPClient fornecida não trata mais tcp.eolByte=0 como especial. Para pular a verificação de EOL, defina tcp.eolByte=1000 (ou algum outro valor que não seja um byte válido)
  • A GUI do amostrador JUnit agora também encontra classes de teste definidas em user.classpath
  • Espaços à esquerda e à direita são cortados de nomes de variáveis ​​em chamadas de função. Por exemplo, ${__Random(1,63, LOTTERY )} usará a variável 'LOTTERY' em vez de 'LOTTERY'
  • Webservice(SOAP) Sampler agora pode carregar arquivos WSDL locais usando o arquivo: protocol
  • Bug 44872 - Adicionar filtro "Todos os arquivos" às caixas de diálogo Abrir arquivo
  • O servidor espelho agora pode ser executado independentemente (mirror-server.cmd e mirror-server.sh)
  • Bug 19128 - Adicionado suporte a vários arquivos POST para HTTP Samplers
  • Permitir o uso do nome especial LAST para indicar a última execução de teste; aplica-se aos sinalizadores -t, -l, -j
  • Bug 44418 /42178 - Melhorias no manuseio de arquivos do conjunto de dados CSV
  • Dê às funções do BeanShell, Javascript e Jexl acesso às propriedades do JMeter por meio do objeto "props"
  • Dê acesso ao BSF Sampler às propriedades do JMeter por meio do objeto "props"
  • Adicione Jexl como uma linguagem BSF Sampler compatível
  • Dê aos elementos de teste do Beanshell acesso às propriedades do JMeter por meio do objeto "props"
  • Adicionados elementos de teste BSF PreProcessor, PostProcessor e Assertion
  • Todos os elementos BSF agora têm acesso ao System.out através da variável "OUT"
  • Resumidor atualizado para lidar com nomes de variáveis
  • Sincronização adicionada ao Resumo e Relatório Agregado para tentar evitar amostras perdidas ocasionais
  • Bug 44808 , Bug 39641 - Suporte de proxy para solicitações binárias
  • Bug 28502 - Cache de recursos HTTP

Alterações não funcionais

  • Melhor tratamento de problemas de inicialização do MirrorServer e teste de unidade aprimorado.
  • O processo de compilação agora detecta bibliotecas de terceiros ausentes e relatórios necessários para arquivos binários e de origem
  • Ignore os testes do BeanShell se o jar não estiver presente
  • Atualização para Xerces 2.9.1, Xalan 2.7.1, Commons IO 1.4, Commons Lang 2.4, Commons-Logging 1.1.1, XStream 1.3, XPP3 1.1.4c
  • Use propriedades para descrições de funções de log/logn
  • Verifique se todos os arquivos jmx no diretório demos podem ser carregados OK
  • Atualizar os direitos autorais para 2008; use a tag de cópia em vez do caractere numérico na saída HTML
  • Métodos chamados de construtores não devem ser substituíveis: torne os métodos init da GUI privados
  • Torne as variáveis ​​estáticas finais, se possível
  • Divida as alterações em atual e anterior

Versão 2.3.1

Sumário de Mudanças

JMeter Proxy

A função de falsificação de proxy foi quebrada em 2.3; foi corrigido. Spoof agora oferece suporte a um parâmetro opcional para limitar a falsificação a URLs específicos. Isso é útil para páginas HTTPS que têm conteúdo inseguro - por exemplo, imagens/folhas de estilo podem ser acessadas usando HTTP. As respostas falsificadas agora eliminam a porta padrão (443) dos links https para que funcionem melhor.

As amostras de proxy ignoradas agora estão visíveis em Listeners - o rótulo é colocado entre [ e ] como uma indicação. A documentação do proxy foi melhorada.

Alterações na GUI

Os menus Adicionar mostram os tipos de elementos na ordem em que são processados ​​- consulte Ordem de execução do plano de teste . Não é mais possível adicionar elementos de teste a partes inadequadas da árvore - por exemplo, amostradores não podem ser adicionados diretamente em um plano de teste. Isso também se aplica a Colar e arrastar e soltar.

O menu Arquivo agora suporta uma opção "Reverter", que recarrega o arquivo atual. Além disso, os últimos nomes de arquivos usados ​​são lembrados para facilitar o recarregamento.

O Menu de Opções agora suporta Recolher Tudo e Expandir Todos os itens para recolher e expandir a árvore de teste.

Teste remoto

O servidor JMeter agora inicia o servidor RMI diretamente (por padrão). Isso simplifica o teste e significa que o servidor RMI será interrompido quando o servidor parar.

As funções agora podem ser usadas em nomes de arquivos do Listener (as variáveis ​​não funcionam).

A opção de linha de comando -G agora pode ser usada para definir propriedades para servidores remotos. A opção -X pode ser usada para parar um servidor remoto após uma execução sem GUI. O servidor pode ser configurado para sair automaticamente após um único teste (defina a propriedade server.exitaftertest=true).

Outras melhorias

A inicialização do JMeter não carrega mais tantas classes; isso deve reduzir os requisitos de memória.

Suporte a parâmetros e arquivos adicionados a todos os elementos do BeanShell. A função Javascript agora suporta acesso a objetos JMeter; A função Jexl sempre teve acesso, mas a documentação agora foi incluída. Novas funções __eval() e __evalVar() para avaliação de variáveis.

Arquivos CSV com os nomes de coluna de cabeçalho corretos agora são reconhecidos automaticamente quando carregados. Não há necessidade de configurar as propriedades.

O nome do host agora pode ser salvo em arquivos de saída CSV e XML. Nova opção "Somente sucessos" adicionada ao salvar arquivos de resultados. A opção Somente erros / sucessos agora é suportada ao carregar arquivos XML e CSV.

Melhorias na documentação geral.

HTTP

PUT e DELETE agora devem funcionar corretamente. O Cookie Manager não limpa mais os cookies inseridos manualmente.

Agora lida com o conjunto de caracteres http-equiv da tag META

JDBC

O JDBC Sampler agora permite parâmetros INOUT e OUT para procedimentos chamados. O JDBC Sampler agora permite conexões por thread - defina Max Connections = 0 em JDBC Config.


Alterações incompatíveis

  • O servidor JMeter agora cria o registro RMI por padrão. Se o registro RMI já tiver sido iniciado externamente, isso gerará uma mensagem de aviso, mas o servidor continuará. Isso não deve afetar o teste do JMeter. No entanto, se você também estiver usando o registro RMI para outros aplicativos, pode haver problemas. Por exemplo, quando o servidor JMeter for encerrado, ele interromperá o registro RMI. Também os arquivos de comando escritos pelo usuário podem precisar ser ajustados (os fornecidos com o JMeter foram atualizados). Para reverter para o comportamento anterior, defina a propriedade JMeter: server.rmi.create=false .
  • O servidor proxy remove os cabeçalhos If-Modified-Since e If-None-Match dos gerenciadores de cabeçalho gerados. Para reverter ao comportamento anterior, defina a propriedade proxy.headers.remove sem valor

Correções de bugs

  • Bug 43430 - A contagem de threads ativos está incorreta para amostras remotas
  • O controlador de taxa de transferência não estava funcionando para contagens de "todos os threads"
  • Se um corpo POST for criado apenas a partir de valores de parâmetro, eles agora serão codificados se a caixa de seleção estiver definida.
  • Bug 43584 - A mensagem de falha de declaração contém uma vírgula que também é usada como delimitador para arquivos CSV
  • HTTP Mirror Server agora sempre retorna exatamente o mesmo conteúdo, costumava retornar dados incorretos se a codificação UTF-8 fosse usada para o corpo HTTP POST, por exemplo
  • Bug 43612 - HTTP PUT não respeita os parâmetros de solicitação
  • Bug 43694 - ForEach Controller (erro de processamento de coleta vazia)
  • Bug 42012 - Os nomes de arquivos do Ouvinte Variável não são processados ​​em testes remotos. Os nomes de arquivo agora podem incluir referências de função; referências de variáveis ​​não funcionam.
  • Certifique-se de que os nós do Listener obtenham a própria configuração de salvamento ao copiar e colar
  • O servidor proxy correto inclui e exclui a descrição correspondente - a porta e a consulta são incluídas, ao contrário do documentado anteriormente.
  • O cabeçalho da coluna do gráfico agregado e do relatório agregado é KB/s; corrigiu os valores para serem KB em vez de bytes
  • Corrija o SamplingStatCalculator para que ele não adicione mais o tempo decorrido ao endTime, pois isso é tratado pelo SampleResult. Isso corrige as discrepâncias entre o cálculo do rendimento do Relatório Resumido e do Relatório Agregado.
  • HTTPSampleResult padrão para codificação ISO-8859-1
  • Corrigir a codificação padrão para codificação em branco
  • Corrigir falsificação de Https (problema de porta) que foi quebrado em 2.3
  • Corrija o amostrador HTTP (Java) para que http.java.sampler.retries signifique novas tentativas, ou seja, não inclui tentativa inicial
  • Corrija a verificação de tipo de dados SampleResult para detectar melhor documentos de TEXTO

Melhorias

  • Adicione o destino run_gui Ant, para empacotar e, em seguida, inicie a GUI do JMeter a partir do Ant
  • Adicionar Arquivo→Reverter para eliminar facilmente as alterações atuais e recarregar o arquivo de projeto atualmente carregado
  • Bug 31366 - Lembrar arquivo(s) aberto(s) recentemente
  • Bug 43351 - Adicionar suporte para Parâmetros e arquivo de script para todos os elementos de teste do BeanShell
  • SaveService não precisa mais instanciar classes
  • Novas funções: __eval() e __evalVar()
  • Os itens de menu agora aparecem na ordem de execução
  • Os itens do Plano de Teste agora só podem ser soltos/colados/mesclados em partes da árvore onde são permitidos
  • Exibição de propriedades para mostrar o valor das propriedades System e JMeter e permitir que elas sejam alteradas
  • Bug 43451 - Permitir que o Regex Extractor opere no código/mensagem de resposta
  • JDBC Sampler agora permite parâmetros INOUT e OUT para procedimentos chamados
  • JDBC Sampler agora permite conexões por thread
  • O Cookie Manager não limpa mais os cookies definidos na GUI
  • Parâmetros HTTP sem nomes são ignorados (exceto para solicitações POST sem arquivo)
  • "Salvar seleção como" adicionado ao menu principal; agora verifica se apenas o item está selecionado
  • O plano de teste agora tem o item de menu Colar (o colar já era suportado via ^V)
  • Se o delimitador padrão não funcionar ao carregar um arquivo CSV, adivinhe o delimitador analisando a linha do cabeçalho.
  • Adicione o protocolo "loopback" opcional para o amostrador HttpClient
  • O servidor HTTP Mirror agora suporta o bloqueio esperando que mais dados apareçam, se o cabeçalho do tamanho do conteúdo estiver presente na solicitação
  • A GUI do servidor HTTP Mirror agora tem os botões Iniciar e Parar em um local mais visível
  • O modo servidor agora cria o registro RMI; para desativar, configure a propriedade JMeter server.rmi.create=false
  • O HTTP Sampler agora suporta o uso do campo MIME Type para especificar o cabeçalho de solicitação do tipo de conteúdo quando o corpo é construído a partir de valores de parâmetro
  • Habilite a saída após um teste de servidor único - defina a propriedade JMeter server.exitaftertest=true
  • Adicionada opção -G para definir propriedades em servidores remotos
  • Adicionada opção -X para parar servidores remotos após execução sem GUI
  • Bug 43485 - Capacidade de especificar keep-alive na solicitação SOAP/XML-RPC
  • Bug 43678 - Manipular o conjunto de caracteres http-equiv da tag META
  • Bug 42555 - [I18N] Correções propostas para a tradução francesa
  • Bug 43727 - Ação de teste não suporta variáveis ​​ou funções
  • O servidor proxy remove os cabeçalhos If-Modified-Since e If-None-Match dos gerenciadores de cabeçalho gerados por padrão. Para alterar a lista de cabeçalhos removidos, defina a propriedade proxy.headers.remove como uma lista de cabeçalhos separados por vírgula a serem removidos
  • A função javaScript agora tem acesso a variáveis ​​JMeter e contexto etc. Veja a função JavaScript
  • Use a lista suspensa para o campo de idioma do BSF Sampler
  • Adicione o nome do host aos itens que podem ser salvos em arquivos de saída CSV e XML.
  • A sinalização somente de erros agora é suportada ao carregar arquivos XML e CSV
  • Certifique-se de que o ResultCollector use a codificação SaveService
  • Proxy agora rejeita tentativas de usá-lo com https
  • A falsificação de proxy agora pode usar a correspondência RE para determinar quais URLs falsificar (útil se as imagens não forem https)
  • A falsificação de proxy agora descarta a porta HTTPS padrão (443) ao converter links https: para http:
  • Adicionar registros e exibição apenas de sucessos
  • O nome do arquivo de log do JMeter é formatado como SimpleDateFormat (aplicado à data atual) se contiver aspas simples pareadas, por exemplo, 'jmeter_'yyyyMMddHHmmss'.log'
  • Adicionados itens de menu Recolher tudo e Expandir todas as opções
  • Permitir definição opcional de tipos de conteúdo extras que podem ser visualizados como texto

Melhorias não funcionais

  • Código Functor mais rígido; Functor agora pode ser usado com interfaces, bem como alvos e parâmetros pré-definidos.
  • A função Salvar gráficos agora solicita antes de substituir um arquivo existente
  • Debug Sampler e Debug PostProcessor adicionados.
  • Nomes de métodos corrigidos na Calculadora e SamplingStatCalculator
  • Documentação do Listener arrumada.

Versão 2.3

Correções desde 2.3RC4

Correções de bugs

  • Corrigir NPE em SampleResultConverter - XStream PrettyPrintWriter não pode manipular nulos
  • Se o amostrador Java HTTP vir ResponseMessage nulo, substitua pelo cabeçalho HTTP
  • Bug 43332 - 2.3RC4 não limpa Guis baseado em TestBean
  • Bug 42948 - Problemas com os campos da tabela Proxy gui em Java 1.6
  • Corrigir script de servidor jmeter quebrado
  • Bug 43364 - opção para reverter If Controller para o comportamento pré 2.3RC3
  • Bug 43449 - O modo Statistical Remote não lida com a latência
  • Bug 43450 (correção parcial) - Permitir que SampleCount e ErrorCount sejam salvos/restaurados de arquivos

Melhorias

  • Adicione a opção nameSpace ao extrator XPath
  • Adicionar opção de parâmetro NULL ao amostrador JDBC
  • Adicione links de documentação para Rhino e BeanShell às funções; esclarecer variáveis ​​e propriedades
  • Certifique-se de que as exceções não capturadas sejam registradas
  • Procure user.properties e system.properties no diretório bin do JMeter se não for encontrado localmente

Correções desde 2.3RC3

  • Corrigido o NPE no Summariser (bug introduzido no 2.3RC3)
  • Configuração fixa da porta proxy (bug introduzido no 2.3RC3)
  • Corrigidos erros ao executar não-GUI em um host sem periféricos (bug introduzido no 2.3RC3)
  • Bug 43054 - SSLManager faz com que os testes de estresse saturem e falhem (bug introduzido no 2.3RC3)
  • Esclarecido o uso de padrões de solicitação HTTP do campo de porta
  • Bug 43006 - NPE se o arquivo icon.properties não for encontrado
  • Bug 42918 - Asserção de tamanho agora trata uma resposta vazia como tendo comprimento zero
  • Bug 43007 - O teste termina antes de todos os grupos de threads serem iniciados
  • Corrija o possível NPE no HTTPSampler2 se 302 não tiver o cabeçalho de localização.
  • Bug 42919 - Mensagem de falha em branco na saída CSV [agora grava a primeira mensagem não em branco]
  • Adicionar link para Extending JMeter PDF
  • Permitir o conjunto de caracteres entre aspas na análise de tipo de conteúdo
  • Bug 39792 - Sincronização do ClientJMeter necessária
  • Bug 43122 - As alterações na GUI nem sempre são detectadas quando as teclas de atalho são usadas (bug introduzido no 2.3RC3)
  • Bug 42947 - As alterações do TestBeanGUI não são detectadas quando as teclas de atalho são usadas
  • Adicionado serializer.jar (necessário para atualização para xalan 2.7.0)
  • Bug 38687 - O controlador do módulo não funciona no modo não-GUI

Melhorias desde 2.3RC3

  • Adicionar opção de interrupção de thread ao conjunto de dados CSV
  • Atualizado commons-httpclient para 3.1
  • Bug 28715 - permite valores de cookies variáveis ​​(definir CookieManager.allow_variable_cookies=false para desabilitar)
  • Bug 40873 - adicionar opção de entrega não persistente ponto a ponto JMS
  • Bug 43283 - A ação de salvar adiciona .jmx se não estiver presente; verifica o arquivo existente em Salvar como
  • A tecla Control  +  A não funciona para Salvar tudo como; alterado para Control  +  Shift  +  S
  • Bug 40991 - Permitir que asserções verifiquem os cabeçalhos

Versão 2.3RC3

Problemas/restrições conhecidos:

O servidor remoto JMeter não suporta vários testes simultâneos - cada teste remoto deve ser executado em um servidor separado. Caso contrário, os testes podem falhar com exceções aleatórias, por exemplo, ConcurrentModification Exception em StandardJMeterEngine. Veja Bug 43168 .

O amostrador de solicitação HTTP padrão (não HTTPClient) pode não funcionar para conexões HTTPS por meio de um proxy. Isso parece ser devido a um bug Java, veja Bug 39337 . Para evitar o problema, tente uma versão mais recente do Java ou alterne para a versão HTTPClient do amostrador HTTP Request.

O modo pai do controlador de transação não oferece suporte a controladores de transação aninhados. Isso pode causar uma exceção de ponteiro nulo no TestCompiler.

As contagens de threads ativas são sempre zero em arquivos CSV e XML ao executar testes remotos.

A propriedade file_format.testlog=2.1 é tratada da mesma forma que 2.2. No entanto, o JMeter honra as 3 versões do plano de teste.

Bug 22510 - JMeter sempre usa a primeira entrada no keystore.

O modo remoto não funciona se o JMeter estiver instalado em um diretório onde o nome do caminho contém espaços.

Elementos de teste do BeanShell vazam memória. Isso pode ser reduzido usando um arquivo em vez de incluir o script no elemento de teste.

Variáveis ​​e funções não funcionam em Listeners no modo cliente-servidor (remoto), portanto não podem ser usadas para nomear arquivos de log no modo cliente-servidor.

As variáveis ​​do conjunto de dados CSV são definidas após a conclusão do processamento da configuração, portanto, não podem ser usadas para outros itens de configuração, como JDBC Config. (veja Bug 40394 )

Resumo das alterações (para mais detalhes, veja abaixo)

Algumas das principais melhorias são:

  • Htmlparser 2.0 agora usado para análise
  • A autorização HTTP agora suporta domínio e realm
  • As opções HttpClient podem ser especificadas através do arquivo httpclient.parameters
  • HttpClient agora se comporta da mesma forma que Java Http para certificados SSL
  • Servidor HTTP Mirror para permitir testes locais de amostradores HTTP
  • HTTP Proxy suporta gravação XML-RPC e outras melhorias de proxy
  • A função __V() permite o suporte de referências de variáveis ​​aninhadas
  • O amostrador LDAP Ext analisa opcionalmente os conjuntos de resultados e suporta o modo seguro
  • FTP Sampler suporta o modo Ascii/Binary e upload
  • O Transaction Controller agora gera opcionalmente um Sample com subresultados
  • Os contextos de sessão HTTPS agora são por thread, em vez de compartilhados. Isso dá uma melhor emulação de vários usuários
  • Os elementos BeanShell agora suportam interfaces ThreadListener e TestListener
  • Ícones coloridos no Tree View Listener e em outros lugares para diferenciar melhor as amostras com falha.

As principais correções de bugs são:

  • Manipulação HTTPS (SSL) agora muito melhorada
  • Vários bugs do modo remoto corrigidos
  • Control  +  C e Control  +  V agora funcionam na árvore de teste
  • Latência e codificação agora disponíveis na saída de log CSV
  • Os elementos de teste não são mais padronizados para o conteúdo anterior; os elementos de teste não são mais limpos ao alterar o idioma.

Alterações incompatíveis (uso):

NB As propriedades javax.net.ssl ​​foram movidas de jmeter.properties para system.properties e não funcionarão mais se definidas em jmeter.properties.
O novo arranjo é mais flexível, pois permite que propriedades arbitrárias do sistema sejam definidas.

Os contextos de sessão SSL agora são criados por thread, em vez de serem compartilhados. Isso gera uma carga mais realista para testes HTTPS. A mudança provavelmente retardará os testes com muitos encadeamentos SSL. O comportamento original pode ser ativado definindo a propriedade JMeter:

https.sessioncontext.shared=true

O LDAP Extended Sampler agora usa o mesmo painel para os testes Thread Bind e Single-Bind. Isso significa que qualquer teste usando o teste Single-bind precisará ser atualizado para definir o nome de usuário e a senha.

Bug 41140: O comportamento do JMeterThread foi alterado para que os PostProcessors sejam executados em ordem direta (como aparecem no plano de teste) em vez de ordem inversa como anteriormente. O comportamento original pode ser restaurado definindo a seguinte propriedade JMeter:
jmeterthread.reversePostProcessors=true

O HTTP Authorization Manager agora tem colunas extras para domínio e realm, portanto, a solução temporária de usar '\' e '@' no nome de usuário para delimitar o domínio e o realm foi removida.

Control  +  Z não é mais usado para Remote Start All - agora usa Control  +  Shift  +  R

HttpClient agora usa autenticação preventiva. Isso pode ser alterado configurando o seguinte:

jmeter.properties:
httpclient.parameters.file=httpclient.parameters

httpclient.parameters:
http.authentication.preemptive$Boolean=false

O campo de porta em padrões de solicitação HTTP não é mais ignorado para amostradores https se estiver definido como 80.

Alterações incompatíveis (desenvolvimento):

NB O método clear() foi definido nas seguintes interfaces: Clearable, JMeterGUIComponent e TestElement. Os métodos servem a propósitos diferentes, então dois deles foram renomeados: o método Clearable agora é clearData() e o método JMeterGUIComponent agora é clearGui(). Complementos de terceiros podem precisar ser reconstruídos.

As classes Calculator e SamplingStatCalculator não fornecem mais nenhuma formatação de seus dados. A formatação agora deve ser feita usando as classes do Renderer jorphan.gui.

Removido o método obsoleto JMeterUtils.split() - use a versão JOrphanUtils em vez disso.

Removido o método saveUsingJPEGEncoder() de SaveGraphicsService. Ele não foi usado até agora e usou a única classe específica da Sun no JMeter.

Novas funcionalidades/melhorias:

  • Adicionar suporte a Domínio e Realm ao Gerenciador de Autorização HTTP
  • HttpClient agora se comporta da mesma forma que o amostrador JDK http para certificados inválidos, etc.
  • Adicionado httpclient.parameters.file para permitir que os parâmetros HttpClient sejam definidos
  • Bug 33964 - Solicitações HTTP podem enviar um arquivo como o corpo inteiro da postagem se o nome/tipo for omitido
  • Bug 41705 - adicionar opção de codificação de conteúdo para amostradores HTTP para solicitações POST
  • Bug 40933 , Bug 40945 - correspondência de RE opcional ao recuperar URLs de recursos incorporados
  • Bug 27780 - (patch 19936) cria requisição HTTP multipart/form-data sem carregar arquivo
  • Bug 42098 - Use a codificação especificada para valores de parâmetro em HTTP GET
  • Bug 42506 - Threads JMeter agora usam sessões SSL independentes
  • Bug 41707 - Suporte a HTTP Proxy XML-RPC
  • Bug 41880 - Adicionar filtragem de tipo de conteúdo ao HTTP Proxy Server
  • Bug 41876 - Adicione mais opções para controlar o que o HTTP Proxy gera
  • Bug 42158 - Melhore o suporte para solicitações multipart/form-data no servidor HTTP Proxy
  • Bug 42173 - Permitir que o HTTP Proxy manipule a codificação da solicitação e decodifique os valores dos parâmetros
  • Bug 42674 - padrão para autorização HTTP preemptiva se não for especificado
  • Suporte ao protocolo "arquivo" em Amostradores HTTP
  • Os redirecionamentos automáticos de Http agora são ativados por padrão ao criar novos samplers
  • Bug 40103 - vários aprimoramentos de LDAP
  • Bug 40369 - LDAP: resultados de pesquisa estáveis ​​no amostrador
  • Bug 40381 - LDAP: strings mais descritivas
  • O pós-processador BeanShell não ignora mais amostras com dados de resultado de comprimento zero
  • Adicionada propriedade beanshell.init.file para executar um script BeanShell na inicialização
  • Bug 39864 - Arquivos de inicialização do BeanShell agora encontrados no diretório atual ou bin
  • Os elementos BeanShell agora suportam interfaces ThreadListener e TestListener
  • BSF Sampler passa variáveis ​​adicionais para o script
  • Adicionado tempo limite para WebService (SOAP) Sampler
  • Bug 40825 - Adicionar suporte a instruções preparadas JDBC
  • Estender JDBC Sampler: Commit, Rollback, AutoCommit
  • Bug 41457 - Adicionar opção TCP Sampler para não reutilizar conexões
  • Bug 41522 - Use o nome do amostrador JUnit nos resultados da amostra
  • Bug 42223 - FTP Sampler agora pode fazer upload de arquivos
  • Bug 40804 - Altere o padrão do contador para max = Long.MAX_VALUE
  • Use a propriedade jmeter.home (se presente) para substituir user.dir ao iniciar o JMeter
  • Nova opção -j para alterar facilmente o arquivo de log jmeter
  • Elemento do ambiente de trabalho do servidor de espelho HTTP
  • Bug 41253 - estender XPathExtractor para trabalhar com expressões XPath não NodeList
  • Bug 42088 - Adicionar XPath Assertion para booleanos
  • Adicionada função de variável __V para resolver nomes de variáveis ​​aninhadas
  • Bug 40369 - Igual a declaração de resposta
  • Bug 41704 - Permitir que a codificação de charset seja especificada para CSV DataSet
  • Bug 41259 - Campo de comentário adicionado a todos os elementos de teste
  • Adicionar desvio padrão ao relatório resumido
  • Bug 41873 - Adicionar nome a AssertionResult e exibir AssertionResult em ViewResultsFullVisualizer
  • Bug 36755 - Salvar arquivos de teste XML com codificação UTF-8
  • Use o formato de data e hora ISO para o Tree View Listener (anteriormente o ano não era mostrado)
  • Melhore o carregamento de arquivos CSV: se possível, use o cabeçalho para determinar o formato; adivinhe o formato do carimbo de data/hora se não for milissegundos
  • Bug 41913 - TransactionController agora cria amostras como subamostras da transação
  • Bug 42582 - JSON bonita impressão no Tree View Listener
  • Bug 40099 - Habilitar o uso de variável de objeto em ForEachController
  • Bug 39693 - Exibir tabela de resultados usa ícone em vez de caixa de seleção
  • Bug 39717 - use ícones na árvore de resultados
  • Bug 42247 - melhore o HCI
  • Permitir que o usuário cancele a caixa de diálogo Fechar

Melhorias não funcionais:

  • Chamadas de functor agora podem ser testadas por unidade
  • Substitua as classes com.sun.net por javax.net
  • Extraia definições jar externas no arquivo build.properties
  • Use nomes jar específicos em caminhos de classe de compilação para que os erros sejam detectados mais cedo
  • Arrumou as chamadas ORO; agora apenas um cache, tamanho dado por oro.patterncache.size, padrão 1000
  • Bug 42326 - Alteração na ordem dos elementos nos arquivos .jmx

Atualizações externas do jar:

  • Htmlparser 2.0-20060923
  • xstream 1.2.1/xpp3_min-1.1.3.4.O
  • Batik 1.6
  • BSF 2.4.0
  • coleções-comuns 3.2
  • commons-httpclient-3.1-rc1
  • commons-jexl 1.1
  • commons-lang-2.3 (adicionado)
  • JUnit 3.8.2
  • velocidade 1,5
  • commons-io 1.3.1 (adicionado)

Correções de bugs:

  • Bug 39773 - NTLM agora precisa de nome de host local - corrija outra chamada
  • Bug 40438 - configuração "httpclient.localaddress" não tem efeito
  • Bug 40419 - Correção de tradução de mensagens em chinês
  • Bug 39861 - corrigir erro de digitação
  • Bug 40562 - redirecionamentos não invocam mais pós-processadores RE
  • Bug 40451 - definir rótulo se não for definido pelo amostrador
  • Corrigir o NPE no CounterConfig.java no modo remoto
  • Bug 40791 - Calculadora usada pelo Relatório Resumido
  • Bug 40772 - analisa corretamente os campos ausentes nos arquivos de log CSV
  • Bug 40773 - carimbo de data/hora do arquivo de log XML não analisado corretamente
  • Bug 41029 - JMeter -t falha ao fechar o arquivo JMX de entrada
  • Bug 40954 - O modo estatístico em testes distribuídos mostra resultados errados
  • Corrija a exceção ClassCast ao usar o amostrador que retorna nulo, por exemplo, TestAction
  • Bug 41140 - Pós-processadores são executados na ordem inversa
  • Bug 41277 - adicionar latência e codificação à saída CSV
  • Bug 41414 - Mac OS X pode adicionar item extra ao classpath -jar
  • Corrigir o NPE ao salvar contagens de threads em testes remotos
  • Bug 34261 - NPE em HtmlParser (permite atributos ausentes)
  • Bug 40100 - verifique o tipo de FileServer antes de chamar close
  • Bug 39887 - jmeter.util.SSLManager: não foi possível carregar a mensagem de erro do keystore
  • Bug 41543 - exceção quando o servidor web retorna "500 Internal Server Error" e o tamanho do conteúdo é 0
  • Bug 41416 - não use entrada em partes para entrada de caixa de texto no amostrador SOAP-RPC
  • Bug 39827 - Comprimento do conteúdo do SOAP Sampler para arquivos
  • Corrigir exceção de conversão de classe em Clear.java
  • Bug 40383 - não defina o tipo de conteúdo se já estiver definido
  • O botão de teste do Mailer Visualiser agora funciona se o plano de teste ainda não foi salvo
  • Bug 36959 - Atalhos "ctrl c" e "ctrl v" não funcionam nos elementos da árvore
  • Bug 40696 - recupera recursos incorporados dos atributos STYLE URL()
  • Bug 41568 - Problema ao executar testes remotamente ao usar um 'Contador'
  • Corrigidas várias classes que assumiam que os timestamps eram sempre os timestamps de término:
    • SamplingStatCalculator
    • JTLData
    • Amostra em execução
  • Bug 40325 - permite a especificação de proxyuser e proxypassword para WebServiceSampler
  • Altere a definição de proxy HttpClient para usar NTCredentials; adicionada propriedade http.proxyDomain para isso
  • Bug 40371 - problema de barra de rolagem "padrão de teste" de afirmação de resposta
  • Bug 40589 - Unescape entidades XML em URLs incorporados
  • Bug 41902 - NPE no HTTPSampler quando responseCode = -1
  • Bug 41903 - ViewResultsFullVisualizer: a coluna de status parece ruim quando você copia e cola
  • Bug 41837 - Corrupção do valor do parâmetro no proxy
  • Bug 41905 - Não é possível recortar/colar/selecionar campos do Header Manager no Java 1.6
  • Bug 41928 - Faz com que todos os cabeçalhos de solicitação enviados pelo amostrador de solicitação HTTP apareçam no resultado da amostra
  • Bug 41944 - Subresultados não tratados recursivamente pelo ResultSaver
  • Bug 42022 - HTTPSampler não permite vários cabeçalhos com o mesmo nome
  • Bug 42019 - Tipo de conteúdo não armazenado na solicitação HTTP redirecionada com subresultados
  • Bug 42057 - a conexão pode ser nula se o método for nulo
  • Bug 41518 - JMeter altera o tipo de conteúdo do cabeçalho HTTP para solicitação POST
  • Bug 42156 - HTTPRequest HTTPClient codifica incorretamente o valor do parâmetro no POST
  • Bug 42184 - Número de bytes para subamostras não adicionadas à amostra quando subamostras são adicionadas
  • Bug 42185 - Se um HTTP Sampler seguir um redirecionamento e estiver configurado para baixar imagens, as imagens serão baixadas várias vezes
  • Bug 39808 - Redirecionamento inválido causa tempo de amostra incorreto
  • Bug 42267 - Falha de atualização simultânea da GUI na gravação de proxy
  • Bug 30120 - O nome do controlador simples é redefinido se um novo controlador simples for adicionado como filho
  • Bug 41078 - mesclagem resulta na mudança de nome do plano de teste
  • Bug 40077 - Criar novos Elementos copia valores de Elementos existentes
  • Bug 42325 - Implemente o método "clear" para os LogicControllers
  • Bug 25441 - Alterações do TestPlan às vezes detectadas incorretamente (isDirty)
  • Bug 39734 - Ouvintes compartilhados após a operação de copiar/colar
  • Bug 40851 - Controlador de loop com 0 iterações, para de avaliar o campo de iterações
  • Bug 24684 - problemas de inicialização remota se houver espaços no caminho do jmeter
  • Use a configuração do Listener ao carregar arquivos de dados CSV
  • Os métodos de função setParameters() precisam ser sincronizados
  • Corrige o argumento opcional longo da CLI para exigir "=" (como para opções curtas)
  • Corrija o SlowSocket para funcionar corretamente com o Httpclient (http e https)
  • Bug 41612 - Loop aninhado em If Controller se comporta de forma irregular
  • Bug 42232 - alterar o idioma limpa o conteúdo UDV
  • A função Jexl não permitia variáveis

Versão 2.2

Alterações incompatíveis:

O carimbo de hora agora está definido para a hora de início do amostrador (era o fim). Para reverter para o comportamento anterior, altere a propriedade sampleresult.timestamp.start para false (ou comente)

O formato de saída JMX foi simplificado e os arquivos não são compatíveis com versões anteriores

O arquivo JMeter.BAT não altera mais o diretório para o início do JMeter, mas é executado a partir do diretório de trabalho atual. Os arquivos jmeter-n.bat e jmeter-t.bat mudam para o diretório que contém o arquivo de entrada.

Os listeners agora são iniciados um pouco mais tarde para permitir que nomes de variáveis ​​sejam usados. Isso pode causar alguns problemas; em caso afirmativo, defina o seguinte em jmeter.properties:
jmeterengine.startlistenerslater=false

A GUI agora expande a árvore por padrão ao carregar um plano de teste. Isso pode ser desabilitado definindo a propriedade JMeter onload.expandtree=false

Problemas conhecidos:

  • Pós-processadores são executados em ordem inversa (veja Bug 41140 )
  • O controlador do módulo não funciona no modo não GUI
  • Relatório Agregado e alguns outros ouvintes usam quantidades crescentes de memória à medida que um teste avança
  • Nem sempre lida adequadamente com a codificação não padrão
  • Espaços no caminho de instalação causam problemas para o modo cliente-servidor
  • A mudança de idioma não se propaga para todos os elementos de teste
  • SamplingStatCalculator mantém uma lista de todas as amostras para fins de cálculo; isso pode causar exaustão de memória em testes de longa duração
  • Não trata adequadamente os certificados do servidor se estiverem expirados ou não instalados localmente

Nova funcionalidade:

  • Função de relatório
  • Pós-processador XPath Extractor. Lida com partidas únicas e múltiplas.
  • Formato de arquivo JMX mais simples (2.2)
  • O código BeanshellSampler pode atualizar ResponseData diretamente
  • Bug 37490 - Permitir UDV como atraso na declaração de duração
  • Emulação de conexão lenta para HttpClient
  • JUnitSampler aprimorado para que, por padrão, erros e exceções de declaração não sejam anexados à mensagem de erro. Os usuários devem verificar explicitamente o anexo no amostrador
  • Aprimorou a documentação do amostrador de webservice para explicar como ele funciona com CSVDataSet
  • Aprimorou a documentação da função javascript para explicar o escape de vírgula
  • Permitir que os nomes dos arquivos do conjunto de dados CSV sejam absolutos
  • Relatar melhor os erros do compilador da árvore
  • Não redefina a variável Regex Extractor se o padrão estiver vazio
  • propriedade includecontroller.prefix adicionada
  • O Extrator de Expressão Regular define a contagem de grupos
  • Agora pode salvar a tela inteira como uma imagem, não apenas o painel direito
  • Bug 38901 - Adicionar cabeçalho SOAPAction opcional ao SOAP Sampler
  • Novos elementos de teste do BeanShell: Timer, PreProcessor, PostProcessor, Listener
  • A função __split() agora limpa a próxima variável, para que possa ser usada com o ForEach Controller
  • Bug 38682 - adicionar funcionalidade CallableStatement ao JDBC Sampler
  • Facilite a alteração da porta RMI/Server
  • Adicione a propriedade jmeter.save.saveservice.xml_pi para fornecer instruções de processamento xml opcionais em arquivos JTL
  • Adicione bytes e URL a itens que podem ser salvos em arquivos de log de amostra (XML e CSV)
  • O pós-processador "Salvar respostas em um arquivo" agora salva o nome do arquivo gerado com a amostra e o nome do arquivo pode ser incluído no arquivo de log de amostra.
  • Altere o script jmeter.bat DOS para que funcione em qualquer diretório
  • Nova opção -N para definir nonProxyHosts na linha de comando
  • Nova opção -S para definir as propriedades do sistema a partir do arquivo de entrada
  • Bug 26136 - permite configuração de endereço local
  • Expandir a árvore por padrão ao carregar um plano de teste - pode ser desabilitado definindo a propriedade onload.expandtree=false
  • Bug 11843 - URL Rewriter agora pode armazenar em cache o ID da sessão
  • O pré-processador do contador agora suporta números formatados
  • Adicionar suporte para os métodos HEAD PUT OPTIONS TRACE e DELETE
  • Permitir que a implementação HTTP padrão seja alterada
  • Opcionalmente, salve as contagens de threads ativas (grupo e todos) nos arquivos de resultados
  • Variáveis/funções agora podem ser usadas em nomes de arquivos do Listener
  • Nova função __time(); definir propriedades e variáveis ​​START.MS/START.YMD/START.HMS
  • Adicionar nome de thread às visualizações de árvore e tabela
  • Adicionar funções de depuração: qual classe, depuração ativada, depuração desativada
  • Calculadora sem cache - usada pelo Table Visualiser para reduzir o consumo de memória
  • Relatório Resumido - semelhante ao Relatório Agregado, mas usa menos memória
  • Bug 39580 - opção de reciclagem para conjunto de dados CSV
  • Bug 37652 - suporte para protocolo Ajp Tomcat
  • Bug 39626 - Carregando solicitações SOAP/XML-RPC do arquivo
  • Bug 39652 - Permitir truncamento de rótulos no AxisGraph
  • Permitir o uso do htmlparser 1.6
  • Bug 39656 - sempre use a ação SOAP se for fornecida
  • Incluir automaticamente as propriedades do arquivo user.properties
  • Adicionar função __jexl() - avalia expressões JEXL do Commons
  • Opcionalmente, carregue as propriedades do JMeter de user.properties e as propriedades do sistema de system.properties.
  • Bug 39707 - permitir correspondência Regex com URL
  • Adicionar hora de início ao Visualizador de tabela
  • Os amostradores HTTP agora podem extrair recursos incorporados para qualquer tipo de mídia necessário

Correções de bugs:

  • Corrija o NPE quando nenhum módulo estiver selecionado no Module Controller
  • Corrigir o NPE no XStream quando nenhum ResponseData estiver presente
  • Remova o prefixo ?xml ao executar com Java 1.5 e sem x-jars
  • Bug 37117 - função setProperty() deve retornar ""; adicionado retorno opcional da configuração original
  • Corrigir o formato de hora de saída CSV
  • Bug 37140 - lidar melhor com codificação em RegexFunction
  • Carregue todos os cookies, não apenas o primeiro; corrigir exceção de conversão de classe
  • Corrigir o nome do caminho do cookie padrão (remover o nome da página)
  • Corrigido o nome do atributo resultcode
  • Bug 36898 - aplicar codificação ao RegexExtractor
  • Adicione propriedades para salvar subresultados, asserções, latência, samplerData, responseHeaders, requestHeaders e codificação
  • Bug 37705 - Temporizador de Sincronização agora funciona bem após a execução ser interrompida
  • Bug 37716 - A solicitação de proxy agora trata o arquivo Post corretamente
  • O HttpClient Sampler agora economiza latência
  • Corrigir o NPE ao usar a função JavaScript no plano de teste
  • Corrigir a análise de base Href no htmlparser
  • Bug 38256 - manipula cookie sem caminho
  • Bug 38391 - use muito tempo ao acumular atrasos no temporizador
  • Bug 38554 - A função aleatória agora usa números longos
  • Bug 35224 - permite atributos duplicados para amostrador LDAP
  • Bug 38693 - O amostrador de serviço da Web agora pode usar o protocolo https
  • Bug 38646 - Regex Extractor agora limpa variáveis ​​antigas na falha de correspondência
  • Bug 38640 - corrige o agrupamento do WebService Sampler
  • Bug 38474 - HTML Link Parser não segue links de quadro
  • Bug 36430 - Counter agora usa long ao invés de int para aumentar o alcance
  • Bug 38302 - corrige a função XPath
  • Bug 38748 - JDBC DataSourceElement falha com teste remoto
  • Bug 38902 - às vezes -1 parece ser retornado desnecessariamente para o código de resposta
  • Bug 38840 - tornar a Asserção XML segura para thread
  • Bug 38681 - Incluir controlador agora funciona no modo não GUI
  • Adicionar implementação de gravação (OS, IS) ao TCPClientImpl
  • O conversor de resultados de exemplo salva o código de resposta como "rc". Anteriormente, ele salvava como "rs", mas lia com "rc"; agora também lerá com "rc". As folhas de estilo XSL agora também aceitam "rc" ou "rs"
  • Corrija a função do contador para que cada instância do contador seja independente (anteriormente os contadores por usuário eram compartilhados entre as instâncias da função)
  • Corrija exemplos de TestBean para que funcionem
  • Corrija o analisador JTidy para não pular tags de corpo com imagens de fundo
  • Corrija o analisador HtmlParser para que ele capture todas as imagens de fundo
  • Bug 39252 definir resultado de amostra SoapSampler de dados XML
  • Bug 38694 - WebServiceSampler não configurando a codificação de dados corretamente
  • O Result Collector agora fecha os arquivos de entrada lidos pelos ouvintes
  • Bug 25505 - Primeira amostragem HTTP falha com "HTTPS hostname errado: deve ser 'localhost'"
  • Bug 25236 - remova a barra de rolagem dupla do Assertion Result Listener
  • Bug 38234 - Graph Listener divide por zero problema
  • Bug 38824 - esclarece o comportamento de Ignorar Status
  • Bug 38250 - jmeter.properties "language" agora suporta sufixo de país, para zh_CN e zh_TW etc
  • O arquivo jmeter.properties agora é fechado depois de lido
  • Bug 39533 - StatCalculator adicionou itens errados
  • Bug 39599 - ConcurrentModificationException
  • HTTPSampler2 agora lida corretamente com redirecionamentos Auto e Follow
  • Bug 29481 - corrige o recarregamento dos resultados da amostra para que os sub-resultados não sejam contados duas vezes
  • Bug 30267 - manuseie os redirecionamentos automáticos corretamente
  • Bug 39677 - permite espaço na variável JMETER_BIN
  • Use a análise e o gerenciamento de cookies do Commons HttpClient. Corrija vários problemas com o manuseio de cookies.
  • Bug 39773 - NTCredentials precisa de nome de host

Outras alterações

  • Atualizado para HTTPClient 3.0 (de 2.0)
  • Atualizado para Commons Collections 3.1
  • Formatação aprimorada de dados de solicitação na exibição em árvore
  • Documentação do usuário expandida
  • Adicionado MANIFESTO, AVISO e LICENÇA a todos os jars
  • Extraia a interface htmlparser em um arquivo jar separado para possibilitar a substituição do analisador
  • Removida a GUI de configuração do SQL, pois não é mais necessária (ou está funcionando!)
  • HTTPSampler não registra mais um aviso para página não encontrada (404)
  • StringFromFile agora pode ser chamado como __StringFromFile (assim como _StringFromFile)
  • Atualizado para o Commons Logging 1.1

Versão 2.1.1

Nova funcionalidade:

  • O novo controlador de inclusão permite que um plano de teste faça referência a um arquivo jmx externo
  • Novo JUnitSampler adicionado para usar classes de teste JUnit
  • O novo ouvinte Aggregate Graph é capaz de representar graficamente estatísticas agregadas
  • Pode fornecer entradas de caminho de classe adicionais usando a propriedade user.classpath e no elemento Plano de Teste

Correções de bugs:

  • Elementos de teste AccessLog Sampler e JDBC preenchidos corretamente a partir de planos de teste 2.0
  • O BSF Sampler agora preenche o nome do arquivo e os parâmetros do plano de teste salvo
  • Bug 36500 - lidar com dados ausentes com mais facilidade no WebServiceSampler
  • Bug 35546 - adicionar mesclagem ao menu do botão direito
  • Bug 36642 - Summariser parou de funcionar em 2.1
  • Bug 36618 - A linha de cabeçalho CSV não correspondia aos dados salvos
  • O JMeter agora deve ser executado na JVM 1.3 (mas não compila com a 1.3)

Versão 2.1

Nova funcionalidade:

  • Novo formato de arquivo Test Script - menor, mais compacto, mais legível
  • Novo formato de arquivo Sample Result - menor, mais compacto
  • Asserção XSchema
  • Exibição de árvore XML
  • Item de configuração do conjunto de dados CSV
  • Novo elemento de configuração do pool de conexões JDBC
  • Temporizador de Sincronização
  • função setProperty
  • Salvar dados de resposta em caso de erro
  • Ant JMeter XSLT agora mostra opcionalmente respostas com falha e tem links internos
  • Permitir que o nome da variável JavaScript seja omitido
  • Alterado seguindo Samplers para definir o rótulo do sampler do nome do sampler
  • Todos os elementos de teste podem ser salvos como uma imagem gráfica em um arquivo
  • Bug 35026 - adicionar correspondência de padrão RE ao Proxy
  • Bug 34739 - Aprimore o temporizador de taxa de transferência constante
  • Bug 25052 - use codificação de resposta para criar string de comparação na declaração de resposta
  • Novos ícones opcionais
  • Permitir que ícones sejam definidos por meio de arquivos de propriedades
  • Novas folhas de estilo para saída de teste XML no formato 2.1
  • Salve samplers, elemento de configuração e ouvintes como PNG
  • Suporte aprimorado para processamento WSDL
  • Novo amostrador JMS para mensagens de tópico e fila
  • Como fazer para amostradores JMS
  • Bug 35525 - Adicionada localização em espanhol
  • Bug 30379 - permite que server.rmi.port seja substituído
  • aprimorou o ouvinte do monitor para salvar as estatísticas calculadas
  • Funções e variáveis ​​agora funcionam no nível superior do plano de teste

Correções de bugs:

  • Bug 34586 - XPath sempre permaneceu como /
  • BeanShellInterpreter não manipulou objetos nulos corretamente
  • Corrigir nomes de pacotes de recursos chineses
  • Salve os nomes dos campos, se necessário, em arquivos CSV
  • Certifique-se de que o arquivo XML esteja fechado
  • Ícones corretos agora exibidos para componentes TestBean
  • Permitir a falta de jar(s) opcional(is) na criação de menus
  • Amostradores alterados para definir o rótulo de amostra do nome do amostrador, como era o caso do HTTP
  • Corrija vários amostradores para evitar NPEs quando dados incompletos são fornecidos
  • Corrigir o Cookie Manager para usar segundos; adicionar depuração
  • Bug 35067 - configure o nome do arquivo ao usar a opção -t
  • Não substitua as propriedades TestElement.* por UDVs no Proxy
  • Bug 35065 - não salve extensões antigas no File Saver
  • Bug 25413 - não habilite o botão Reiniciar desnecessariamente
  • Bug 35059 - Runtime Controller parou de funcionar
  • Limpe todas as conexões restantes criadas pelo LDAP Extended Sampler
  • Bug 23248 - controlador de módulo não se lembrava de coisas entre salvar e recarregar
  • Corrigir localidades chinesas
  • Bug 29920 - altere a localidade padrão, se necessário, para garantir que as propriedades padrão sejam selecionadas quando o inglês for selecionado.
  • Correções de bugs para legendas do monitor Tomcat
  • Amostrador de webservice fixo para que funcione com variáveis ​​definidas pelo usuário
  • Bordas de tela fixas para elementos GUI de configuração LDAP
  • Bug 31184 - certifique-se de que a codificação esteja especificada no amostrador JDBC
  • Amostrador TCP - compartilhe apenas soquetes com os mesmos detalhes de host:port; corrija o manual
  • Extraia o atributo src para tags incorporadas em analisadores JTidy e Html

Versão 2.0.3

Nova funcionalidade:

  • Asserção XPath e Função XPath
  • Controlador de interruptor
  • ForEach Controller agora pode percorrer conjuntos de grupos
  • Permitir que o delimitador CSVRead seja alterado (consulte jmeter.properties)
  • Bug 33920 - permite arquivos de propriedades adicionais
  • Bug 33845 - permite a substituição direta do diretório inicial

Correções de bugs:

  • Constante aninhada do Regex Extractor não foi colocada no lugar correto Bug 32395
  • A hora de início é redefinida para agora, se necessário, para que o atraso funcione bem.
  • Assume-se que os horários de início/término ausentes no agendador são agora, não 1970
  • Bug 28661 - 304 respostas não aparecem nos ouvintes
  • Os scripts do DOS agora lidam melhor com diferentes discos
  • Bug 32345 - HTTP Rewriter não funciona com HTTP Request padrão
  • Capturar exceções de tempo de execução para que um erro em um ouvinte não afete outros
  • Bug 33467 - __threadNum() extraiu o número incorretamente
  • Bug 29186 ,33299 - corrige a análise CLI de "-" no segundo argumento
  • Correção do bug de análise da CLI: -D arg1=arg2. Registre mais parâmetros de inicialização.
  • Corrija os analisadores JTidy e HTMLParser para manipular o formulário src= e o link rel=stylesheet
  • JMeterThread agora registra erros em jmeter.log que estavam aparecendo no console
  • Certifique-se de que a condição WhileController seja verificada dinamicamente
  • Bug 32790 garante se a condição do controlador é reavaliada a cada vez
  • Bug 30266 - documenta como exibir respostas de gravação de proxy
  • Bug 33921 ​​- a mesclagem não deve alterar o nome do arquivo
  • Fechar arquivo agora dá chance de salvar as alterações
  • Bug 33559 - correções no Runtime Controller

Outras mudanças:

  • Para ajudar na avaliação de variáveis, JMeterThread define "amostragem iniciada" um pouco mais cedo (consulte jmeter.properties)
  • Bug 33796 - exclua cookies com valores nulos/vazios
  • Melhor verificação da contagem de parâmetros na função JavaScript
  • Thread Group agora é padronizado para 1 loop em vez de para sempre
  • Todo o acesso ao Beanshell agora é feito através de uma única classe; só precisa de jar BSH em tempo de execução
  • Bug 32464 - documente as configurações do Direct Draw em jmeter.bat
  • Bug 33919 - aumenta o tamanho do campo do contador
  • Bug 32252 - ForEach não estava inicializando contadores

Versão 2.0.2

Nova funcionalidade:

  • Enquanto Controlador
  • Scripts de inicialização do BeanShell
  • Result Saver pode opcionalmente salvar apenas resultados com falha
  • Exibir como HTML tem opção de não baixar quadros e imagens etc
  • Vários elementos de árvore agora podem ser ativados/desativados/copiados/colados de uma só vez
  • Função __split() adicionada
  • O bug 28699 permite que a Assertion considere respostas malsucedidas - por exemplo, 404 - como bem-sucedidas
  • Bug 29075 Regex Extractor agora pode extrair dados do cabeçalho de resposta http, bem como do corpo
  • As funções __log() agora podem gravar em stdout e stderr
  • O modificador de URL agora pode ignorar opcionalmente os parâmetros de consulta

Correções de bugs:

  • Se o controlador agora funciona após a primeira condição falsa Bug 31390
  • Regex GUI estava perdendo o controle da caixa de seleção do cabeçalho/corpo Bug 29853
  • Exibir como HTML agora lida com quadros e imagens relativas
  • Clique com o botão direito do mouse para abrir substituído por mesclar
  • Corrigir alguns problemas de arrastar e soltar
  • Corrigido o exemplo de demonstração foreach para que funcione
  • Bug 30741 prompt de senha SSL agora funciona novamente
  • StringFromFile agora fecha os arquivos no final do teste; iniciar e terminar agora opcional conforme pretendido
  • Bug 31342 Corrigido o texto dos cabeçalhos do SOAP Sampler
  • O proxy agora deve ser interrompido antes de ser removido Bug 25145
  • Link Parser agora suporta BASE href Bug 25490
  • Bug 30917 Classfinder ignora nomes duplicados
  • Bug 22820 Permitir que o valor do contador seja apagado
  • Bug 28230 Corrigir NPE no HTTP Sampler recuperando recursos incorporados
  • Melhorar o manuseio do StopTest; capture e registre mais alguns erros
  • ForEach Controller não executa mais nenhuma amostra se a primeira variável não estiver definida
  • Bug 28663 NPE na execução remota de JDBC
  • Bug 30110 Deadlock no processamento stopTest
  • Bug 31696 Duração não funciona corretamente ao usar o Agendador
  • JMeterContext agora usa ThreadLocal - deve corrigir alguns erros potenciais de NPE

Versão 2.0.1

Versão de correção de bug. A definir.

Versão 2.0

  • Análise HTML melhorada; agora tem a escolha de 3 analisadores, e a maioria dos elementos incorporados agora podem ser detectados e baixados.
  • Os redirecionamentos agora podem ser delegados a URLConnection definindo a propriedade JMeter HTTPSamper.delegateRedirects=true (o padrão é false)
  • Métodos Stop Thread e Stop Test adicionados para Samplers e Assertions etc. Samplers podem chamar setStopThread(true) ou setStopTest(true) se detectarem um erro que precisa parar o thread do teste após o processamento da amostra
  • O Thread Group Gui agora tem um painel extra para especificar o que acontece após um erro do Sampler: Continue (como agora), Stop Thread ou Stop Test. Isso precisa ser estendido para um nível mais baixo em algum momento.
  • Adicionado Desligar ao Menu Executar. Isso é o mesmo que Stop, exceto que permite que os Threads terminem normalmente (ou seja, após a conclusão da próxima amostra)
  • As amostras remotas podem ser armazenadas em cache até o final de um teste definindo a propriedade hold_samples=true ao executar o servidor. É necessário mais trabalho para poder controlar isso a partir da GUI
  • O servidor proxy tem a opção de pular os cabeçalhos do navegador de gravação
  • A reinicialização do proxy funciona melhor (parar aguarda a conclusão do daemon)
  • O agendador ignora o início se já tiver passado
  • Agendador agora tem função de atraso
  • adicionado elemento de teste Summariser (principalmente para não GUI). Isso imprime estatísticas resumidas no System.out e/ou no arquivo de log de vez em quando (3 minutos por padrão). Vários resumos podem ser usados; as amostras são acumuladas pelo nome do resumidor.
  • Opções extras do servidor proxy: Crie todos os samplers com keep-alive desativado Adicione marcadores de separador entre conjuntos de amostras Adicione asserção de resposta ao primeiro amostrador em cada conjunto
  • O Plano de Teste tem um campo de comentários
  • A página de ajuda agora pode ser colocada em segundo plano
  • Página de ajuda de função separada
  • Funções novas/alteradas
    • Funções __property() e __P()
    • __log() e __logn() - para gravar no arquivo de log
    • _StringFromFile agora pode processar uma sequência de arquivos, por exemplo, dir/file01.txt, dir/file02.txt etc
    • A função _StringFromFile() agora pode usar uma variável ou função para o nome do arquivo
  • Declarações novas/alteradas
    • A declaração de resposta agora funciona para URLs e lida melhor com dados nulos
    • A Asserção de Resposta agora também pode corresponder ao Código de Resposta e à Mensagem de Resposta
    • Asserção HTML usando JTidy para verificar HTML bem formado
  • Se o controlador (ainda não estiver totalmente funcional)
  • Transaction Controller (agrega os tempos de seus filhos)
  • Novos Amostradores
    • Amostrador BSF Básico (opcional)
    • BeanShell Sampler (opcional, precisa ser baixado em www.beanshell.org
    • Amostrador TCP Básico
  • Opcionalmente, inicie o servidor BeanShell (permite acesso remoto a variáveis ​​e métodos JMeter)

Versão 1.9.1

A definir

Versão 1.9

  • Os arquivos de log de resultados de amostra agora podem estar no formato CSV ou XML
  • Novo modelo de evento para notificação de eventos de iteração durante a execução do plano de teste
  • Nova função Javascript para executar instruções javascript arbitrárias
  • Muitas melhorias na GUI
  • Novos pré-processadores e pós-processadores substituem os modificadores e modificadores baseados em resposta.
  • Compatível com jdk1.3
  • As funções JMeter agora são totalmente recursivas e universais (podem usar funções como parâmetros para funções)
  • A janela de ajuda integrada agora suporta links de hipertexto
  • Nova função aleatória
  • Nova declaração XML
  • Novo amostrador LDAP (código alfa)
  • Nova tarefa Ant para executar o JMeter (na pasta extras)
  • Nova implementação de teste do Java Sampler (para ajudar os desenvolvedores)
  • Uso mais eficiente da memória, carregamento mais rápido de arquivos .jmx
  • Novo Amostrador SOAP (código alfa)
  • Novo cálculo da mediana no visualizador de resultados de gráfico
  • Elemento de configuração padrão adicionado para benefício do desenvolvedor
  • Vários aprimoramentos de desempenho durante o teste
  • Novo gravador de arquivo simples para sobrecarga mínima de GUI durante a execução de teste
  • Nova Função: StringFromFile - pega valores de um arquivo
  • Nova função: CSVRead - pega vários valores de um arquivo
  • As funções agora precisam ser codificadas - valores especiais devem ser escapados com "\" se forem valores literais
  • Nova funcionalidade recortar/copiar/colar
  • O teste SSL deve funcionar com menos falsificação do usuário e no modo não-gui
  • Mailer Model funciona no modo não-gui
  • Novo controlador de taxa de transferência
  • Novo controlador de módulo
  • Os testes agora podem ser programados para serem executados de um determinado horário até um determinado horário
  • Os servidores JMeter remotos podem ser iniciados a partir de um cliente não-gui. Além disso, no modo gui, todos os servidores remotos podem ser iniciados com um único clique
  • ThreadGroups agora podem ser executados em série ou em paralelo (padrão)
  • Novas opções de linha de comando para substituir propriedades
  • Nova declaração de tamanho

Versão 1.8.1

  • Versão de correção de bug. Muitos bugs foram corrigidos.
  • Removido o nó "Raiz" redundante da árvore de teste.
  • Ícones reintroduzidos na árvore de teste.
  • Alguma reorganização do código para melhorar o processo de compilação.
  • A Árvore de Resultados da Visualização adicionou a opção de visualizar os resultados como um documento da web (ainda com erros neste momento).
  • Nova linha Total no Ouvinte Agregado (ainda com erros neste ponto).
  • Melhorias na capacidade de alterar as configurações de localidade do JMeter.
  • Melhorias no Gerenciador de SSL.

Versão 1.8

  • Melhoria nos cálculos do relatório Agregado.
  • Log de aplicativos simplificado.
  • Nova Asserção de Duração.
  • Corrigido e melhorado Mailer Visualizer.
  • Melhorias na recuperação de recursos do HTTP Sampler (sockets e handles de arquivo).
  • Melhorando o tratamento interno do JMeter para iniciar/parar testes.
  • Corrigindo e adicionando opções ao comportamento de Interleave e Random Controllers.
  • Novo elemento de configuração do contador.
  • Novo elemento de configuração de parâmetros do usuário.
  • Melhor desempenho do abridor de arquivos.
  • Funções e outros elementos podem acessar variáveis ​​globais.
  • Sistema de ajuda disponível na GUI do JMeter.
  • Elementos de teste podem ser desativados.
  • O idioma/localidade pode ser alterado durante a execução do JMeter (principalmente).
  • A Árvore de Resultados da Visualização pode ser configurada para registrar apenas erros.
  • Várias correções de bugs.

Versão 1.7.3

  • Novas funções que fornecem mais capacidade de alterar solicitações dinamicamente durante execuções de teste.
  • Novas traduções de idiomas em japonês e alemão.
  • Removidas mensagens de erro do Log4J irritantes.
  • Suporte aprimorado para carregar arquivos de plano de teste da versão JMeter 1.7 (arquivos .jmx).
  • O JMeter agora suporta servidores proxy que requerem autenticação de nome de usuário/senha.
  • A caixa de diálogo indicando a interrupção do teste não trava o JMeter em problemas com a interrupção do teste.
  • A GUI pode executar vários servidores JMeter remotos (corrige o bug da GUI que impedia isso).
  • Caixa de diálogo para ajudar a criar chamadas de função na GUI.
  • Nova opção Keep-alive em solicitações HTTP para indicar que o JMeter deve ou não usar Keep-Alive para soquetes.
  • As solicitações HTTP Post podem ter argumentos de estilo GET no campo Path. O proxy os registra corretamente agora.
  • Novas variáveis ​​estáticas em todo o teste definidas pelo usuário.
  • Exibir árvore de resultados agora exibe mais informações, incluindo nome da solicitação (correspondente ao nome na árvore de teste) e dados completos de solicitação e POST.
  • Removido o Visualizador de Resultados de Visualização obsoleto (em vez disso, use a Árvore de Resultados de Visualização).
  • Melhorias de desempenho.
  • Melhorias no uso da memória.
  • Melhorias na GUI do visualizador de gráfico.
  • Atualizações e correções no Mailer Visualizer.

Versão 1.7.2

  • O JMeter agora notifica o usuário quando o teste parou de ser executado.
  • O servidor proxy HTTP registra solicitações HTTP com redirecionamento desativado.
  • Solicitações HTTP podem ser instruídas a seguir redirecionamentos ou ignorá-los.
  • Várias melhorias na GUI.
  • Novo controlador aleatório.
  • Novo Amostrador SOAP/XML-RPC.

Versão 1.7.1

  • A arquitetura do JMeter foi renovada para uma separação mais completa entre o código GUI e o código do mecanismo de teste.
  • Uso do código Avalon para salvar planos de teste em XML como objetos de configuração
  • Todos os ouvintes podem salvar dados em arquivo e carregar os mesmos dados posteriormente.

Versão 1.7Beta

  • Melhor suporte XML para caracteres especiais (Tushar Bhatia)
  • Funcionamento sem interface gráfica e execução de plano de teste sem interface gráfica (Tushar Bhatia)
  • Removendo a dependência do Swing das classes base do JMeter
  • Internacionalização (Takashi Okamoto)
  • Correção de bug do AllTests (neth6@atozasia.com)
  • Correção de bug do ClassFinder (neth6@atozasia.com)
  • Novo controlador de loop
  • O Proxy Server registra amostras HTTP do navegador (e documentado no manual do usuário)
  • Suporte a formulários de várias partes
  • Classe de cabeçalho HTTP para personalização de cabeçalho
  • Extraindo informações do cabeçalho HTTP das respostas (Jamie Davidson)
  • Mailer Visualizer adicionado novamente ao JMeter
  • JMeter agora url codifica nomes e valores de parâmetros
  • os ouvintes não dão mais exceções se seus gui's não foram inicializados
  • HTTPS e autorização trabalhando juntos
  • Nova amostragem Http que analisa automaticamente a resposta HTML para download de imagens e inclui o download dessas imagens no tempo total para solicitação (Neth neth6@atozasia.com)
  • As respostas HTTP do servidor podem ser analisadas para links e formulários, e dados dinâmicos podem ser extraídos e adicionados a amostras de teste em tempo de execução (documentado)
  • Novo recurso Ramp-up (Jonathan O'Keefe)
  • Novos visualizadores (Net)
  • Novas asserções para testes funcionais

Versão 1.6.1

  • Corrigido o salvamento e carregamento de scripts de teste (sem mais linhas extras)
  • Pode salvar e carregar caracteres especiais (como "&" e "<").
  • Pode salvar e carregar temporizadores e ouvintes.
  • Correção de bug menor para cookies (se o valor do cookie continha um "=", ele quebrou).
  • URLs podem amostrar portas diferentes de 80 e podem testar HTTPS, desde que você tenha os jars necessários (JSSE)

Versão 1.6 Alfa

  • Nova IU
  • Separação de GUI e código lógico
  • Nova estrutura de plug-ins para novos módulos
  • Desempenho aprimorado
  • Camadas de lógica de teste para maior flexibilidade
  • Adicionado suporte para salvar elementos de teste
  • Adicionado suporte para testes distribuídos usando um único cliente

Versão 1.5.1

  • Corrigido o erro que fazia com que os cookies não fossem lidos se o nome do cabeçalho não fosse o esperado.
  • Clone entradas antes de enviar para o sampler - evita que as realocações estraguem as informações entre os encadeamentos
  • Pequena correção de bug na caixa de diálogo de conveniência para adicionar parâmetros à amostra de teste. Bug impediu que entradas na caixa de diálogo aparecessem na amostra de teste.
  • Adicionado xerces.jar à distribuição
  • Adicionei junit.jar à distribuição e criei alguns testes.
  • Começou a trabalhar no novo framework. Novos arquivos no cvs, mas ainda não efetuam o programa.
  • Corrigido bug que impedia HTTPJMeterThread de atrasar de acordo com o timer escolhido.

Versão 1.5

  • Abstraiu o conceito de Sampler, SamplerController e TestSample. Um Sampler representa um código que entende um protocolo (como HTTP, ou FTP, RMI, SMTP, etc.). É o código que realmente faz a conexão com o que está sendo testado. Um SamplerController representa o código que entende como organizar e executar um grupo de amostras de teste. É o que une um Sampler e suas amostras de teste e as executa. Um TestSample representa o código que entende como coletar informações do usuário sobre um teste específico. Para um site, representaria um URL e qualquer informação a ser enviada com o URL.
  • A interface do usuário foi atualizada para facilitar a entrada de amostras de teste.
  • Grupos de threads foram adicionados, permitindo que um usuário configure vários testes para serem executados simultaneamente e para permitir o compartilhamento de amostras de teste entre esses testes.
  • Agora é possível salvar e carregar amostras de teste.
  • … e muitas outras pequenas alterações/melhorias…

Apache JMeter 1.4.1-dev

  • Código URLSampler limpo após toneladas de patches para melhor legibilidade. (SM)
  • Fez o JMeter enviar um identificador especial "user-agent". (SM)
  • Corrigidos problemas com redirecionamento não enviando cookies e informações de autenticação e removido um aviso com compilação de jikes. Obrigado a Wesley Tanaka pelos patches (SM)
  • Corrigido um bug no URLSampler que fazia pular uma URL ao testar listas de URLs e um problema com o manuseio de Cookie. Obrigado a Graham Johnson pelos patches (SM)
  • Corrigido um problema com ações POST. Obrigado a Stephen Schaub pelo patch (SM)

Apache JMeter 1.4 - 11 de julho de 1999

  • Corrigido um problema com ações POST. Obrigado a Brendan Burns pelo patch (SM)
  • Adicionado o botão Fechar à caixa Sobre para os gerenciadores de janela que não o fornecem. Obrigado a Jan-Henrik Haukeland por apontar isso. (SM)
  • Adicionado o visualizador de amostra Spline simples (JPN)

Apache JMeter 1.3 - 16 de abril de 1999

  • Execute o Garbage Collector e execute a finalização antes de iniciar a amostragem para garantir o mesmo estado todas as vezes (SM)
  • Corrigido alguns NullPointerExceptions aqui e ali (SM)
  • Recursos de autenticação HTTP (RL) adicionados
  • Adicionado visualizador de amostra em janela (SM)
  • Corrigido bug estúpido para argumentos de linha de comando. Obrigado a Jorge Bracer por apontar isso (SM)

Apache JMeter 1.2 - 17 de março de 1999

  • Recursos de cookies integrados com JMeter (SM)
  • Adicionado o gerenciador de cookies e o analisador de arquivos Netscape (SD)
  • Corrigido erro de compilação para JDK 1.1 (SD)

Apache JMeter 1.1 - 24 de fevereiro de 1999

  • Criou a oportunidade de criar alias de URL a partir do arquivo de propriedades, bem como a capacidade de associar aliases a sequências de URL em vez de URLs únicos (SM) Obrigado a Simon Chatfield pelas sugestões e exemplos de código muito agradáveis.
  • Removido o TextVisualizer e substituído pelo muito mais útil FileVisualizer (SM)
  • Adicionada a lista de bugs conhecidos (SM)
  • Removido o logotipo Java Apache (SM)
  • Corrigido alguns erros de digitação (SM)
  • Adicionado makefile UNIX (SD)

Apache JMeter 1.0.1 - 25 de janeiro de 1999

  • Problemas pendentes removidos do documento (SM)
  • Corrigido o script unix (SM)
  • Adicionada a possibilidade de executar o JAR diretamente usando "java -jar ApacheJMeter.jar" com Java 2 (SM)
  • Algumas pequenas atualizações: localização fixa do Swing após o lançamento do Java 2(tm), atualização de licença e pequenas limpezas (SM)

Apache JMeter 1.0 - 15 de dezembro de 1998

  • Versão inicial. (SM)

Go to top