Historique des modifications précédentes

Cette page détaille les modifications apportées aux versions précédentes uniquement.
Les changements actuels sont détaillés dans Changements .

Les sections de modifications sont classées par ordre chronologique du haut (la plus récente) au bas (la moins récente)

Variante 5.4.2

Sommaire

Cette version est une version de correctif contre la vulnérabilité CVE-2021-44228 : les fonctionnalités JNDI d'Apache Log4j2 ne protègent pas contre LDAP contrôlé par l'attaquant et d'autres points de terminaison liés à JNDI.

Nouveau et remarquable

Améliorations de l'expérience utilisateur

Modifications incompatibles

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

Général

Changements non fonctionnels

  • Mise à jour d'Apache log4j2 vers 2.16.0 (à partir de 2.13.3).

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

Documentation

Général

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.
  • Depuis Java 11, l'implémentation JavaScript Nashorn est obsolète . Java émettra les avertissements de dépréciation suivants, si vous utilisez JavaScript basé sur Nashorn.
    Avertissement : Le moteur Nashorn devrait être supprimé d'une future version du JDK
    
    Pour désactiver ces avertissements, ajoutez -Dnashorn.args=--no-deprecation-warning à vos arguments Java. Cela peut être réalisé en définissant la variable d'environnement JVM_ARGS
    exporter JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • Avec Java 15, l'implémentation JavaScript Nashorn a été supprimée . Pour rajouter un moteur JavaScript compatible JSR-223, vous avez deux options :
    Utiliser Mozilla Rhino
    Copiez rhino-engine-1.7.13.jar dans $JMETER_HOME/lib/ext .
    Utiliser OpenJDK Nashorn
    L'implémentation OpenJDK Nashorn se présente sous la forme d'un module. Pour l'utiliser, vous devrez le télécharger et l'ajouter au chemin du module. Un moyen hacky de télécharger la version 15.0 et ses dépendances et de définir le chemin du module est décrit ci-dessous :
    bibliothèque mkdir/modules
    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
          

Version 5.4.1

Sommaire

Nouveau et remarquable

Améliorations de l'expérience utilisateur

Modifications incompatibles

  • Redémarrez après que le changement LAF a été rétabli, il avait été supprimé dans JMeter 5.3

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

Général

  • Bogue 65028 - Ajout de documentation pour la propriété client.rmi.localport
  • Bogue 65012 - Meilleure gestion de l'affichage de longs commentaires dans l'interface graphique

Changements non fonctionnels

  • Mise à jour de SaxonHE vers 9.9.1-8 (depuis 9.9.1-7)
  • Asm mis à jour vers 9.0 (à partir de 7.3.1)
  • Bouncycastle mis à jour à 1.67 (de 1.66)
  • Mise à jour de la caféine à 2.8.8 (de 2.8.0)
  • Commons-codec mis à jour vers 1.15 (à partir de 1.14)
  • Mise à jour de commons-io vers 2.8.0 (de 2.7)
  • Mise à jour de commons-net vers 3.7.2 (de 3.7)
  • Jackson mis à jour vers 2.10.5 (depuis 2.10.3)
  • Junit mis à jour vers 4.13.1 (à partir de 4.13)
  • Mise à jour de ph-commons vers 9.5.1 (à partir de 9.4.1)
  • Ph-css mis à jour vers 6.2.3 (à partir de 6.2.1)
  • Groovy mis à jour vers 3.0.7 (à partir de 3.0.5)
  • Mise à jour de xstream vers 1.4.15 (à partir de 1.4.14)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 64955 - Le mot de passe du magasin de clés n'est pas réinitialisé lors du rechargement
  • Bogue 65002 - L'enregistreur de script de test HTTP(S) crée une URL d'authentification de base non valide. Contribué par Ubik Load Pack (https://ubikloadpack.com)
  • Bogue 65004 - L'enregistreur de script de test HTTP(S) calcule une mauvaise requête HTTP qui interrompt l'application. Contribué par Ubik Load Pack (https://ubikloadpack.com)
  • Bogue 64543 - Sur MacOSX, le thème Darklaf- IntelliJ lance NPE dans javax.swing.ToolTipManager.initiateToolTip
  • Bogue 65024 - L'envoi d'un type mime avec paramètre lève IllegalArgumentException
  • Bogue 65029 - Essayez plus fort de deviner correctement l'URL des applets, lorsque le téléchargement des URL intégrées est activé

Autres échantillonneurs

  • Bogue 65034 - Ignorer SocketTimeoutException sur BinaryTCPClientImpl , lorsqu'aucun octet EOM n'est défini. Régression introduite par le commit c190641e4f0474a34a366a72364b0a8dd25bfc81 qui a corrigé le bogue 52104 - . Ce bogue était sur le point de gérer le cas d'attente d'un EOM.

Contrôleurs

Les auditeurs

  • Bogue 64821 - Lors de l'importation de fichiers jtl au format XML, les sous-échantillonneurs sont renommés
  • Bogue 65052 - Le testeur XPath2 et le testeur JSON JMESPath sont manquants dans la propriété view.results.tree.renderers_order

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

Documentation

  • Bogue 64960 - Modification de la référence du planificateur dans la documentation du groupe de threads. Contribution de Ori Marko
  • Bogue 65006 - L'illustration de l'élément HTTP Request Defaults complété (Figure 4.4) contient des informations trompeuses

Général

  • Bogue 64957 - Lors de l'importation d'un exemple de plan de test, JMeter affiche une NullPointerException
  • Bogue 64961 - Darklaf : sous Windows 7, NPE dans BasicEditorPaneUI.cleanDisplayProperties avec Darklaf Intellij
  • Bogue 64963 - L'info-bulle de commentaire vide est visible
  • Bogue 64969 - RemoteJMeterEngineImpl#rexit ne désexporte pas RemoteJMeterEngineImpl à la sortie. Contribué par luo_isaiah sur qq.com
  • Bogue 64984 - Darklaf LAF : la sélection d'un élément de test ne fonctionne pas sous certaines résolutions d'écran sous Windows. Avec l'aide de Jannis Weis
  • Bogue 65008 - SampleResult.setIgnore() appelé depuis PostProcessor n'est pas pris en compte
  • Bogue 64993 - Daklaf LAF : la navigation dans les menus ne fonctionne pas avec les raccourcis clavier. Avec l'aide de Jannis Weis
  • Bogue 65013 - Le code cURL POST multipart/form-data avec des arguments entre guillemets n'est pas importé correctement

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.
  • Depuis Java 11, l'implémentation JavaScript Nashorn est obsolète . Java émettra les avertissements de dépréciation suivants, si vous utilisez JavaScript basé sur Nashorn.
    Avertissement : Le moteur Nashorn devrait être supprimé d'une future version du JDK
    
    Pour désactiver ces avertissements, ajoutez -Dnashorn.args=--no-deprecation-warning à vos arguments Java. Cela peut être réalisé en définissant la variable d'environnement JVM_ARGS
    exporter JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • Avec Java 15, l'implémentation JavaScript Nashorn a été supprimée . Pour rajouter un moteur JavaScript compatible JSR-223, vous avez deux options :
    Utiliser Mozilla Rhino
    Copiez rhino-engine-1.7.13.jar dans $JMETER_HOME/lib/ext .
    Utiliser OpenJDK Nashorn
    L'implémentation OpenJDK Nashorn se présente sous la forme d'un module. Pour l'utiliser, vous devrez le télécharger et l'ajouter au chemin du module. Un moyen hacky de télécharger la version 15.0 et ses dépendances et de définir le chemin du module est décrit ci-dessous :
    bibliothèque mkdir/modules
    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
          

Version 5.4

Sommaire

Nouveau et remarquable

Améliorations de l'expérience utilisateur

Bogue 62179 - Bogue 64658 - L'écran de démarrage est désormais modal pour l'application plutôt que pour le système, il ne bloque donc pas les autres applications au démarrage de JMeter.

Modifications incompatibles

  • Supprimez la fonctionnalité de journalisation LogKit de certaines classes. Cela visait à supprimer complètement la classe LoggingManager (elle est obsolète depuis JMeter 3.2), mais comme jmeter-plugins en dépendait, LoggingManager et notre adaptateur LogKit resteront pour cette version (mais sont toujours obsolètes).

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

  • Bogue 64555 - Définissez le champ d'en-tête JMSType via JMSProperties. Contribution de Daniel van den Ouden

Contrôleurs

Les auditeurs

  • Pull request #544 - Ajouter BackendListener qui envoie les résultats "bruts" à InfluxDB. Contribué par Graham Russell (graham sur ham1.co.uk)

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

  • Bogue 64824 - Tableau de bord/rapport HTML : renommer KO en FAIL
  • Bogue 64936 - Augmentez generate_report_ui.generation_timeout à 5 minutes pour gérer un test de performances important

Général

  • Bogue 64446 - Meilleure analyse des commandes curl avec une barre oblique inverse aux fins de ligne et prise en charge de la méthode PUT avec des arguments de données
  • Pull request #599 - Assurez-vous que tous les boutons ajoutés à la barre d'outils se comportent/apparaissent de manière cohérente. Contribution de Jannis Weis
  • Bogue 64581 - Autoriser SampleResult#setIgnore à influencer le comportement en cas d'erreur de l'échantillonneur
  • Bogue 64680 - Revenir à JMETER_HOME au démarrage pour détecter le répertoire d'installation de JMeter
  • Bug 64787 - Pull request #630 - Ajout d'une traduction en coréen. Contribution de Woonsan Ko (woonsan sur apache.org)
  • Bogue 64776 - Ajout de la possibilité d'installer un SecurityProvider supplémentaire. Contribution de Timo (ASF.Software.Timo sur Leefers.eu)

Changements non fonctionnels

  • Système de construction mis à niveau de Gradle à 6.7 (à partir de 6.6)
  • Pull request #594 - Mise à jour de neo4j-java-driver vers 4.2.0 (à partir de 1.7.5)
  • Bogue 64454 - Message d'erreur plus précis, lorsqu'aucune valeur de source de données ne peut être trouvée dans l'échantillonneur JDBC
  • Bogue 64440 - Exceptions de journal signalées via JMeterUtils#reportToUser même en mode GUI
  • Pull request #591 - Supprimer l'indicateur sudo obsolète du fichier travis. Deng Liming (liming.d.pro sur gmail.com)
  • Mise à jour de Darklaf vers 2.4.10 (depuis 2.1.1)
  • Mise à jour de Groovy vers 3.0.5 (depuis 3.0.3)
  • Pull request #596 - Utiliser des mots neutres dans la documentation
  • Bug 63809 - Pull request #557 - Mise à jour de commons-collections vers 4.4 (à partir de 3.2.2) tout en conservant les jars pour les anciennes commons-collections 3.x pour la compatibilité
  • Pull request #598 - Ajoutez une autre option pour créer des diffs sur la page de construction. Contribution de jmetertea (github.com/jmetertea)
  • Pull request #609 - Utilisez la nouvelle API pour l'installation de darklaf. Jannis Weis
  • Pull request #612 - Corrigez les fautes de frappe dans README.md . Basé sur les patchs de Pooja Chandak (poojachandak002 sur gmail.com)
  • Pull request #613 - Ajout de documentation pour les propriétés Darklaf. Jannis Weis
  • Mettre à jour SpotBugs vers 4.1.2 (à partir de 4.1.1), mettre à niveau spotbugs-gradle-plugin vers 4.5.0 (à partir de 2.0.0)
  • Mettre à jour le plugin org.sonarqube Gradle vers 3.0 (depuis 2.7.1)
  • Mettre à jour Apache ActiveMQ vers 5.16.0 (à partir de 5.15.11)
  • Mettre à jour Bouncycastle vers 1.66 (depuis 1.64)
  • Mettre à jour Apache commons-io vers 2.7 (à partir de 2.6)
  • Mettre à jour Apache commons-lang3 vers 3.11 (à partir de 3.10)
  • Mettre à jour Apache commons-net vers 3.7 (à partir de 3.6)
  • Mettre à jour Apache commons-pool2 vers 2.9.0 (depuis 2.8.0)
  • Mettre à jour Apache commons-text vers 1.9 (à partir de 1.8)
  • Mettre à jour equalsverifier vers 3.4.2 (à partir de 3.1.13)
  • Mettre à jour junit5 vers 5.6.2 (à partir de 5.6.0)
  • Mettre à jour Apache log4j2 vers 2.13.3 (à partir de 2.13.1)
  • Mettre à jour rsyntaxtextarea vers 3.1.1 (à partir de 3.1.0)
  • Mettre à jour JUnit5 vers 5.7.0 (à partir de 5.6.2)
  • Mettre à jour Rhino vers 1.7.13 (depuis 1.7.12)
  • Mettre à jour XStream vers 1.4.14 (à partir de 1.4.14.1)
  • Mettre à jour Apache commons-dbcp2 vers 2.8.0 (depuis 2.7.0)
  • Pull request #635 - Corrigez certains ratios d'image dans la documentation. Patch fourni par Vincent Daburon (vdaburon sur gmail.com)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 64479 - Régression : l'enregistreur de script HTTP(s) empêche un arrêt correct en mode non graphique
  • Bogue 64653 - Exclure Javascript et JSON de l'analyse des jeux de caractères des formulaires par proxy

Autres échantillonneurs

Contrôleurs

  • Bogue 64795 - Générer un rapport récapitulatif peut ne pas générer de ligne récapitulative dans l'intervalle configuré ( summariser.interval ) : Clarifier la documentation

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 64638 - JSON JMESPath Assertion / JSON Assertion : L'ouverture de l'interface graphique affiche une barre de défilement horizontale qui continue de glisser
  • Bogue 64915 - Le gestionnaire de cache JMeter se comporte mal lorsque "Utiliser l'en-tête Cache-Control/Expires" est coché

Les fonctions

I18N

Rapport / Tableau de bord

  • Bogue 64547 - Rapport/Tableau de bord : Assurez-vous que les codes de réponse graphiques par seconde ne sont pas interrompus par un code de réponse vide dans SampleResult. Contribué par Ubik Load Pack (https://ubikloadpack.com)
  • Bug 64617 - Rapport HTML : Dans le graphique Response Time Percentiles Over Time 90,95,99th percentile correspondent en réalité à 0.90, 0.95 et 0.99 percentiles
  • Bogue 64553 - Lors de l'utilisation de Transaction Controller, les octets envoyés et les octets reçus sont affichés sous la forme 0 dans influxdb (BackendListener)
  • Bogue 64624 - Utiliser un échappement moins agressif pour les chaînes JSON dans les messages d'erreur des rapports

Documentation

  • Pull request #571 - Corrigez le nom documenté de l'autorité de certification générée lors de l'utilisation de l'enregistreur de script proxy. Partie d'un plus grand PR. Vincent Daburon (vdaburon sur gmail.com)
  • Modifiez la documentation de la fonctionnalité d'en-tête spéciale du serveur miroir pour refléter l'implémentation.

Général

  • Bogue 64448 - Duplication de variable définie par l'utilisateur dans le menu contextuel du clic droit
  • Bogue 64499 - Quitter JMeter lorsque jmeterengine.stopfail.system.exit=true prend trop de temps si les threads ne sont pas arrêtés
  • Bogue 64510 - Darklaf - Le thème IntelliJ lance NPE dans DarkTreeUI sur MacOS
  • Bogue 64594 - Impossible d'entrer des valeurs variables au lieu de valeurs numériques dans les composants à l'aide de PowerTableModel (impacte les plug-ins tiers comme le débit de mise en forme de la minuterie)
  • Bogue 64475 - Menu Générer un rapport HTML : lorsque la génération du rapport échoue en raison d'un délai d'attente, le message d'erreur n'est pas explicite. Contribué par Ubik Load Pack (https://ubikloadpack.com)
  • Bogue 64627 - La manipulation par programme du flux de contrôle via les méthodes API de JMeterContext ne fonctionne pas comme avant la version 5.0. Contribution de Till Neunast
  • Bogue 64647 - groovy-dateutil est manquant dans la distribution
  • Bogue 64640 - Darklaf : NPE sur com.github.weisj.darklaf.ui.DarkPopupFactory.getPopupType(DarkPopupFactory.java:96)
  • Bogue 64641 - Darklaf : NPE sur com.github.weisj.darklaf.ui.tree.DarkTreeUI.isChildOfSelectionPath(DarkTreeUI.java:603) ~[darklaf-core-2.4.2-SNAPSHOT.jar:2.4.2-SNAPSHOT]
  • Bogue 64453 - Darklaf : Échec de l'enregistrement du plan de test en tant que nouveau dossier
  • Bug 64625 - Darklaf : essayer de sélectionner un dossier dans Parcourir entraîne une erreur popup et stacktrace
  • Bogue 64711 - Les couleurs de la zone de texte ne sont pas bonnes dans les modes sombres. Contribution de Jannis Weis
  • Bogue 64935 - Une classe de plugin cassée ne devrait pas empêcher JMeter de démarrer

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

  • Hiroyoshi Mitsumori (mitsumori chez mis.dev)

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.
  • Depuis Java 11, l'implémentation JavaScript Nashorn est obsolète . Java émettra les avertissements de dépréciation suivants, si vous utilisez JavaScript basé sur Nashorn.
    Avertissement : Le moteur Nashorn devrait être supprimé d'une future version du JDK
    
    Pour désactiver ces avertissements, ajoutez -Dnashorn.args=--no-deprecation-warning à vos arguments Java. Cela peut être réalisé en définissant la variable d'environnement JVM_ARGS
    exporter JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • Avec Java 15, l'implémentation JavaScript Nashorn a été supprimée . Pour rajouter un moteur JavaScript compatible JSR-223, vous avez deux options :
    Utiliser Mozilla Rhino
    Copiez rhino-engine-1.7.13.jar dans $JMETER_HOME/lib/ext .
    Utiliser OpenJDK Nashorn
    L'implémentation OpenJDK Nashorn se présente sous la forme d'un module. Pour l'utiliser, vous devrez le télécharger et l'ajouter au chemin du module. Un moyen hacky de télécharger la version 15.0 et ses dépendances et de définir le chemin du module est décrit ci-dessous :
    bibliothèque mkdir/modules
    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
          

Version 5.3

Sommaire

Nouveau et remarquable

Améliorations de l'expérience utilisateur

Ajout de l'aspect et de la convivialité de Darklaf qui améliore plusieurs composants.

Le niveau d'indentation de l'arborescence est plus facile à suivre :

Arbre JMeter avec le thème Darklaf Darcula
Arbre JMeter avec le thème Darklaf Darcula
Arbre JMeter avec le thème Darklaf IntelliJ
Arbre JMeter avec le thème Darklaf IntelliJ

Nouveaux thèmes d'apparence et de convivialité. Lumière : IntellJ, lumière solarisée, lumière HighContrast. Sombre : OneDark, Solarized Dark, HighContrast Dark.

Lorsqu'un élément de l'arborescence est désactivé, tous ses descendants sont affichés en gris. Par exemple, While Controller est désactivé dans l'arborescence suivante, ses enfants sont donc grisés. Il s'agit purement d'un changement d'interface utilisateur et le comportement n'est pas modifié.

Lorsque le contrôleur est désactivé, ses enfants sont donc gris
Lorsque le contrôleur est désactivé, ses enfants sont donc gris

Le menu contextuel de l'arborescence s'affiche même si la sélection de nœuds est modifiée. Auparavant, la fenêtre contextuelle disparaissait et il fallait d'abord sélectionner un nœud, puis lancer la fenêtre contextuelle.

L'aspect et la convivialité peuvent maintenant être mis à jour sans redémarrage

Utilisez CTRL  +  ALT  +  molette pour zoomer sur les polices. Le raccourci précédent était CTRL  +  SHIFT  +  molette , cependant, il était en conflit avec le défilement horizontal.

Le zoom intégré à l'application est plus cohérent (par exemple, parfois, toutes les étiquettes ou même les panneaux n'ont pas été mis à l'échelle). Par exemple : la visionneuse de journaux, l'éditeur de code JSR223 n'étaient pas mis à l'échelle auparavant avec la fonction de zoom avant/arrière

Le menu contextuel de l'arborescence est affiché pour la ligne complète, pas pour l'étiquette uniquement

Prise en charge de l'annulation et du rétablissement des champs modifiables. Les frappes sont CTRL  +  Z / CTRL  +  SHIFT  +  Z ou CMD  +  Z / CMD  +  SHIFT  +  Z selon le système d'exploitation. L'annulation est implémentée au niveau du champ (chaque champ a son propre historique) et l'historique est invalidé lorsque la sélection de l'arborescence change.

Marquez la langue actuellement sélectionnée dans le menu des options.

Marquez le niveau de journal actuellement sélectionné dans le menu des options.

Refonte de nombreuses interfaces utilisateur d'éléments de test (demande JUnit, contrôleur ForEach, contrôleur If, contrôleur de débit, WhileController, configuration du compteur, extracteur XPath2, boîte de dialogue Function Helper, fenêtre contextuelle de recherche, éléments JMS)

Modifications incompatibles

  • La valeur par défaut de httpclient4.time_to_live a été modifiée de 2000 à 60000 , cela signifie que les connexions HTTP vivront plus longtemps qu'avant. Cela a un impact sur la création de connexion et l'établissement de liaison SSL, voir Bug 64289
  • La mise à jour vers Groovy 3 ( Pull request #590 - ) pourrait casser certains anciens codes Groovy de vos tests. Consultez les notes de mise à jour de Groovy 3

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 64160 - Tester l'enregistreur de script de test HTTP/S : nommez le contrôleur de transaction/contrôleur simple en utilisant le préfixe sans le suffixe " -XXXX "
  • Bogue 64289 - Définissez httpclient4.time_to_live sur 60000 pour se rapprocher du comportement typique du navigateur

Autres échantillonneurs

  • Bogue 64288 - Requête JUnit : Améliorer l'expérience utilisateur
  • Bogue 64407 - Amélioration de l'UX de JMS Publisher. Contribué par Ubik Load Pack (https://ubikloadpack.com)
  • Bogue 64408 - Amélioration de l'UX de l'abonné JMS. Contribué par Ubik Load Pack (https://ubikloadpack.com)

Contrôleurs

  • Bogue 64277 - Contrôleur ForEach : Améliorer l'expérience utilisateur
  • Bogue 64280 - Si contrôleur : améliorer l'expérience utilisateur
  • Bogue 64282 - Contrôleur de débit : améliorer l'expérience utilisateur
  • Bogue 64287 - WhileController : Améliorer l'expérience utilisateur

Les auditeurs

  • Bogue 64150 - Afficher l'arborescence des résultats : Autoriser la modification des données de réponse dans les testeurs
  • Bogue 63822 - Afficher l'arborescence des résultats : conserver la position du volet divisé lors du changement de mode de rendu

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 64091 - La génération de planification de minuteur de débit précis est considérablement améliorée (par exemple, 2 secondes pour 10 millions d'échantillons)
  • Bogue 64281 - Configuration du compteur : améliorer l'expérience utilisateur
  • Bogue 64283 - Extracteur XPath2 : Améliorer l'expérience utilisateur

Les fonctions

  • Bogue 64070 - La fonction _timeshift ne fonctionne pas avec les formateurs de décalage
  • Bogue 64275 - Boîte de dialogue de l'assistant de fonction : améliorer l'expérience utilisateur

I18N

  • Bogue 64102 - Ajout d'une traduction chinoise pour le menu Outils. Contribution de Liu XP (liu_xp2003 sur sina.com)

Rapport / Tableau de bord

  • Bogue 64380 - Ajoutez un champ « Médiane » au tableau de bord et faites en sorte que les champs de centile de temps de réponse prennent en charge les nombres à virgule flottante. Contribué par Keith Mo (https://github.com/keithmork)
  • Bogue 64378 - La génération de rapport HTML ne devrait pas échouer si un plugin a enregistré un graphique et n'est plus présent dans le classpath, émet un avertissement à la place

Général

  • Bug 63458 - Pull request #551 - Ajout d'un nouveau modèle "Plan de test de test fonctionnel [01]". Contribution de Sebastian Boga (sebastian.boga sur endava.com)
  • Bogue 64119 - Utiliser le premier moteur de rendu de la propriété view.results.tree.renderers_order par défaut dans Afficher l'arborescence des résultats
  • Bogue 64148 - Utiliser des icônes grises pour les éléments désactivés dans l'arborescence, afficher la sous-arborescence en gris
  • Bogue 64198 - Autoriser les espaces dans les expressions ${...} autour des fonctions.
  • Bogue 64276 - Fenêtre contextuelle de recherche : Améliorer l'expérience utilisateur
  • Pull request #573 - Améliorer le temps de démarrage : ignorer l'initialisation de l'interface utilisateur du plan de test
  • Pull request #585 - Ajout de JEXL3 comme alias de syntaxe pour JSyntaxTextArea. Contribué par drivera-armedia (https://github.com/drivera-armedia)
  • Pull request #590 - Mettre à jour Groovy vers 3.0.3.

Changements non fonctionnels

  • Système de construction mis à niveau de Gradle vers 6.3 (à partir de 6.1), Java 14 peut maintenant être utilisé pour la construction
  • Bug 63963 - Pull request #546 - Jackson mis à jour vers 2.10.3 (à partir de 2.9.10)
  • Bogue 64120 - Mise à jour de jsoup vers 1.13.1 (depuis 1.12.1)
  • Bogue 63809 - Mise à jour de commons-dbcp2 vers 2.7.0 (à partir de 2.5.0)
  • Mise à jour d'Apache ActiveMQ vers 5.15.11 (à partir de 5.15.8)
  • Bouncycastle mis à jour à 1.64 (de 1.60)
  • Asm mis à jour vers 7.3.1 (à partir de 7.1)
  • Mise à jour du codec Apache Commons vers 1.14 (à partir de 1.13)
  • Mise à jour du pool commun Apache vers 2.8.0 (à partir de 2.7.0)
  • Equalsverifier mis à jour vers 3.1.9 (à partir de 3.1.12)
  • Mise à jour d'Apache Groovy vers 2.4.18 (à partir de 2.4.16)
  • Mise à jour de hsqldb vers 2.5.0 (à partir de 2.4.1)
  • Hamcrest mis à jour à 2.2 (de 2.1)
  • Apache httpclient et httpmime mis à jour vers 4.5.12 (à partir de 4.5.10)
  • Mise à jour d'Apache httpcore et httpcore-nio vers 4.4.13 (à partir de 4.4.12)
  • Mise à jour d'Apache Tika vers 1.24.1 (depuis 1.22)
  • Mise à jour de jmespath vers 0.5.0 (depuis 0.3.0)
  • Mise à jour d'Apache log4j vers 2.13.1 (à partir de 2.12.1)
  • Junit4 mis à jour vers 4.13 (depuis 4.12)
  • Junit5 mis à jour vers 5.6.0 (à partir de 5.5.1)
  • Mise à jour de slf4j vers 1.7.30 (à partir de 1.7.28)
  • Mise à jour de ph-commons vers 9.4.1 (à partir de 9.3.7)
  • Ph-css mis à jour vers 6.2.2 (à partir de 6.2.0)
  • Mise à jour de rsyntaxtextarea vers 3.1.0 (à partir de 3.0.4)
  • Rhino mis à jour vers 1.7.12 (à partir de 1.7.11)
  • Mise à jour de SaxonHE vers 9.9.1-7 (depuis 9.9.1-5)
  • Mise à jour de cglib vers 3.2.12 (à partir de 3.2.9)
  • Mise à jour de commons-lang3 vers 3.10 (de 3.9)
  • Freemarker mis à jour vers 2.3.30 (à partir de 2.3.29)
  • Mise à jour de hamcrest-date vers 2.0.7 (depuis 2.0.4)
  • Equalsverifier mis à jour vers 3.1.13 (à partir de 3.1.12)
  • Mise à jour de xstream vers 1.4.11.1 (à partir de 1.4.11)
  • Pull request #559 - Ajoutez une note à la source de TrustAllSSLSocketFactory, indiquant qu'il n'est pas sûr de faire confiance à tout le monde. Basé sur un PR de YYTVicky (yytvicky sur github)
  • Pull request #588 - Ajout d'une documentation sur l'utilisation d'InfluxDB v2 pour des résultats en temps réel. Basé sur les relations publiques de Jakub Bednář (jakub.bednar sur gmail.com)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 64400 - Rendre le tri des échantillons enregistrés dans les contrôleurs de transaction plus prévisible
  • Bogue 64267 - Lorsque l'authentification préemptive est désactivée, l'échantillonneur HTTP ne répond pas automatiquement au défi d'authentification de base

Autres échantillonneurs

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 64091 - La minuterie de débit précise peut produire moins d'échantillons lorsqu'une courte durée de test est utilisée
  • Bogue 64142 - La présence de DebugPostProcessor dans le plan de test interrompt ActiveThread au fil du temps dans le rapport en raison d'informations manquantes
  • Bogue 64196 - Récursion plus approfondie dans les sous-échantillonneurs lors de la vérification des assertions
  • Bogue 64196 - Recurse dans sampleResults pour AbstractScopedTestElement#getSampleList
  • Bogue 64381 - PreciseThroughputTimer : à la fin, le message de journal contient une valeur négative

Les fonctions

I18N

Rapport / Tableau de bord

  • Bogue 64059 - Centiles de temps de réponse dans le temps, impossible de modifier les centiles

Documentation

  • Pull request #547 - Corrigez la documentation du niveau de journalisation. Transmis par jmetertea
  • Pull request #548 - Correction des fautes de frappe dans la documentation. Transmis par jmetertea
  • Bogue 64022 - Traduction chinoise correcte pour "Ignorer les blocs du sous-contrôleur". Fourni par yangxiaofei77 (yangxiaofei77 sur gmail.com)
  • Pull request #552 - Correction de la description de l'allocation de port client.rmi.localport . Contribué par anant-93
  • Pull request #543 - Clarifier la documentation de la fonction __StringToFile concernant la valeur par défaut de Append to file ? paramètre. Contribution de Ori Marko
  • Bogue 64302 - Corrigez les liens vers l'API JMeter dans les documents imprimables et les meilleures pratiques BeanShell et vers le site Web d'implémentation de JavaFX dans tous les documents. Signalé par 2477441814 (2477441814 sur qq.com)

Général

  • Bogue 63945 - NPE lors de l'ouverture d'un fichier après un changement de système de fichiers
  • Bogue 64034 - Les scripts shell échouent s'il y a de l'espace dans le chemin JAVA_HOME . Contribué par ray7219 (ray7219 sur hotmail.com)
  • Bogue 63856 - Définir connectTime sur les échantillons parents lors de l'utilisation d'un contrôleur de transaction
  • Bogue 64227 - Erreur lors du chargement des modèles sous Windows
  • Interface utilisateur de TestPlan : ignorez l'ajout de l'entrée au chemin de classe si l'utilisateur clique sur annuler

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

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

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.
  • Depuis Java 11, l'implémentation JavaScript Nashorn est obsolète . Java émettra les avertissements de dépréciation suivants, si vous utilisez JavaScript basé sur Nashorn.
    Avertissement : Le moteur Nashorn devrait être supprimé d'une future version du JDK
    
    Pour désactiver ces avertissements, ajoutez -Dnashorn.args=--no-deprecation-warning à vos arguments Java. Cela peut être réalisé en définissant la variable d'environnement JVM_ARGS
    exporter JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    

Variante 5.2.1

Sommaire

Nouveau et remarquable

Cette version est une version de correction de bogues mineurs. Veuillez consulter la page Historique des modifications pour afficher les dernières notes de version de la version 5.2.

Modifications incompatibles

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

  • Bogue 63926 - Configuration de la connexion JDBC : ajouter la possibilité de définir les propriétés de connexion

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

Général

Changements non fonctionnels

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

Contrôleurs

Les auditeurs

  • Bogue 63906 - NPE pour l'écouteur backend InfluxDB lors des tests de basculement

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

Rapport / Tableau de bord

Documentation

Général

  • Bogue 63910 - Maven poms cassé dans la version 5.2 publiée
  • Bogue 63911 - Le contenu d'ApacheJMeter_config.jar a changé (bin déplacé vers run et fichiers manquants)

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.
  • Depuis Java 11, l'implémentation JavaScript Nashorn est obsolète . Java émettra les avertissements de dépréciation suivants, si vous utilisez JavaScript basé sur Nashorn.
    Avertissement : Le moteur Nashorn devrait être supprimé d'une future version du JDK
    
    Pour désactiver ces avertissements, ajoutez -Dnashorn.args=--no-deprecation-warning à vos arguments Java. Cela peut être réalisé en définissant la variable d'environnement JVM_ARGS
    exporter JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    

Variante 5.2

Sommaire

Nouveau et remarquable

Cette version est une version majeure. Veuillez consulter la page Historique des modifications pour afficher les dernières notes de publication de la version 5.1.1.

Modifications incompatibles

  • HTTP(S) Test Script Recorder ajoute désormais un numéro à la fin des noms, alors qu'il l'ajoutait auparavant au début. Voir bogue 63450
  • Lors de l'utilisation de XPath Assertion avec une expression XPath renvoyant un booléen, True si rien ne correspond n'avait aucun effet et renvoyait toujours true, voir Bug 63455
  • L'analyse XML refuse désormais le XML non sécurisé, cela a des impacts sur les fonctionnalités suivantes :
    • Assertion XML
    • XMLSchemAssertionXMLSchemAssertion
    • Fonction XPath
    • Extracteurs XPath 1 et 2
    • Assertions XPath 1 et 2

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 63450 - Enregistreur de script de test HTTP(S) : mettre le numéro à la fin au lieu du début
  • Bogue 63790 - Téléchargement des ressources intégrées : optimisez l'analyse CSS en supprimant l'emplacement source

Autres échantillonneurs

  • Bogue 63406 - Configuration de la connexion JDBC : nouvelle option de pré-initialisation pour initialiser le pool de connexion. Contribution de Franz Schwab (franz.schwab sur exasol.com)
  • Bogue 63561 - Requête JDBC : Autoriser la récupération d'un certain nombre de lignes uniquement. Contribution de Franz Schwab (franz.schwab sur exasol.com)
  • Bogue 63801 - Ajout de la prise en charge du protocole Bolt pour la base de données Neo4j. Contribution de GraphAware (www.graphaware.com)

Contrôleurs

  • Bogue 63565 - Si contrôleur : problème de GC avec JMeter pendant l'exécution d'endurance lors de l'utilisation avec "Interpréter la condition comme une expression variable ?" décoché => Améliorer la documentation

Les auditeurs

  • Bogue 63720 - BackendListener : InfluxDBBackendListenerClient Ajoute la prise en charge d'InfluxDB 2. Contribution de Jakub Bednář (https://github.com/bednar)
  • Bogue 63770 - Afficher l'arborescence des résultats : ajouter un testeur JMESPath. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 62863 - Activer les magasins de clés PKCS11 pour une utilisation avec KeyStore Manager. Basé sur le patch de Clifford Harms (clifford.harms sur gmail.com).
  • Pull request #457 - Légère amélioration des performances dans PoissonRandomTimer en utilisant ThreadLocalRandom. Basé sur un patch de Xia Li.
  • Bogue 62787 - Nouvelle assertion XPath2 prenant en charge XPath2 avec de meilleures performances que l' assertion XPath . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63643 - Ignorer la nomenclature sur les fichiers ouverts via FileServer et utiliser la nomenclature pour détecter l'encodage des caractères, si aucun n'est donné explicitement. Rapporté par Havlicek Honza (havlicek.honza sur gmail.com)
  • Bogue 63727 - Nouvel élément JMESPath Extractor pour faciliter l'extraction de JSON à l'aide de la technologie JMESPath . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63763 - Nouvel élément d' assertion JMESPath pour faciliter l'assertion sur JSON à l'aide de la technologie JMESPath . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63775 - Autoriser Boundary Extractor à accepter des limites vides

Les fonctions

  • Bogue 63219 - Nouvelle fonction __StringToFile pour enregistrer/ajouter une chaîne dans un fichier. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Utilisez AtomicInteger pour __counter au lieu de la synchronisation par nous-mêmes

I18N

Rapport / Tableau de bord

  • Bogue 63471 - Les StringConverter utilisés pour la génération de rapports doivent ignorer les espaces blancs autour des nombres.

Général

  • Bogue 63396 - Éléments de test JSR223 : la description des paramètres est trompeuse, idem pour le script
  • Bogue 63480 - XPathAssertion et XPathAssertion2 : amélioration de la couverture de test pour les entrées provenant de variables. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63452 - Outils / Importer depuis cURL : couverture complète de toutes les options de ligne de commande valides dans le cas d'utilisation de JMeter. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63419 - Outils / Importer depuis cURL : Ajout de la possibilité d'importer un ensemble de commandes cURL depuis un fichier. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 63760 - JOrphanUtils : ajout d'un générateur de mot de passe alphanumérique aléatoire
  • Bogue 63355 - Afficher l'arborescence des résultats : l'option d'affichage du navigateur n'est pas disponible depuis Java 11, documentez comment la rendre disponible, voir ceci
  • Bogue 62861 - Groupe de threads : offre la possibilité de configurer si une nouvelle itération est un nouvel utilisateur ou le même utilisateur (sera appliqué sur Cookie Manager, Cache Manager et httpclient.reset_state_on_thread_group_iteration). Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63616 - Correction Javadoc :
    JMeterContext#getThreadNum()
    commence à 0 et non à 1. Contribué par Ori Marko (orimarko sur gmail.com)
  • Mise à jour vers httpclient/httpmime 4.5.10 (à partir de 4.5.7)
  • Mise à jour vers dnsjava 2.1.9 (à partir de 2.1.8)
  • Mise à jour vers jsoup 1.12.1 (à partir de 1.11.3)
  • Mise à jour vers rsyntaxtextarea 3.0.4 (à partir de 3.0.2)
  • Mise à jour vers la caféine 2.8.0 (à partir de 2.6.2)
  • Mise à jour vers commons-codec 1.13 (à partir de 1.11)
  • Mise à jour vers commons-lang3 3.9 (à partir de 3.8.1)
  • Mise à jour vers commons-pool 2.7 (à partir de 2.6)
  • Mise à jour vers commons-text 1.8 (depuis 1.6)
  • Mise à jour vers freemarker 2.3.29 (à partir de 2.3.28)
  • Mise à jour vers httpcore/httpcore-nio 4.12 (à partir de 4.11)
  • Mise à jour vers jodd 5.0.13 (à partir de 5.0.6)
  • Mise à jour vers log4j 2.12.1 (à partir de 2.11.1)
  • Mise à jour vers ph-commons 9.3.7 (depuis 9.2.1)
  • Mise à jour vers ph-css 6.2.0 (à partir de 6.1.1)
  • Mise à jour vers Mozilla Rhino 1.7.11 (à partir de 1.7.10)
  • Mise à jour vers Saxon-HE 9.9.1-5 (à partir de 9.9.1-1)
  • Mise à jour vers slf4j 1.7.28 (à partir de 1.7.25)
  • Mise à jour vers tika-core et tika-parsers 1.22 (à partir de 1.21)
  • Mise à jour de jackson-annotations, jackson-core et jackson-databind vers 2.9.10 (à partir de 2.9.8)

Changements non fonctionnels

  • Migration de subversion vers Git
  • Bogue 63630 - Basculer la construction d'Apache Ant vers Gradle
  • Bogue 63529 - Ajout de tests unitaires supplémentaires pour org.apache.jorphan.util.JOrphanUtils. Contribution de John Bergqvist (John.Bergqvist sur diffblue.com)
  • Mise à jour vers le dernier style de contrôle (version 8.22)
  • Nettoyage du code dans CompareAssertion et à d'autres emplacements. Basé sur le patch de Graham Russell (graham sur ham1.co.uk)
  • Pull request #491 - Augmenter la couverture des métriques Graphite. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #520 - Remplacez les classes anonymes par des expressions lambda. Contribution de Graham Russell (graham sur ham1.co.uk).
  • Pull request #524 - Migration de JUnit 4 vers JUnit 5. Contribution de Graham Russell (graham at ham1.co.uk).

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 63298 - Les requêtes HTTP avec des URL encodées sont envoyées au format décodé
  • Bogue 63364 - Lors de la définition de subresults.disable_renaming=true , les sous-résultats sont toujours renommés à l'aide de leur parent SampleLabel alors qu'ils ne devraient pas. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63129 - JMeter ne peut pas identifier l'encodage lors de la première soumission de page. Basé en partie sur l'analyse et les relations publiques faites par Naveen Nandwani (naveen.nandwani sur india.nec.com)
  • Bogue 62672 - La requête HTTP envoie des doubles requêtes lors de l'utilisation d'un proxy avec authentification. Basé sur le patch d'Artem Fedorov (artem.fedorov sur blazemeter.com) et contribué par BlazeMeter.
  • Bogue 63574 - Le gestionnaire de cache HTTP ne met pas en cache la ressource si l' en-tête Cache-Control est manquant.

Autres échantillonneurs

  • Bogue 63442 - Réduisez l'analyse des implémentations de LogParser dans AccessLogSamplerBeanInfo.
  • Bogue 63563 - LdapExtSampler : lorsque l'échantillonneur échoue avec une exception différente de NamingException, aucun SampleResult n'est généré
  • Bogue 63469 - JMSPublisher : condition de concurrence dans jms.client.ClientPool#clearClient

Contrôleurs

Les auditeurs

  • Bogue 63319 - ArrayIndexOutOfBoundsException dans le graphique agrégé lors de la sélection de colonnes à 90 % ou 95 %
  • Bogue 63423 - La sélection de lignes de tableau dans le graphique agrégé se perd trop souvent
  • Bogue 63347 - Afficher l'arborescence des résultats : le champ de recherche est si petit que même un seul caractère n'est pas visible sous Windows 7
  • Bogue 63433 - ListenerNotifier : problème détecté dans Listener NullPointerException si le nom de fichier est nul. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63674 - Supprime les résultats avec des sous-résultats plus profonds dans leur hiérarchie lorsque DataStripping est activé

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 63455 - Assertion XPath : Vrai si rien ne correspond ne fonctionne pas si l'expression XPath renvoie un booléen. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Les fonctions

I18N

Rapport / Tableau de bord

Documentation

  • Bogue 63513 - Ajout d'exemples MariaDB à la documentation JDBC. Contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 63484 - Ajoutez des notes pour utiliser Apache Velocity comme langage de script JSR223. Basé sur un patch d'Ori Marko (orimarko sur gmail.com)
  • Bogue 63519 - Pull request #471 - Utilisez la méthode correcte getLabelResource() dans le tutoriel JMeter. Contribué par Sun Tao (buzzerrookie sur hotmail.com>)

Général

  • Bogue 63394 - JMeter doit échouer avec une valeur différente de zéro lorsque l'exécution du test échoue (en raison d'un plan de test manquant ou d'une autre raison). Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 63464 - image/svg+xml est considéré à tort comme binaire
  • Bogue 63490 - À la fin de la durée du planificateur, de nombreux échantillonneurs sont exécutés en même temps
  • Pull request #480 , Pull request #482 - Correction de quelques fautes de frappe dans les commentaires et les messages de journal. Basé sur le patch d'Anass Benomar (anassbenomar sur gmail.com)
  • Bogue 63751 - Corrige une faute de frappe dans les traductions chinoises. Rapporté par Jinliang Wang (wjl31802 sur 126.com)
  • Bogue 63723 - Tests distribués : le nœud de contrôleur JMeter termine le test distribué bien que certains threads soient toujours actifs
  • Bogue 63614 - Tests distribués : impossible de générer le rapport du tableau de bord à la fin du test de charge
  • Bogue 63862 - Boîte de dialogue de recherche/Rechercher dans l'arborescence des résultats : exception non détectée si l'expression régulière est cochée et qu'elle n'est pas valide
  • Bogue 63793 - Correction de l'analyse XML non sécurisée

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

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

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.
  • Depuis Java 11, l'implémentation JavaScript Nashorn est obsolète . Java émettra les avertissements de dépréciation suivants, si vous utilisez JavaScript basé sur Nashorn.
    Avertissement : Le moteur Nashorn devrait être supprimé d'une future version du JDK
    
    Pour désactiver ces avertissements, ajoutez -Dnashorn.args=--no-deprecation-warning à vos arguments Java. Cela peut être réalisé en définissant la variable d'environnement JVM_ARGS
    exporter JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    

Variante 5.1.1

Sommaire

Nouveau et remarquable

Cette version est principalement une version de correction de bogues. Veuillez consulter la page Historique des modifications pour afficher les derniers comportements majeurs avec la version 5.1.

Rapports en direct et rapports Web

Une nouvelle entrée de menu a été ajoutée au menu Outils . Il permet de générer un rapport de résultats à partir d'un fichier CSV/JTL précédent.


Modifications incompatibles

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 62977 - Autoriser l'envoi de requêtes HTTP sans en-tête User-Agent par défaut

Autres échantillonneurs

  • Bogue 63185 - Éléments liés à LDAP : ajout d'une option pour approuver implicitement les connexions SSL/TLS/désactiver la vérification du nom d'hôte. Basé sur la contribution de Brian Wolfe (wolfebrian2120 sur gmail.com)

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 63178 - Extracteur de sélecteur CSS : amélioration des performances de l'implémentation basée sur JODD (JoddExtractor)

Les fonctions

I18N

Rapport / Tableau de bord

  • Bogue 59896 - Rapport/Tableau de bord : Ajout d'une entrée de menu pour générer un rapport à la demande à partir d'un fichier CSV. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Général

  • Pull request #444 - Mise à jour vers le dernier Spock v1.2 (auparavant 1.0). Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #446 - Améliorer la lisibilité des tests unitaires et l'utilisation de Spock. Contribué par Graham Russell (graham sur ham1.co.uk)

Changements non fonctionnels

  • Bogue 63203 - Tests unitaires : remplacer l'utilisation de @Deprecated par @VisibleForTesting pour les méthodes/constructeurs/classes rendus publics pour les tests unitaires uniquement
  • Pull request #449 - Refactoriser et tester ResponseTimePercentilesOverTimeGraphConsumer. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #450 - Améliorations du consommateur de graphiques abstraits. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #451 - Amélioration de quelques tests unitaires et classes. Contribué par Graham Russell (graham sur ham1.co.uk)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

Autres échantillonneurs

  • Bogue 63202 - JMS Publisher : ObjectMessageRenderer crée une instance XStream avec une sécurité non initialisée

Contrôleurs

Les auditeurs

  • Bogue 63204 - RenderAsJSON#prettyJSON : JSONParser#parse ne peut pas renvoyer la valeur JSON

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 62446 - La documentation du compteur est erronée dans les champs requis. Contribué par orimarko sur gmail.com
  • Bogue 62327 - TestPlan : dans la table de la bibliothèque, si le chemin est modifié et le plan enregistré, la modification est perdue lors du rechargement du fichier

Les fonctions

  • Bogue 63241 - __threadGroupName provoque une exception NullPointerException s'il est appelé à partir de threads non test

I18N

Rapport / Tableau de bord

  • Bogue 63198 - Les graphiques Temps de réponse par rapport à la demande et Latence par rapport à la demande ne correspondent pas au débit. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Documentation

Général

  • Bogue 63201 - SearchTreeDialog disparaît derrière le maître JFrame. Contribution de Benoit Vatan (benoit.vatan sur gmail.com)
  • Bogue 63220 - Function Helper Dialog , Export transactions for report et Import from cURL disparaissent étant maître JFrame. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63207 - java.lang.NullPointerException : null lors de l'exécution de JMeter 5.1 avec des options de proxy
  • Bogue 58183 - La montée en puissance peut ne pas être respectée si le thread met du temps à démarrer, ce qui conduit à des threads continuant à démarrer après le temps de montée en puissance

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

  • Pack de chargement Ubik
  • Benoît Vatan (benoit.vatan sur gmail.com)
  • Graham Russell (graham sur ham1.co.uk)
  • Brian Wolfe (wolfebrian2120 sur gmail.com)
  • orimark sur gmail.com

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Variante 5.1

Sommaire

Nouveau et remarquable

Améliorations de base

Les tests JDBC ont été améliorés avec la possibilité de définir des instructions SQL init et d'ajouter la compatibilité avec les pilotes JDBC qui ne prennent pas en charge QueryTimeout

  • Divers correctifs de bogues ont été implémentés, comme la collecte des en-têtes corrects lors de l'enregistrement des demandes via l'enregistreur de script de test HTTP (S) à l'aide de HTTPS
  • Dans la version 5.0, JMeter a été modifié pour renommer les résultats Sub à l'aide d'une stratégie de nommage personnalisée ( bug 62550 ). Ce changement pourrait être gênant pour Functional Testing, une nouvelle propriété subresults.disable_renaming=true a été introduite pour revenir si nécessaire au comportement précédent. Une alternative consiste à vérifier le mode de test fonctionnel dans le plan de test, voir le bogue 63055

Améliorations de l'expérience utilisateur

Les modèles peuvent fournir des paramètres qui sont renseignés lors de la génération du plan de test, le modèle d' enregistrement utilise cette fonctionnalité

Un nouveau menu Outils a été introduit pour collecter ces entrées, qui sont utilisées pour un usage général autour de JMeter, comme :

  • Boîte de dialogue de l'assistant de fonction
  • Exporter les transactions pour le rapport
  • Générer une vue schématique qui fournit une vue d'ensemble au format HTML du plan de test
  • Importer depuis cURL qui vous permet de créer ou de mettre à jour votre plan de test en important une commande cURL
  • Compiler les éléments de test JSR223
  • Créer un vidage de tas
  • Créer un thread dump

Plan de test

Possibilité de créer un plan de test à partir d'une commande cURL.

Améliorations des scripts/débogage

  • Un élément de menu pour compiler tous les éléments JSR223 est maintenant disponible dans le menu Outils

Rapports en direct et rapports Web

  • Un fichier JSON contenant un résumé des statistiques d'un test de charge est désormais généré lors de l'utilisation des options -e ou -g .
  • L'algorithme de calcul des centiles au fil du temps a été modifié pour redémarrer pour chaque tranche de temps
  • Comportement plus convivial lorsque le dossier de rapport n'existe pas ou n'est pas vide via l' option de ligne de commande -f

Modifications incompatibles

  • Dans le graphique des centiles de temps de réponse au fil du temps (réponses réussies) du rapport HTML, avant cette version, le calcul du centile de chaque plage horaire utilisait les données de centile de la plage horaire précédente comme base. A partir de cette version, chaque tranche horaire est indépendante. Voir bogue 62883
  • La signature ClientJMeterEngine#rsetProperties a été modifiée pour utiliser HashMap<String,String> au lieu de Properties, voir Bug 63034
  • Un nouvel élément de menu Outils a été introduit, certains éléments de menu qui étaient dans le menu Aide sont maintenant sous ce nouvel élément de menu. Voir bogue 63094
  • slf4j-ext a été supprimé des bibliothèques (dossier lib) et JMeter pom. Il n'était pas utilisé par défaut et en raison de CVE-2018-8088 et de l'indisponibilité d'une version stable contenant un correctif à ce problème, nous avons décidé de le supprimer. Si vous en avez encore besoin, vous pouvez l'ajouter dans le dossier lib.

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 62840 - Requête HTTP : ajoutez l'option httpclient4.gzip_relax_mode pour éviter les erreurs lors de la décompression de ce qui semble être des flux invalides
  • Bogue 63025 - Amélioration de la fonctionnalité de recherche et de remplacement pour la requête HTTP afin d'inclure le champ de port et de protocole. Correction du code initial par Mohamed Ibrahim (rollno748 sur gmail.com)

Autres échantillonneurs

  • Bogue 62934 - Ajout de la compatibilité pour les pilotes JDBC qui ne prennent pas en charge QueryTimeout
  • Bogue 62935 - Transmettez les propriétés mail.* personnalisées à Mail Reader Sampler. Implémenté par Artem Fedorov (artem.fedorov sur blazemeter.com) et contribué par BlazeMeter.
  • Bogue 63055 - Ne renommez pas SampleResult Label lorsque le test s'exécute en mode fonctionnel ou la propriété subresults.disable_renaming=true . Implémenté par Artem Fedorov (artem.fedorov sur blazemeter.com) et contribué par BlazeMeter.

Contrôleurs

Les auditeurs

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 62766 - Configuration du magasin de clés : nous devrions charger tous les alias par défaut. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62832 - Configuration de la connexion JDBC : possibilité de définir des instructions SQL init. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Les fonctions

  • Bogue 63037 - Lors de l'utilisation de CSVRead, recherchez également le chemin de base du script pour les fichiers.

I18N

Rapport / Tableau de bord

  • Bogue 62883 - Rapport/Tableau de bord : Modifier la façon dont les centiles sont calculés pour le graphique des centiles de temps de réponse dans le temps (réponses réussies)
  • Bogue 63060 - Générateur de rapports : un générateur ne doit vérifier que les dossiers/fichiers qu'il génère et ne supprimer que ceux-là
  • Bogue 63059 - Créez un nouveau JsonExporter qui exporte au format JSON le contenu des données calculées pour le tableau HTML Dashboard Statistics. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63081 - L'option de ligne de commande -f ne supprime pas le dossier de rapport lors de l'utilisation de la génération uniquement via l'option de ligne de commande -g . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Général

  • Bogue 62959 - Possibilité de créer un plan de test à partir d'une commande cURL. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Pull request #394 - Autoriser les valeurs nulles dans FieldStringEditor . Basé sur le patch de Mingun (alexander_sergey sur mail.ru)
  • Bogue 62826 - Lors de la modification de LAF, faites redémarrer JMeter si l'utilisateur clique sur oui pour faire apparaître une fenêtre contextuelle
  • Bug 62257 - Pull request #401 - La touche courte Développer/Réduire - (signe moins) sur le pavé numérique ne fonctionne pas. Contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 62752 - Ajouter à la documentation : ctx.getThreadNum() est basé sur zéro tandis que ${__threadNum} est basé sur un
  • Pull request #411 - Utilisez SHA-1 au lieu de SHA1 dans org.apache.jmeter.save.SaveService . Contribution de Paco (paco.xu sur daocloud.io)
  • Bogue 62914 - Ajout d'un indice dans l'interface utilisateur du groupe de threads concernant la durée du test
  • Bogue 62925 - Ajout de la prise en charge de ThreadDump au JMeter non-GUI
  • Bogue 62870 - Modèles : ajout de la possibilité de fournir des paramètres. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62829 - Autoriser la spécification du schéma de serveur proxy pour l'échantillonneur de requêtes HTTP, l'onglet Avancé et l'option de ligne de commande. Contribution de Hitesh Patel (hitesh.h.patel sur gmail.com)
  • Bogue 59633 - Les menus Enregistrer le plan de test sous , Enregistrer comme fragment de test et Enregistrer la sélection sous... doivent utiliser un nouveau nom de fichier dans la boîte de dialogue Fichier
  • Bogue 61486 - Faire en sorte que jmeter-server et le mode non graphique s'exécutent sans tête
  • Bogue 63093 - Ajouter l'élément de menu Compiler les éléments de test JSR223 . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63094 - Introduire un nouveau menu Outils
  • Bogue 63101 - Proposer un élément de menu pour générer un aperçu lisible du plan de test
  • Bogue 63144 - Afficher l'arborescence des écouteurs prend beaucoup de temps pour ouvrir une réponse contenant un texte volumineux. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Changements non fonctionnels

  • Pull request #408 - Enregistre un message d'information au lieu d'une trace de pile, lorsque JavaFX est introuvable pour le composant RenderInBrowser .
  • Pull request #412 - Mise à jour de la traduction chinoise. Contribution de 刘士 (liushilive sur outlook.com).
  • Pull request #406 - Ajoutez un court paragraphe sur l'utilisation d'un gestionnaire de sécurité avec JMeter.
  • Bogue 62893 - Utilisez StringEscapeUtils de commons-text (version 1.6) au lieu de ceux obsolètes de commons-lang3.
  • Bogue 62972 - Pull request #435 - Remplace les appels à la méthode obsolète Class#newInstance .
  • Bogue 63034 - ClientJMeterEngine : faire en sorte que rsetProperties utilise HashMap<String,String> au lieu de Properties
  • Mise à jour vers httpclient/httpmime 4.5.7 (à partir de 4.5.6)
  • Mise à jour vers httpcore 4.4.11 (à partir de 4.4.10)
  • Mise à jour vers httpcore-nio 4.4.11 (à partir de 4.4.10)
  • Mise à jour vers tika-core et tika-parsers 1.20 (à partir de 1.18)
  • Mise à jour vers commons-dbcp2-2.5.0 (à partir de commons-dbcp2-2.4.0)
  • Mise à jour vers commons-lang3-3.8.1 (de commons-lang3-3.8)
  • Mise à jour vers groovy-all-2.4.16 (à partir de groovy-all-2.4.15)
  • Mise à jour vers httpasyncclient-4.1.4.jar (à partir de 4.1.3)
  • Mise à jour vers jsoup-1.11.3 (à partir de 1.11.2)
  • Mise à jour vers cglib-nodep-3.2.9 (à partir de cglib-nodep-3.2.7)
  • Mise à jour vers ph-commons-9.2.1 (à partir de ph-commons-9.1.2)
  • Mise à jour vers log4j-2.11.1 (à partir de log4j-2.11.0)
  • Mise à jour vers xmlgraphics-commons 2.3 (à partir de 2.2)
  • Bogue 63033 - Mise à jour vers Saxon-HE 9.9.1-1 (à partir de 9.8.0-12). Merci à Saxonica
  • Mise à jour vers xstream 1.4.11 (depuis 1.4.10)
  • Mise à jour vers jodd 5.0.6 (à partir de 4.1.4)
  • Mise à jour vers asm-7.0 (à partir de 6.1)
  • Mise à jour vers ActiveMQ 5.15.8 (à partir de 5.5.16)
  • Mise à jour vers rsyntaxtextarea-3.0.2 (à partir de 2.6.1)
  • Mise à jour vers apache-rat-0.13 (à partir de 0.12)
  • Mise à jour vers jacocoant-0.8.3 (à partir de 0.8.2)
  • Mise à jour vers hsqldb-2.4.1 (à partir de 2.4.0)
  • Mise à jour vers mina-core-2.0.19 (à partir de 2.0.16)
  • Bogue 62818 - Mise à jour de xercesImpl vers 2.12.0 (à partir de 2.11.0). Rapporté par Stefan Seide (stefan sur trilobyte-se.de)
  • Bogue 62744 - Mise à niveau de jquery vers la version 3.3.1, jquery-ui vers la 1.12.1, bootstrap vers la 3.3.7
  • Bogue 62821 - Pull request #405 - Utiliser les sommes de contrôle SHA-512 au lieu de MD5 pour vérifier les téléchargements jar
  • Bogue 63053 - Supprimez les renvois vers des composants internes jamais implémentés de la documentation utilisateur. Rapporté par U. Poblotzki (u.poblotzki sur thalia.de)
  • Bogue 63082 - Pull request #437 - Utiliser utf-8 pour les fichiers de propriétés dans la source
  • Bogue 63177 - Renommer le mode NON GUI en mode CLI dans la documentation

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 62785 - Pull request #400 - Chemin de recherche incomplet appliqué aux noms de fichiers utilisés dans la fonctionnalité de téléchargement de l'échantillonneur HTTP. Implémenté par Artem Fedorov (artem.fedorov sur blazemeter.com) et contribué par BlazeMeter.
  • Bogue 62842 - Enregistreur de script de test HTTP(S) : la compression Brotli n'est pas prise en charge, ce qui entraîne une " erreur d'encodage du contenu "
  • Bogue 60424 - Application Hessian Burlap : JMeter insère automatiquement 0x0D avant 0x0A (données de publication binaire http)
  • Bogue 62940 - Utilisez différents cn et types d'extension SAN lorsque nous générons des certificats basés sur des adresses IP.
  • Bogue 62916 - L'enregistreur de script de test HTTP échoue avec l'exception UnsupportedOperationException si l'enregistrement est démarré après l'exécution d'un test distribué
  • Bogue 62987 - Un élément TestBean sous l'enregistreur de script de test HTTP(S) ne fonctionne pas. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 63015 - NoHttpResponseException anormale lors de l'exécution d'une requête via proxy HTTP(S) Test Script Recorder après une première requête ayant échoué. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62852 - Informations manquantes dans l'en-tête de requête HTTP lors de l'utilisation d'un proxy. Merci à Oleg Kalnichevski (olegk sur apache.org)
  • Bogue 63048 - JMeter ne récupère pas les ressources de lien de type "icône de raccourci" ou "icône". Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Autres échantillonneurs

  • Bogue 62775 - Si de nombreux jars se trouvent dans un dossier référencé par user.classpath , le démarrage peut être extrêmement lent en raison de JUnit
  • Bogue 63031 - Classe de pilote JDBC incorrecte : org.firebirdsql.jdbc.FBDrivery . Contribution de Sonali (arora.sonali99 sur gmail.com)

Contrôleurs

  • Bogue 62806 - Le clonage de ModuleController par Run se comporte différemment en mode GUI ou non GUI. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62847 - Si le contrôleur ne peut pas utiliser la variable pour l'index exposé par LoopController/WhileController/ForEachController
  • Bogue 63064 - Ignorer les espaces à la fin et au début des expressions utilisées dans IfController

Les auditeurs

  • Bogue 62770 - Le graphique agrégé lève une exception ArrayIndexOutOfBounds
  • Bogue 63069 - ResultCollector n'écrit pas la fin du fichier XML si l'utilisateur quitte pendant qu'un enregistrement ou un test est en cours d'exécution. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 63138 - InfluxDB BackendListenerClient : En cas d'erreur, le log est en debug, il doit être en erreur

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 62774 - XPath2Extractor : la variable de portée est cassée. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62860 - Extracteur JSON : évitez les NPE et le message d'erreur bruyant " Erreur lors du traitement du contenu JSON dans " lorsque la variable est introuvable

Les fonctions

I18N

Rapport / Tableau de bord

  • Bogue 62777 - Rapport Web/Tableau de bord : Tout masquer dans les centiles de temps de réponse au fil du temps (réponses réussies) échoue.
  • Bogue 62780 - Rapport Web/Tableau de bord : Tout afficher dans le temps de réponse par rapport à la requête échoue.
  • Bogue 62781 - Rapport Web/Tableau de bord : Tout afficher dans la vue d'ensemble du temps de réponse échoue.
  • Bogue 62782 - Rapport Web / Tableau de bord : supprimer les dépendances en double/inutilisées
  • Bogue 62894 - Rapport/Tableau de bord : le débit est dans la mauvaise colonne, ce qui prête à confusion car l'unité est la milliseconde
  • Bogue 63016 - Rapport HTML vide si le csv source contient des étiquettes avec des guillemets. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Documentation

  • Remplacez Action de test (ancien nom) par Action de contrôle de flux dans la documentation de référence des composants. Contribué par Ori Marko (orimarko sur gmail.com)

Général

  • Bogue 62745 - Correction d'une icône désactivée non définie. Contribution de Till Neunast (https://github.com/tilln)
  • Bogue 62743 - L'authentification client doit être activée sur les tests distribués
  • Bogue 62767 - NPE lors de la recherche sous certaines conditions. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62790 - ArrayIndexOutOfBoundsException lors de l'appel de remplacement sans sélectionner la première correspondance
  • Bogue 62795 - Le nœud de contrôleur JMeter termine parfois le test distribué même si certains des nœuds de travail ne sont pas terminés
  • Bug 62336 - Pull request #396 - Certains raccourcis ne fonctionnent pas correctement sous Windows. Contribué par Michael Pavlov (michael.paulau sur gmail.com)
  • Bogue 62889 - Formater les tableaux JSON lorsqu'ils sont affichés avec JSON Path Tester.
  • Bogue 62900 - ObjectProperty#getStringValue() peut lever NullPointerException
  • Bogue 63099 - Échappez les virgules dans la boîte de dialogue de l'assistant de fonction uniquement en dehors des structures de remplacement de variables.
  • Bogue 63105 - Exporter les transactions pour le rapport : correction de 2 bogues
  • Bogue 63106 - Appliquer la politique de nommage n'actualise pas l'interface utilisateur
  • Bogue 63180 - Appliquer la politique de nommage permet la sélection multiple mais ne prend en compte que le premier nœud
  • Bogue 63090 - Suppression de slf4j-ext en raison de CVE-2018-8088

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Version 5.0

Sommaire

Nouveau et remarquable

Améliorations de base

La prise en charge du repos a été améliorée dans de nombreux domaines

  • Les requêtes multipart/form-data fonctionnent désormais pour PUT , DELETE
  • Il est maintenant également possible d'envoyer un corps JSON avec un fichier joint
  • Les paramètres entrés dans l'onglet Paramètres sont maintenant utilisés dans le corps au lieu d'être ignorés

Dans les tests distribués, JMeter préfixe désormais automatiquement les noms de threads avec l'hôte et le port du moteur, ce qui rend le comptage des threads correct dans le rapport HTML sans aucune autre configuration comme cela était requis auparavant.

XPath 2.0 est pris en charge dans un nouvel élément appelé extracteur XPath2, offrant une gestion plus facile des espaces de noms XML, une syntaxe XPath à jour et de meilleures performances

La mise à niveau vers les dernières API des composants HTTP 4.6 est terminée et JMeter ne s'appuie plus sur les API obsolètes de cette bibliothèque

Il est maintenant possible de contrôler plus facilement la rupture de boucle et le passage de la boucle à l'itération suivante. Ceci est disponible dans les éléments Flow Control Action et Result Status Action Handler

Alors que Controller exporte maintenant une variable contenant son index actuel nommé __jm__<Name of your element>__idx . Ainsi, par exemple, si votre contrôleur While s'appelle WC, vous pouvez accéder à l'index de boucle via ${__jm__WC__idx}

Améliorations des scripts/débogage

La fonction de recherche a été améliorée pour vous permettre de parcourir l'arborescence des résultats de la recherche et d'effectuer les remplacements nécessaires via les boutons Suivant / Précédent / Remplacer / Remplacer/Rechercher

Dans Afficher l'arborescence des résultats, les en-têtes/corps de la demande et de la réponse sont clairement séparés pour vous permettre de mieux inspecter les demandes et les réponses. Vous pouvez également rechercher dans tous ces onglets une valeur particulière

La fonction d'enregistrement a été améliorée pour fournir une fenêtre contextuelle toujours visible lorsque vous naviguez dans le navigateur, vous permettant de nommer les transactions pendant que vous naviguez dans votre application.

Vous pouvez maintenant redémarrer JMeter depuis le menu Fichier  →  Redémarrer

Rapports en direct et rapports Web

La fonctionnalité de création de rapports a été améliorée

Un nouveau graphique Total des transactions par seconde a été ajouté au rapport Web HTML

Il est désormais possible de représenter graphiquement au fil du temps des métriques personnalisées disponibles en tant que variables JMeter via sample_variables . Ces graphiques de métriques personnalisés seront disponibles dans la section Rapport HTML dans les graphiques personnalisés

Le graphique des visites par seconde prend désormais en compte les ressources embarquées

Dans les rapports en direct, les octets envoyés et reçus sont désormais envoyés aux backends (InfluxDB ou Graphite)

Les fonctions

Une nouvelle fonction __threadGroupName a été introduite pour obtenir le nom du ThreadGroup.

Modifications incompatibles

  • Depuis JMeter 5.0, lors de l'utilisation de l'implémentation HC4 par défaut, JMeter réinitialisera l'état HTTP (état SSL + connexions) à chaque itération de groupe de threads. Si vous ne voulez pas ce comportement, définissez httpclient.reset_state_on_thread_group_iteration=false
  • Depuis JMeter 5.0, en relation avec la remarque ci-dessus, https.use.cached.ssl.context est obsolète et n'est plus utilisé.
  • Depuis JMeter 5.0, lors de l'utilisation de la sortie CSV, les sous-résultats seront désormais également sortis dans un fichier CSV. Pour revenir au comportement précédent, définissez jmeter.save.saveservice.subresults=false , voir Bug 62470 , Bug 60917 , Bug 62550 .
  • Depuis JMeter 5.0, CSS/JQuery Extractor a été renommé CSS Selector Extractor
  • Depuis JMeter 5.0, Test Action a été renommé Flow Control Action
  • Depuis JMeter 5.0, JMeter renomme subResults en parentName-N où N est un nombre pour s'assurer que le graphique Hits Per Second inclut les téléchargements de ressources, voir Bug 62550 , Bug 62470 et Bug 60917

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 62260 - Amélioration de la prise en charge du repos. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 58757 - Requête HTTP : mise à jour des méthodes obsolètes de HttpComponents vers les dernières API de httpclient-4.5.X. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 62212 - Enregistreur : Améliorez l'expérience utilisateur en fournissant une fenêtre contextuelle au-dessus de toutes les fenêtres pour pouvoir modifier les noms de transaction et les pauses lors de l'utilisation du navigateur. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62248 - Requête HTTP : les paramètres saisis dans l'onglet Paramètres doivent être utilisés dans le corps au lieu d'être ignorés. En partie basé sur un patch d'Artem Fedorov fourni par Blazemeter.
  • Bogue 60015 - Multipart/form-data ne fonctionne que pour POST en utilisant HTTPClient4 alors qu'il devrait le faire pour PUT , DELETE , … Contribué par Ubik Load Pack (support at ubikloadpack.com)
  • Bogue 62317 - Enregistreur de script de test HTTP(S) : permet d'ajouter ResultSaver à l'échantillonneur créé

Autres échantillonneurs

  • Pull request #376 - JUnitSampler enregistre les exceptions, à l'exception des échecs d'assertion des cas de test, sous forme d'avertissements. Contribution de Davide Angelocola (davide.angelocola sur fisglobal.com)
  • Bogue 62244 - Renommer l'action de test en action de contrôle de flux
  • Bogue 62302 - Déplacez l'échantillonneur JSR223 vers le haut du menu. Contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 62595 - SMTPSampler ne permet pas de configurer les protocoles SSL/TLS à utiliser lors de la prise de contact. Contribution de Felipe Cuozzo (felipe.cuozzo sur gmail.com)

Contrôleurs

  • Bug 62237 - While Controller : Exporte la variable contenant l'index courant de l'itération. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Les auditeurs

  • Bogue 62195 - Enregistrer les réponses dans un fichier : amélioration du composant et de l'interface utilisateur. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62209 - InfluxBackendListenerClient : le premier message d'échec d'assertion doit être envoyé si le code d'erreur et le code de réponse sont vides ou OK
  • Bogue 62269 - Bogue 62269 - Afficher l'arborescence des résultats : les onglets Réponse et Demande doivent contenir les onglets En-tête et Corps. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62270 - Afficher l'arborescence des résultats : autorise la recherche dans les en-têtes de requête, les en-têtes de réponse et le corps de la requête. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 62276 - InfluxDBBackendListenerClient / GraphiteBackendListenerClient : Ajout d'octets envoyés et reçus aux métriques. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 62320 - Compteur : la propriété du nom de référence n'est pas claire
  • Bogue 60991 - XPath Extractor : Implémenter XPath 2.0. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62593 - Renommez CSS/JQuery Extractor en CSS Selector Extractor. Contribué par Ori Marko (orimarko sur gmail.com)

Les fonctions

  • Bogue 62178 - Ajout de la valeur par défaut à la fonction __V . Contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 62178 - Ajout de la fonction __threadGroupName pour obtenir le nom du ThreadGroup. Principalement contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 62533 - Autoriser l'utilisation de l'heure d'époque comme valeur de chaîne de date dans la fonction __dateTimeConvert
  • Bogue 62541 - Autoriser les fonctions __jexl3 , __jexl2 à prendre en charge la nouvelle syntaxe en tant que var x ; . Contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 61834 - Boîte de dialogue Function Helper : Améliorez les tests en affichant les variables et en les gardant disponibles entre les évaluations

I18N

Rapport / Tableau de bord

  • Bug 62243 - Tableau de bord : make option " --forceDeleteResultFile "/" -f " option supprime le dossier référencé par l' option " -o "
  • Bogue 62367 - Générateur de rapports HTML : ajoutez le total des transactions graphiques par seconde. Contribué principalement par Martha Laks (laks.martha sur gmail.com)
  • Bogue 62166 - Rapport/Tableau de bord : offre la possibilité d'enregistrer des graphiques et des métriques personnalisés dans le tableau de bord JMeter. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 62542 - Rapport/Tableau de bord : affiche plus d'informations sur les filtres lorsque le graphique est vide. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62426 - Optimiser les performances de génération de rapports. Basé sur les commentaires d'Allen (444104595 sur qq.com)
  • Bogue 62550 - Modifier la politique de nommage des sous-résultats
  • Bug 60917 - Test de charge avec téléchargement de ressources embarquées : les hits par secondes ne prennent pas en compte les ressources téléchargées

Général

  • Bug 62684 - Distributed Testing : Ajoute automatiquement au nom du thread un préfixe pour identifier le moteur. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62155 - Fonction de recherche : faire en sorte que le champ de texte de recherche obtienne le focus
  • Bogue 62156 - Fonction de recherche : Distinguer le nœud qui correspond à la recherche et le nœud qui contient un enfant qui correspond à la recherche
  • Bogue 62234 - Fonction Rechercher/Remplacer : Améliorez l'expérience utilisateur et ajoutez les fonctionnalités Remplacer/Suivant/Précédent/Remplacer et Rechercher. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62238 - Ajout de la possibilité de passer à la prochaine itération de la boucle actuelle. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62239 - Ajout de la possibilité d'interrompre la boucle de courant
  • Bug 61635 - Ajout d'un menu pour redémarrer JMeter
  • Bogue 62470 - Sortie CSV : Activer la journalisation des sous-résultats lorsque jmeter.save.saveservice.subresults=true . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62473 - Le paramètre " saveservice_properties " a un comportement contre-intuitif
  • Bogue 62354 - Calcul correct et utilisation des unités pour la seconde par utilisateur (rapporté par jffagot05 sur gmail.com)
  • Bogue 62700 - Introduction du fichier jsr223.init.file pour permettre l'appel d'un script JSR-223 au démarrage de JMeter
  • Bogue 62128 - Essayez de deviner JMETER_HOME correctement, lorsque jmeter.bat est appelé à partir d'un fichier de commandes dans un autre répertoire. Contribution de logox01 (logox01 sur gmx.at)
  • Pull request #386 - Ajout de la prise en charge des paramètres pour les scripts de création de keystore RMI. Contribué par Logan Mauzaize (t524467 sur airfrance.fr)
  • Bogue 62065 - Utiliser l'artefact Maven pour le module JAF au lieu du module intégré
  • Bogue 61714 - Mettre à jour la documentation des résultats en temps réel
  • Pull request #382 - Correction de la faute de frappe dans la documentation. Rapporté par Perze Ababa (perze.ababa sur gmail.com>)
  • Pull request #392 - Correction de la faute de frappe dans la documentation. Rapporté par Aaron Levin
  • Pull request #379 - Améliorer les traductions chinoises. Contribué par XmeterNet

Changements non fonctionnels

  • Pull request #358 , Pull request #365 , Pull request #366 , Pull request #375 - Mise à jour vers le dernier checkstyle (v8.8). Checkstyle étendu aux fichiers dans src et test ; correction des fichiers nouvellement vérifiés. Basé sur la contribution de Graham Russell (graham sur ham1.co.uk)
  • Bogue 62095 - Description correcte du paramètre de limite droite dans Boundary Extractor. Contribué par Ori Marko (orimarko sur gmail.com)
  • Bogue 62113 - Mise à jour vers le dernier Bouncycastle (v1.60). Basé sur la contribution d'Olaf Flebbe (oflebbe sur apache.org)
  • Bogue 62171 - Supprimez les sommes de contrôle .md5 et ne conservez que les sommes de contrôle .sha512 pour les archives source et binaires
  • Mise à jour vers groovy-all-2.4.15 (à partir de groovy-all-2.4.13)
  • Mise à jour vers asm-6.1 (à partir de 6.0)
  • Mise à jour vers tika-core et tika-parsers 1.18 (à partir de 1.17)
  • Bogue 62482 - Synchroniser la documentation avec l'implémentation de ForEachController. Basé sur la contribution d'Ori Marko (orimarko sur gmail.com)
  • Bogue 62529 - Mise à jour vers httpclient-4.5.6 (depuis httpclient 4.5.5) et mise à jour vers freemarker-2.3.28 (depuis freemarker-2.3.23). Basé sur le patch d'Ori Marko (orimarko sur gmail.com)
  • Mise à jour vers httpmime-4.5.6 (depuis httpmime-4.5.5)
  • Mise à jour vers caféine-2.6.2 (à partir de caféine-2.6.1)
  • Mise à jour vers cglib-nodep-3.2.7 (à partir de cglib-nodep-3.2.6)
  • Mise à jour vers commons-dbcp2-2.4.0 (à partir de commons-dbcp2-2.2.0)
  • Mise à jour vers commons-pool2-2.6.0 (de commons-pool2-2.5.0)
  • Mise à jour vers httpcore-4.4.10 (depuis httpcore-4.4.9)
  • Mise à jour vers httpcore-nio-4.4.10 (depuis httpcore-nio-4.4.9)
  • Mise à jour vers log4j-2.11.0 (à partir de log4j-2.10.0)
  • Mise à jour vers ph-css-6.1.1 (à partir de ph-css-6.0.0)
  • Mise à jour vers ph-commons-9.1.2 (à partir de ph-commons-9.0.0)
  • Mise à jour vers rhino-1.7.10 (depuis +rhino-1.7.7.2)
  • Mise à jour vers commons-lang3-3.8 (de commons-lang3-3.7)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 62114 - Enregistreur de script de test HTTP(S) : l'authentification par certificat client utilise le premier SSLManager créé. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 61058 - Requête HTTP : Ajout de l'option httpclient4.deflate_relax_mode pour éviter "Fin inattendue du flux d'entrée ZLIB" lors du dégonflage de ce qui semble être des flux invalides. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 43612 - HTTP PUT ne respecte pas les paramètres de requête. Mis en œuvre par Artem Fedorov (artem.fedorov sur blazemeter.com) et contribué par BlazeMeter Ltd.
  • Bogue 60190 - Content-Type est ajouté pour POST sans condition. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62462 - Pull request #387 - Rendre à nouveau possible la délégation des informations d'identification dans SPNEGO.
  • Bogue 58807 - Réinitialiser l'état SSL sur l'itération du groupe de threads uniquement (était https.use.cached.ssl.context=false est cassé)
  • Bogue 62716 - Lors de l'enregistrement, JMeter supprime l'autorisation du gestionnaire d'en-tête généré lors de l'utilisation du jeton porteur

Autres échantillonneurs

  • Bogue 62235 - Java 9 - accès réflectif illégal par org.apache.jmeter.util.HostNameSetter
  • Bogue 62464 - Définir l'heure de début et de fin sur l'échantillonneur d'éditeur JMS, même si l'initialisation échoue.
  • Bogue 62616 - FTPSampler : la taille du fichier téléchargé n'est pas comptée dans sentBytes

Contrôleurs

Les auditeurs

  • Bogue 62097 - Mettre à jour JTable dans le rapport agrégé uniquement lorsque de nouvelles données sont arrivées. De cette façon, les sélections de lignes seront conservées plus longtemps.
  • Bogue 62203 - Client Influxdb BackendListener : stocke les balises utilisateur dans les annotations et les transactions internes. Contribution de Sergey Batalin (sergey_batalin sur mail.ru)
  • Bogue 62251 - TextGraphiteMetricsSender n'invalide pas les connexions perdues en cas d'erreurs réseau
  • Bogue 60705 - Correction des en-têtes des rapports agrégés et amis lorsque les colonnes sont déplacées.
  • Bogue 62463 - Configuration client/serveur distribuée : utilisez différents ports RMI pour les objets distants lors de l'utilisation de SSL

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 61664 - HTTP Authorization Manager : Digest ne fonctionne qu'avec l'ancienne RFC 2069 , la RFC 2617 n'est pas implémentée. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62252 - La logique de fusion des en-têtes HTTP ne correspond pas à la documentation
  • Bug 62554 - BoundaryExtractor : le champ à vérifier n'est pas réinitialisé
  • Bogue 62553 - Un élément aléatoire peut renvoyer la même valeur même si la propriété "Par utilisateur de thread (utilisateur)" est définie sur TRUE
  • Bogue 62637 - Prendre en compte le planificateur lors du calcul du délai pour la synchronisation de la minuterie

Les fonctions

I18N

  • Bogue 62310 - Traduction française de l'étiquette Precise Throughput Timer

Rapport / Tableau de bord

  • Bogue 62333 - Tableau de bord des rapports - Lorsqu'une série ne contient aucune valeur, la logique des couleurs du graphique est erronée. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62283 - Tableau de bord du rapport - La date ne s'affiche pas correctement sur le graphique lorsque la granularité est ≤ 1 jour
  • Bogue 62520 - Le texte de l'info-bulle lorsque nous survolons le point dans le graphique "Latence Vs Demande" doit être "Latence médiane"

Documentation

  • Bogue 62211 - Correction de la documentation du serveur de requêtes HTTP. Contribué par Ori Marko (orimarko sur gmail.com)
  • Pull request #388 - Correction d'une faute de frappe. Contribution de Giancarlo Romeo (giancarloromeo sur gmail.com)

Général

  • Bogue 62107 - JMeter ne démarre pas sous Windows lorsque JM_LAUNCH contient des espaces
  • Bogue 62110 - Une classe JUnit cassée (en raison d'une dépendance manquante) casse les menus JMeter. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Pull request #377 - Petit correctif des docs. Contribution de Peter Doornbosch (peter.doornbosch sur luminis.eu)
  • Bogue 62124 - Modèles d'enregistrement : ajoutez plus d'exclusions et utilisez le nom de la transaction par défaut
  • Bogue 62127 - Stocke le nom de fichier sous forme de chaîne au lieu de fichier dans FileEditor. Cela empêchera la conversion des noms de fichiers des séparateurs de chemin de style Unix en style Windows lorsqu'ils sont utilisés, par exemple, dans la configuration de l'ensemble de données CSV.
  • Bug 56150 - Conservez l'index à droite lorsque vous faites défiler les éléments du menu.
  • Bogue 62240 - Si l'implémentation de SampleMonitor est un TestBean, elle ne sera pas initialisée correctement
  • Bug 62295 - Ordre correct des éléments lors de la duplication d'une sélection de plusieurs éléments.
  • Bogue 62397 - Ne coupez pas les lignes au niveau des virgules lors de l'utilisation de JSON Path Tester
  • Bogue 62281 - Empêcher NPE dans MapProperty. Patch par belugabehr (dam6923 sur gmail.com)
  • Bogue 62457 - Dans le manuel utilisateur, l'exemple de la fonction UUID est erroné. Contribué par helppass (onegaicimasu sur hotmail.com)
  • Bogue 62478 - Échappez des virgules dans les paramètres lors de la construction de chaînes de fonctions dans l'assistant de fonction GUI. Signalé par blue414 (blue414 sur 163.com)
  • Bogue 62463 - Correction de l'utilisation des ports, lorsque client.rmi.localport est défini pour les exécutions distribuées.
  • Bogue 62545 - N'utilisez pas de deux-points dans la chaîne "tab" lors de l'indentation de JSON dans RenderAsJSON.
  • Partie du bogue 62637 - Éviter le dépassement d'entier lorsqu'il s'agit de très grandes valeurs dans TimerService#adjustDelay
  • Bogue 62683 - La boîte de dialogue d'erreur n'a pas de texte lorsque l'utilisateur ouvre un plan de test complètement invalide.

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Version 4.0

Sommaire

Nouveau et remarquable

Améliorations de base

JMeter prend désormais en charge JAVA 9.

Nouvel élément Boundary Extractor disponible qui permet une extraction facile avec de meilleures performances

Nouvel élément d' assertion JSON disponible pour affirmer sur les réponses JSON.

Nouvel élément Precise Throughput Timer disponible qui produit des arrivées de Poisson avec un débit constant donné.

L'échantillonneur point à point JMS a été amélioré avec des options de lecture , de navigation et d' effacement .

Les meilleures valeurs de propriété sont désormais sélectionnées sur de nombreux éléments de test pour garantir que les meilleures pratiques sont les valeurs par défaut :

  • Le contrôleur If nouvellement ajouté utilise désormais par défaut Expression, qui est l'option la plus performante.
  • L'élément de test JSR223 nouvellement ajouté met désormais en cache le script compilé par défaut si le langage utilisé fournit cette fonctionnalité.

Le contrôleur de boucle et le contrôleur ForEach exposent maintenant leur itération actuelle sous la forme d'une variable nommée __jm__<Name of your element>__idx que vous pouvez utiliser comme ceci par exemple pour un contrôleur de boucle nommé MyLoopController :

${__jm__MonContrôleurLoop__idx}
. Voir bogue 61802

Les cookies sont maintenant affichés dans Afficher l'arborescence des résultats pendant l'enregistrement. Ils étaient auparavant toujours affichés comme vides.

L'assertion de réponse vous permet désormais de personnaliser le message d'assertion et l'assertion sur les données de demande.

Améliorations de l'expérience utilisateur

JMeter utilise désormais Darcula LAF par défaut

Workbench a été supprimé de l'interface utilisateur, vous pouvez désormais utiliser les éléments non test comme enfants immédiats du plan de test.

L'UX du menu a été améliorée pour rendre les éléments les plus utilisés disponibles plus rapidement.

HTTP(S) Test Script Recorder vous permet désormais de nommer vos transactions tout en enregistrant d'une manière plus lisible par l'homme.

Améliorations UX apportées sur, parmi les plus notables :

  • Le contrôleur de module informe l'utilisateur qu'au moins un contrôleur est requis
  • La boîte de dialogue Function Helper (l'assistant qui aide à utiliser et à tester les fonctions) a été améliorée dans de nombreux domaines.
  • Switch Controller coupe le texte pour éviter les problèmes lorsqu'un espace est introduit avant/après le nom
  • Le plan de test est maintenant enregistré avant d'exécuter le plan de test

Les fonctions

La nouvelle fonction __digest facilite le calcul des hachages SHA-XXX, MDX :

${__digest(MD5,Apache JMeter 4.0 déchire !,,,)}
reviendra 0e16c3ce9b6c9971c69ad685fd875d2b

La nouvelle fonction __dateTimeConvert permet une conversion facile entre les formats de date :

${__dateTimeConvert(01 janvier 2017, jj MMM aaaa, jj/MM/aaaa,)}
reviendra le 01/01/2017

La nouvelle fonction __changeCase permet de passer aux majuscules / minuscules / majuscules

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

Les nouvelles fonctions __isVarDefined et __isPropDefined permettent de tester la disponibilité des propriétés et des variables

${__isPropDefined(START.HMS)}
reviendra vrai
${__isVarDefined(JMeterThread.last_sample_ok)}
reviendra vrai

Développement de scripts et de plugins

Vous pouvez maintenant appeler SampleResult#setIgnore() si vous ne voulez pas que votre sampler soit visible dans les résultats

JavaSamplerContext utilisé par AbstractJavaSamplerClient a été amélioré avec de nouvelles méthodes pour faciliter le développement de plugins.

JMeter distribue désormais des sources Maven supplémentaires et des artefacts javadoc dans le référentiel Maven

Les plugins peuvent désormais enregistrer des écouteurs pour être avertis lorsqu'un plan de test est ouvert/fermé

Rapports en direct et rapports Web

L'écouteur backend InfluxDB vous permet désormais d'ajouter des balises personnalisées en les ajoutant avec le préfixe TAG_ , voir le bogue 61794

Dans Web Report, le graphique de distribution responseTime est plus précis

Certaines corrections de bugs ont été faites sur la génération de rapport, voir Bug 61900 , Bug 61900 61956, Bug 61899 . La latence des graphiques par rapport à la demande et le temps de réponse par rapport à la demande n'ont pas dépassé 1 000 RPS en raison du bogue 61962

Configuration de l'environnement JMeter

Les paramètres JVM pour les scripts de démarrage JMeter peuvent être placés dans un fichier séparé ( bin/setenv.sh sous Unix et bin\setenv.bat sous Windows), qui est appelé au démarrage. Le script de démarrage lui-même n'a plus besoin d'être modifié.

Modifications incompatibles

  • L'heure de début et la date de fin du groupe de threads ont été supprimées, voir le bogue 61549
  • Dans les tests distribués, le mode Hold a été supprimé. Utiliser des modes alternatifs et plus efficaces
  • Pour les plugins tiers, la méthode suivante dans org.apache.jmeter.gui.tree.JMeterTreeNode a été abandonnée pour la migration vers Java 9 ( bug 61529 )
    public Enumeration<JMeterTreeNode> children()
  • Le groupe de threads tearDown s'exécutera désormais à l'arrêt et à l'arrêt d'un test par défaut. Si vous ne souhaitez pas ce comportement, décochez Exécuter les groupes de threads démontables après l'arrêt des threads principaux sur l' élément Plan de test , voir le bogue 61656
  • Les propriétés sampleresult.getbytes.headers_size et sampleresult.getbytes.body_real_size ont été supprimées, voir Bug 61587
  • JMeter enregistrera désormais votre plan de test chaque fois que vous l'exécuterez. Ce comportement peut être contrôlé par la propriété save_automatically_before_run , voir Bug 61731
  • L'élément Workbench a été supprimé, vous ajoutez maintenant directement l'élément non test en tant qu'enfant du plan de test. Lors du chargement d'un plan de test contenant l'élément JMeter déplacera les éléments Mirror Server , Property Display et HTTP(s) Test Script Recorder en tant qu'enfants directs du plan de test. Pour tout autre élément, il créera un élément Test Fragment appelé Workbench Test Fragment et y déplacera les éléments .
  • Les classes suivantes ont été supprimées ( org.apache.jmeter.functions.util.ArgumentEncoder , org.apache.jmeter.functions.util.ArgumentDecoder ), voir Pull request #335
  • Dans l'échantillonneur JMS point à point, définir le délai d'expiration sur 0 signifie désormais un délai d'expiration infini alors qu'auparavant, il était passé à 2000 ms, voir le bogue 61829
  • Lorsque les Assertions sont à des portées différentes, elles sont exécutées en commençant par la plus EXTÉRIEURE à la plus INTÉRIEURE. Voir bogue 61846
  • JMeter démarre maintenant par défaut en utilisant les paramètres régionaux anglais. Ce changement est dû à des traductions manquantes dans de nombreuses langues prises en charge. Vous pouvez modifier les paramètres régionaux en modifiant dans jmeter et jmeter.bat (ou de préférence setenv.sh/setenv.bat) les valeurs des propriétés système JVM_ARGS . Nous vous serions également très reconnaissants si vous pouviez contribuer à des traductions dans les langues prises en charge.
  • SwitchController ajuste désormais par défaut le contenu du commutateur pour éviter les problèmes liés aux espaces indésirables. Voir bogue 61771
  • Les paramètres de tas JMeter JVM sont passés de -Xms512m -Xmx512m à -Xms1g -Xmx1g
  • La version de Beanshell a été mise à niveau vers bsh-2.0b6 qui introduit des changements avec rupture et des règles d'analyse plus strictes

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Pull request #316 - Avertit du chargement d'un truststore vide. Contribution de Vincent Herilier (https://github.com/vherilier)
  • Bug 61639 - Enregistreur de script de test HTTP(S) : dans l'onglet de filtrage des requêtes, décochez par défaut "Notifier les écouteurs enfants des échantillonneurs filtrés"
  • Bogue 61672 - Enregistreur de script de test HTTP(S) : avoir la possibilité de choisir le nom de l'échantillonneur tout en gardant la possibilité d'ajouter simplement un préfixe
  • Bug 53957 - Requête HTTP : dans l'onglet Paramètres, autoriser le collage de contenu provenant de Firefox et Chrome (non analysé)
  • Bogue 61587 - Suppression des propriétés sampleresult.getbytes.headers_size et sampleresult.getbytes.body_real_size
  • Bogue 61843 - Enregistreur de script de test HTTP(S) : ajoutez un SAN au certificat CA généré par JMeter. Contribution de Matthew Bucket
  • Bogue 61901 - Prise en charge de la propriété système https.cipherSuites . Contribution de Jeremy Arnold (jeremy sur arnoldzoo.org)

Autres échantillonneurs

  • Bogue 61544 - Échantillonneur point à point JMS : améliorez les styles de communication avec lire, parcourir, effacer. Basé sur une contribution de Benny van Wijngaarden (benny sur smaragd-it.nl)
  • Bogue 61829 - JMS point à point : si la file d'attente de réception est vide et qu'un délai d'attente est défini, il n'est pas pris en compte. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61739 - Requête Java / JavaSamplerClient : amélioration de org.apache.jmeter.protocol.java.sampler.JavaSamplerContext
  • Bogue 61762 - Start Next Thread Loop doit être utilisé partout

Contrôleurs

  • Bogue 61675 - Si contrôleur : utilise l'expression par défaut et ajoute un avertissement lorsque l'autre mode est utilisé. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61770 - Contrôleur de module : informez l'utilisateur dans l'interface utilisateur qu'il doit avoir au moins un contrôleur dans son plan. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61771 - SwitchController : le champ de commutation doit être coupé par sécurité

Les auditeurs

  • Bogue 57760 - Afficher l'arborescence des résultats : l'en-tête de cookie s'affiche à tort comme vide (pas de cookies) lors de l'affichage d'un résultat d'échantillon d'enregistreur. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61769 - Afficher l'arborescence des résultats : utilisez le surligneur de syntaxe dans XPath Tester, JSON Path Tester et CSS/JQuery Tester. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61776 - Afficher l'arborescence des résultats : développement du menu Ajouter développer/réduire tout dans la vue XML de rendu. Contribution de Maxime Chassagneux et Graham Russell
  • Bogue 61852 - Afficher l'arborescence des résultats : ajouter un testeur d'extracteur de limite
  • Bogue 61794 - Backend Influxdb : ajoutez autant de balises personnalisées que vous le souhaitez en créant simplement de nouvelles lignes et en préfixant leur nom par " TAG_ " sur l'écouteur backend de l'interface graphique

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 60213 - Nouveau composant : extracteur basé sur les limites
  • Bogue 61845 - Nouvelle assertion de composant JSON basée sur AtlanBH JSON Path Assertion donnée à JMeter-Plugins et migrée dans le noyau JMeter par Artem Fedorov (artem sur blazemeter.com)
  • Bogue 61931 - Nouveau composant : Precise Throughput Timer, minuterie qui produit des arrivées de Poisson avec un débit constant donné. Contribution de Vladimir Sitnikov (sitnikov.vladimir sur gmail.com)
  • Bogue 61644 - Gestionnaire de cache HTTP : "Utiliser l'en-tête Cache-Control/Expires lors du traitement des requêtes GET" doit être coché par défaut
  • Bogue 61645 - Assertion de réponse : ajouter la possibilité d'affirmer sur les données de demande
  • Bogue 51140 - Assertion de réponse : ajout de la possibilité de définir un message d'erreur/d'échec spécifique qui s'affichera ultérieurement dans le résultat de l'assertion. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61534 - Convertit AssertionError en une assertion ayant échoué, permettant aux utilisateurs d'utiliser assert dans leur code. Correction d'une régression introduite en 3.2
  • Bogue 61756 - Extracteurs : améliorez le nom de l'étiquette "Nom de référence" pour qu'il soit clair ce qu'il fait
  • Bogue 61758 - Appliquer à : champ dans Extracteurs, Assertions : lors de la saisie d'une valeur dans JMeter Variable Name , la case radio JMeter Variable Name doit être sélectionnée par défaut. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61846 - L'assertion portée doit suivre le même ordre d'évaluation que les post-processeurs

Les fonctions

  • Bogue 61724 - Ajout de la fonction __digest pour fournir le calcul des hachages (SHA-XXX, MDX). Basé sur une contribution d'orimarko sur gmail.com
  • Bogue 61735 - Ajout de la fonction __dateTimeConvert pour fournir des conversions de formats de date. Basé sur une contribution d'orimarko sur gmail.com
  • Bogue 61760 - Ajout des fonctions __isPropDefined et __isVarDefined pour savoir si la propriété ou la variable existe. Contribué par orimarko sur gmail.com
  • Bogue 61759 - Ajout de la fonction __changeCase pour modifier différentes casses d'une chaîne. Basé sur une contribution d'orimarko sur gmail.com
  • Bogue 61561 - La boîte de dialogue de l'assistant de fonction doit afficher une exception dans le résultat
  • Bogue 61738 - Boîte de dialogue de l'assistant de fonction : ajouter une copie dans Générer et clarifier les étiquettes. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 62027 - Aide : introduisez la propriété help.local pour permettre de choisir entre la documentation locale (hors ligne) et la documentation en ligne
  • Bogue 61593 - Supprimer les détails, ajouter, ajouter du presse-papiers, supprimer les boutons dans l'interface graphique de l'assistant de fonction

I18N

  • Bug 61606 - Bouton Traduire Parcourir… dans certains éléments (qui utilisent la classe FileEditor)
  • Bogue 61747 - Enregistreur de script de test HTTP(S) : ajoutez la doc manquante à "Créer une transaction après la demande (ms)"

Rapport / Tableau de bord

  • Bogue 61871 - Réduit la valeur par défaut de jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity de 500 ms à 100 ms
  • Bogue 61879 - Suppression des fichiers inutiles dans le modèle de rapport HTML

Général

  • Bogue 61591 - Supprimez Workbench de l'arborescence de test. Mis en œuvre par Artem Fedorov (artem sur blazemeter.com) et contribué par BlazeMeter Ltd.
  • Bogue 61549 - Groupe de threads : supprimer les dates de début et de fin
  • Bogue 61529 - Migration vers Java 9. Partiellement contribué par Ubik Load Pack (support sur ubikloadpack.com)
  • Bogue 61709 - SampleResult : ajoutez une méthode setIgnore() pour que JMeter ignore le SampleResult et ne l'envoie pas aux écouteurs
  • Bogue 61806 - Autoriser l'utilisation de SampleResult#setIgnore() dans les post-processeurs et le script d'assertions (éléments JSR223)
  • Bogue 61607 - Ajout d'un bouton de navigation dans tous les éléments BeanShell pour sélectionner le script BeanShell
  • Bogue 61627 - N'efface plus LogView en cliquant sur l'indicateur d'avertissement/erreurs
  • Bogue 61629 - Le menu Ajouter des temps de réflexion aux enfants ne doit pas prendre en compte les éléments désactivés
  • Bogue 61655 - SampleSender : suppression de l'implémentation de HoldSampleSender
  • Bogue 61656 - Le groupe de threads tearDown doit s'exécuter par défaut à l'arrêt ou à l'arrêt du test
  • Bogue 61659 - JMeterVariables#get() doit s'appliquer à String() sur des objets non chaîne
  • Bogue 61555 - Le méta-espace doit être restreint par défaut
  • Bogue 61693 - JMeter est conscient de Docker ( -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap )
  • Bogue 61694 - Ajout de l' option -server dans jmeter.bat
  • Bug 61697 - Présentation de Darcula Look And Feel pour rendre l'interface utilisateur JMeter plus attrayante
  • Bug 61704 - Barre d'outils : améliorez un peu la partie droite
  • Bogue 61731 - Améliorer la sauvegarde du plan de test avec l'option d'enregistrer avant l'exécution. Basé sur une contribution d'orimarko sur gmail.com
  • Bogue 61640 - Éléments de test JSR223 : activez la mise en cache par défaut. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 61785 - Ajouter de l' aide  →  Liens utiles pour créer des problèmes et télécharger la version nocturne
  • Bogue 61808 - Correction de la position du cadre principal. Mis en œuvre par Artem Fedorov (artem sur blazemeter.com) et contribué par BlazeMeter Ltd.
  • Bogue 61802 - Loop / ForEach Controller doit exposer une variable pour l'itération en cours. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Pull request #349 - Ajouter des ressources i18n (zh_CN). Contribution de Helly Guo (https://github.com/hellyguo)
  • Pull request #351 - Correction de la position de la boîte de dialogue sur la première vue. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #352 - Barre de menu - ajout de mnémoniques à plus d'éléments de menu. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #353 - Réécriture de certains tests existants dans Spock. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 61919 - UX : réorganiser les menus. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 61920 - Plugins : Ajout de la possibilité d'écouter le chargement/fermeture du plan de test. Contribution de Peter Doornbosch (https://bitbucket.org/pjtr/)
  • Bogue 61935 - Plugins : laissez le composant GUI (dynamiquement) décider s'il peut être ajouté via le menu ou non. Contribution de Peter Doornbosch (https://bitbucket.org/pjtr/)
  • Bogue 61969 - Lors de la modification de LAF via l'interface graphique, l'utilisateur doit être informé qu'il est préférable de redémarrer
  • Bogue 61970 - JMeter utilise maintenant l'anglais comme paramètre régional par défaut pour éviter que des traductions manquantes dans certains paramètres régionaux rendent l'interface utilisateur bizarre
  • Bogue 56368 - Créer et déployer des artefacts source sur Maven central
  • Bogue 61973 - Créer et déployer des artefacts javadoc sur Maven central
  • Pull request #371 - Exemple de correction dans la documentation pour XPath Assertion . Contribué par Konstantin Kalinin (kkalinin sur hotmail.com)
  • Bogue 62039 - Tests distribués : possibilité d'utiliser SSL

Changements non fonctionnels

  • Mise à jour vers bsh-2.0b6 (à partir de bsh-2.0b5)
  • Mise à jour vers groovy-all-2.4.13 (à partir de groovy-all-2.4.12)
  • Mise à jour vers rhino-1.7.7.2 (à partir de rhino-1.7.7.1)
  • Mise à jour vers tika-core et tika-parsers 1.17 (à partir de 1.16)
  • Mise à jour vers commons-dbcp2-2.2.0 (à partir de 2.1.1)
  • Mise à jour vers la caféine 2.6.1 (à partir de 2.5.5)
  • Mise à jour vers commons-codec-1.11 (à partir de 1.10)
  • Mise à jour vers commons-io-2.6 (à partir de 2.5)
  • Mise à jour vers commons-lang3-3.7 (à partir de 3.6)
  • Mise à jour vers commons-pool2-2.5.0 (à partir de 2.4.2)
  • Mise à jour vers asm-6.0 (à partir de 5.2)
  • Mise à jour vers jsoup-1.11.2 (à partir de 1.10.3)
  • Mise à jour vers cglib-nodep-3.2.6 (à partir de 3.2.5)
  • Mise à jour vers ph-css 6.0.0 (à partir de 5.0.4)
  • Mise à jour vers ph-commons 9.0.0 (depuis 8.6.6)
  • Mise à jour vers log4j2 2.10.0 (à partir de 2.8.2)
  • Mise à jour vers httpcore 4.4.9 (à partir de 4.4.7)
  • Mise à jour vers httpclient 4.5.5 (à partir de 4.5.3)
  • Mise à jour vers jodd 4.1.4 (à partir de 3.8.6)
  • Bogue 61642 - Amélioration de la couverture des tests FTP
  • Bogue 61641 - Amélioration de la couverture des tests JMS
  • Bogue 61651 - Amélioration de la couverture des tests TCP
  • Bogue 61651 - Amélioration de la couverture des tests du système d'exploitation. Partiellement contribué par Aleksei Balan (abalanonline sur gmail.com)
  • Pull request #319 - Suppression du code commenté. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #322 - Nettoyage général de JavaDoc. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #323 - Méthode extraite et flux utilisés pour améliorer la lisibilité. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #324 - Enregistrer le refactor de sauvegarde. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #327 - Utilisation de Java plus moderne, simplification du code et formatage du code et des commentaires. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #332 - Ajoutez le framework spock pour les tests unitaires groovy. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #334 - Activer l'exécution des tests JUnit depuis IntelliJ avec la configuration par défaut. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #335 - Suppression de functions.util.* car elles ne semblent pas être utilisées (depuis de nombreuses années). Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 61867 - Pull request #345 - Mise à jour vers le dernier checkstyle (v8.5), ajout de beaucoup plus de règles à checkstyle, vérification incluse des fichiers de test et plus de types de fichiers. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Pull request #350 - Tests unitaires parallélisés. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 61966 - Configurer l'analyseur de résultats de test dans Jenkins
  • Pull request #343 - Réduire la taille de certaines images dans la documentation. Contribué par Graham Russell (graham sur ham1.co.uk)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 61569 - Plan de test point à point JMS : problème de synchronisation lors de l'insertion de la réponse. Contribué par Igor Panainte (panainte.i sur gmail.com)

Autres échantillonneurs

  • Bogue 61698 - Action de test : si l'arrêt est sélectionné, les échantillonneurs suivant l'action de test peuvent s'exécuter
  • Bogue 61707 - Action de test : la cible est ignorée lorsque la pause est sélectionnée, elle doit donc être désactivée
  • Bogue 61827 - JMSPublisher : n'ajoute pas de nouvelle ligne à la fin du fichier. Contribué par Graham Russell (graham sur ham1.co.uk)

Contrôleurs

  • Bogue 61556 - Clarification dans la documentation des impacts sur les performances de l'utilisation de ${} var dans IfController et groovy. Contribution de Justin McCartney (be_strew sur yahoo.co.uk)
  • Bogue 61713 - Le fragment de test a l'option de modifier le contrôleur et d'insérer le parent. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61965 - Module et Include Controller ne doivent pas permettre d'ajouter des éléments sans signification dans leur contexte.
  • Bogue 62062 - ThroughputController : StackOverFlowError déclenché lorsque le débit = 0 (total des exécutions ou pourcentage d'exécutions) Partiellement implémenté par Artem Fedorov (artem.fedorov sur blazemeter.com) et contribué par BlazeMeter Ltd.

Les auditeurs

  • Bogue 61742 - BackendListener : correction de la valeur par défaut pour backend_graphite.send_interval
  • Bogue 61878 - BackendListener : NPE si BackendListenerClient#getDefaultParameters renvoie null
  • Bogue 61950 - Afficher l'arborescence des résultats : le type de contenu audio/mpegurl est considéré à tort comme binaire

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 61716 - Gestionnaire d'en-têtes : lorsque vous collez des en-têtes à partir de Firefox ou de Chrome, les espaces sont introduits comme premier caractère de valeur

Les fonctions

  • Bogue 61588 - Meilleur message de journal pour la fonction __RandomDate()
  • Bogue 61619 - Dans la boîte de dialogue Function Helper, la 1ère fonction n'affiche pas les paramètres par défaut
  • Bogue 61628 - Si la chaîne fractionnée a un séparateur vide, le séparateur par défaut n'est pas utilisé
  • Bogue 61752 - __RandomDate : la fonction n'autorise pas le dernier paramètre manquant utilisé pour le nom de la variable

I18N

Rapport / Tableau de bord

  • Bogue 61807 - Rapport Web : corrige l'erreur dans getTop5ErrorMetrics . Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 61900 - Générateur de rapport : la génération de rapport échoue si le séparateur est un caractère réservé de regex comme |
  • Bogue 61925 - CsvSampleReader n'incrémente pas la ligne dans nextSample(). Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 61956 - Génération de rapport : -f de l'option -forceDeleteResultFile ne fonctionne pas. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61899 - Génération de rapport : lorsque jmeter.save.saveservice.print_field_names est faux et que sample_variables est défini, la génération de rapport échoue. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61962 - Les graphiques Latence Vs Requête et Temps de réponse Vs Requête ne dépassent pas 1000 RPS. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Général

  • Bogue 61661 - Évite les problèmes de démarrage/d'arrêt dus aux plug-ins tiers d'écoute de threads lançant RuntimeException
  • Bogue 61625 - L'éditeur de fichiers utilisé dans BeanInfo se comporte étrangement sous tous les LAF avec un impact sur CSVDataSet, JSR223, BSF, Beanshell Element
  • Bogue 61844 - Maven pom.xml : les bibliothèques utilisées dans les tests doivent avoir un test de portée
  • Bogue 61842 - L'enregistrement sans modification entraîne l'enregistrement et la duplication d'un fichier de sauvegarde identique

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :

  • user7294900 sur Stackoverflow (orimarko sur gmail.com)

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Variante 3.3

Sommaire

Nouveau et remarquable

JMeter ne prend pas encore en charge JAVA 9, la prochaine version de JMeter le prendra en charge, vous pouvez aider et suivre les progrès sur cet élément dans le bogue 61529 .
L'utilisation de la dernière version mineure de JAVA 8 est conseillée pour éviter de faire face à un bogue JDK.

Améliorations de base

HTTP Sampler prend désormais en charge la décompression Brotli.

CacheManager prend désormais complètement en charge l'en-tête Vary.

InfluxDB BackendListener prend désormais en charge l'envoi des résultats à InfluxDB via le protocole UDP.

Il a également été amélioré pour envoyer le nombre d'erreurs par code de réponse et message pour chaque transaction

TCP Sampler calcule maintenant la latence, voir le bogue 60156

Dépendances mises à niveau vers les dernières versions disponibles apportant des améliorations de performances et des corrections de bugs

Continué à améliorer la qualité de notre couverture de code et de tests. Voir le rapport de qualité

Améliorations de l'expérience utilisateur

Plus de travail a été fait pour mieux prendre en charge HiDPI.

Certains bogues, qui se sont glissés avec le travail sur la réduction de l'utilisation de la mémoire de l'arborescence des résultats d'affichage, ont été corrigés.

La constante DEFAULT_IMPLEMENTATION a été supprimée de CookieManager, car elle a perdu son objectif avec la suppression de l'implémentation alternative du client HTTP dans la dernière version

JDBC Sampler UX a été amélioré en ajoutant des cases de sélection pour les pilotes et les requêtes de validation.

Si Controller et While Controller UX ont été améliorés

Améliorations du rapport/tableau de bord

Un nouvel élément de menu Aide a été ajouté pour simplifier la configuration de la génération de rapports.

Améliorations de la documentation

Incorporation des commentaires sur la documentation peu claire.

Les fonctions

Boîte de dialogue Function Helper : un nouveau champ indiquant le résultat de l'exécution a été ajouté.

Nouvelles fonctions :

  • __timeShift - renvoie une date dans différents formats avec le nombre spécifié de secondes/minutes/heures/jours ajoutés.
  • __RandomDate - génère une date aléatoire dans une plage de dates spécifique.

Modifications incompatibles

  • Dans InfluxDbBackendListenerClient, la propriété statut a été renommée en statut
  • Dans CookieManager, les constantes DEFAULT_POLICY et DEFAULT_IMPLEMENTATION sont désormais privées.
    Si vous utilisez ignorecookies avec HC3CookieHandler (< JMeter 3.1) la configuration sera réinitialisée, assurez-vous de la remettre.
  • JMeter ne tronquera plus par défaut les réponses dépassant 10 Mo. Si vous souhaitez activer cette troncature, consultez la propriété httpsampler.max_bytes_to_store_per_request
  • org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream) a été déprécié en faveur ou org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream, SampleResult), assurez-vous de mettre à jour votre implémentation pour pouvoir calculer la latence, voir Bug 60156

Éléments ou fonctions supprimés

  • La fonction _StringFromFile a été supprimée, utilisez plutôt __StringFromFile

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 61056 - HTTP : prise en charge du décodage brotli
  • Bogue 61135 - CookieManager : suppression de la zone de sélection de l'implémentation et de la classe de nettoyage
  • Bug 61492 - HTTP(S) Test Script Recorder : Ajout de la possibilité de modifier la valeur de proxy.pause dans l'interface graphique

Autres échantillonneurs

  • Bug 61320 - Action de test : définir la durée sur 0 par défaut
  • Bogue 61504 - Configuration de la connexion JDBC : définissez le nombre maximal de connexions sur 0 par défaut
  • Bogue 61505 - Configuration de la connexion JDBC : Définissez "Validation Query" sur vide par défaut pour utiliser la méthode isValid du pilote JDBC
  • Bug 61506 - Configuration de la connexion JDBC : Ajout d'une liste pour les principales requêtes de validation des bases de données pour l'attribut "Validation Query"
  • Bogue 61507 - Configuration de la connexion JDBC : Ajout d'une liste pour les bases de données principales Nom de la classe du pilote JDBC pour l'attribut "Classe du pilote JDBC"
  • Bogue 61525 - Échantillonneur de processus du système d'exploitation : ajouter un bouton de navigateur aux champs de commande et de répertoire de travail
  • Bogue 60156 - TCPSampler : la latence n'est pas mesurée pour TCP Sampler. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 61039 - Configuration de l'ensemble de données CSV : Ajouter un bouton de navigateur au champ Nom de fichier
  • Bogue 61527 - Configuration de l'ensemble de données CSV : ajouter une liste pour les valeurs d'encodage de fichier principal pour l'attribut d'encodage de fichier

Contrôleurs

  • Bug 61131 - IfController et WhileController : amélioration de l'expérience utilisateur

Les auditeurs

  • Bug 61167 - InfluxdbBackendListener : ajoute le nombre d'erreurs par code de réponse et message pour chaque transaction
  • Bug 61068 - Introduire la propriété resultcollector.action_if_file_exists pour contrôler le popup "Le fichier existe déjà" lors du démarrage d'un test
  • Bogue 61457 - Client d'écoute backend InfluxDB : prise en charge de l'envoi du résultat à InfluxDB via le protocole UDP. En partie basé sur la demande Pull #302 - par Junlong Wu (github id mybreeze77)

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

  • Bug 61040 - Ajout d'une fonction de décalage horaire
  • Bogue 61126 - Boîte de dialogue Function Helper : Ajout d'un champ qui affiche le résultat de l'exécution
  • Bogue 61508 - Ajouter une date aléatoire dans une fonction de plage de dates spécifique

I18N

  • Bogue 61509 - Meilleure étiquette/traduction/documentation pour les étiquettes start et max pour l'élément Counter

Rapport / Tableau de bord

  • Bogue 61481 - Élément de menu d'aide pour exporter la transaction pour le rapport Web

Général

  • Lorsque vous recherchez des classes dans ActionRouter , revenez à l'emplacement du jar, à partir duquel ActionRouter est chargé. Fourni par Emilian Bold (emi sur apache.org)
  • Bogue 61510 - Définissez 'Max Number of Connections' sur 0 dans 'JDBC Connection Configuration' pour le 'JDBC Load Test template'
  • Bogue 61399 - Rendre certains scripts bin et extras compatibles Shellcheck. Contribution de Wolfgang Wagner (internetwolf2000 sur hotmail.com)

Changements non fonctionnels

  • Mise à jour vers groovy 2.4.12 (à partir de 2.4.10)
  • Mise à jour vers la caféine 2.5.5 (à partir de 2.4.0)
  • Mise à jour vers commons-jexl3 3.1 (à partir de 3.0)
  • Mise à jour vers ph-css 5.0.4 (à partir de 5.0.3)
  • Mise à jour vers ph-commons 8.6.6 (à partir de 8.6.0)
  • Mise à jour vers log4j2 2.8.2 (à partir de 2.8.1)
  • Mise à jour vers xmlgraphics-commons 2.2 (à partir de 2.1)
  • Mise à jour vers jodd 3.8.6 (à partir de 3.8.1)
  • Mise à jour vers xstream 1.4.10 (depuis 1.4.9)
  • Mise à jour vers Apache Tika 1.16 (à partir de 1.14)
  • Mise à jour vers jsoup-1.10.3 (à partir de 1.10.2)
  • Mise à jour vers commons-lang3 3.6 (à partir de 3.5)
  • Mise à jour vers json-path 2.4.0 (à partir de 2.2.0)
  • Mise à jour vers httpcore 4.4.7 (à partir de 4.4.6)
  • Bogue 61438 - Modification de la signature cryptographique des packages de sha-1 à sha-512

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 61384 - Ne définissez pas le jeu de caractères sur l'en -tête multipart/form-data englobant . Cela énerve certains serveurs.
    Le jeu de caractères a été ajouté il y a quelque temps lors de la refactorisation pour utiliser une API plus récente du client http. Voir Bug 56141 - pour plus d'informations.
  • Bogue 61456 - java.lang.ArrayIndexOutOfBoundsException lors de l'enregistrement avec JMeter et un en-tête d'autorisation d'authentification de base étrange
  • Bogue 61395 - La troncation des réponses de serveur importantes peut avoir un impact sur l'enregistrement

Autres échantillonneurs

  • Bogue 60889 - L'exemple JMeter JDBC appelle SELECT USER() lors des tests avec MySQL JDBC en raison de l' appel Connection#toString pour les en-têtes de réponse.
  • Bug 61259 - Requête JDBC : depuis JMeter 3.0, lorsque l'auto-commit JDBC vaut false , une instruction rollback se produit à chaque fois qu'une requête est exécutée. Partiellement contribué par Liu XP (liu_xp2003 sur sina.com)
  • Bogue 61319 - Correction de la régression : l'échantillonneur SMTP ne pouvait pas envoyer d'e-mails lorsqu'aucune pièce jointe n'était spécifiée.

Contrôleurs

  • Bogue 61375 - Utilisez le résolveur DNS du système en dernier recours, lors de la résolution des entrées dans la table d'hôtes statique.

Les auditeurs

  • Bogue 61005 - Afficher l'arborescence des résultats - Les données de réponse du navigateur ne sont pas effacées
  • Bogue 61121 - InfluxdbBackendListenerClient : seuls tous les centiles sont envoyés, pas KO et OK
  • Bogue 60961 - Essayez de conserver le statut des éléments sélectionnés et développés dans Afficher l'arborescence des résultats lorsque de nouveaux éléments sont ajoutés.
  • Bogue 61198 - Backend Listener ne fonctionne pas correctement dans le script principal lorsque les scripts inclus contiennent également Backend Listener
  • Bogue 61493 - Les threads Max/Min sont échangés dans l'écouteur backend Graphite et InfluxDB

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 58743 - Pull request #293 - Impossible d'enregistrer TableEditor lors de l'utilisation de deux instances ou plus. Correctif fourni par Emilian Bold (emi sur apache.org)
  • Bogue 61314 - Le modificateur de réécriture d'URL HTTP ne remplace pas le jsessionid existant dans l'échantillonneur http, mais l'ajoute à la fin
  • Bug 61336 - Assertion BeanShell : erreur dans la traduction chinoise

Les fonctions

  • Bogue 61258 - La fonction StringFromFile est mentionnée deux fois dans la boîte de dialogue d'assistance de fonction
  • Bogue 61260 - La fonction __XPath renvoie null malgré les correspondances trouvées par le vérificateur XPath
  • Bogue 58876 - La fonction TestPlanName renvoie null pour un plan de test nouvellement enregistré et en utilise un précédemment ouvert pour un nouveau

I18N

Rapport / Tableau de bord

  • Bogue 61129 - Rapport/Tableau de bord : Si le code de réponse est vide mais qu'un message d' échec est présent, les erreurs et les 5 principales erreurs ne sont pas exactes. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 61151 - Rapport/Tableau de bord : Top 5 des erreurs par Sampler et Erreurs : Si l'assertion contient du code html, la partie html est masquée

Général

  • Bogue 60743 - L'arrêt / l'arrêt du test peut créer un blocage en raison de HTTPCORE-446, corrigé par la mise à niveau de HttpCore vers 4.4.7
  • Bogue 60994 - Correction d'une faute de frappe dans les commentaires ou les messages de journal. Demande d'extraction #289 et Demande d'extraction #290 -
  • Bogue 61011 - Le nombre d'occurrences de remplacement n'est pas correct (le remplacement du chemin et de l'hôte est compté deux fois)
  • Bogue 61026 - Impossible d'exécuter le programme "keytool": erreur CreateProcess=2 lors du démarrage de JMeter 3.2 en mode graphique
  • Bogue 61054 - Boucle sans fin dans JOrphanUtils#replaceAllWithRegex lorsque regex est contenu dans replacement
  • Bogue 60995 - Enregistreur de script de test HTTP : le champ Port est très petit sous certains L&F
  • Bogue 61073 - Le panneau HTTP(S) Test Script Recorder contient des champs de mauvaise taille sur l'écran HiDPI ou GTK+ L&F sous Linux/XWayland
  • Bogue 57958 - Correction de l'échantillon de transaction non généré si le thread s'arrête/redémarre. Mis en œuvre par Artem Fedorov (artem sur blazemeter.com) et contribué par BlazeMeter Ltd.
  • Bogue 61050 - Gère plus gracieusement les RessourceBundle non initialisés lors de l'appel de JMeterUtils#getResString .
  • Bogue 61100 - Nom de fichier de journal GC non valide sous Windows
  • Bogue 57962 - Autoriser l'utilisation de variables (à partir des variables définies par l'utilisateur uniquement) dans tous les écouteurs en mode nœud de travail
  • Bug 61270 - Correction des polices de largeur trop petites dans les zones de texte pour être lues sous HiDPI (bug du manuel utilisateur)
  • Bogue 61292 - Rendre le traitement des échantillons dans le reporter plus robuste.
  • Bogue 61359 - Lors de la coupe d'un élément de l'arborescence, le plan de test n'est pas marqué comme sale
  • Bogue 61380 - L'arrêt de JMeter à l'aide de minuteries libère un troupeau tonitruant d'échantillonneurs interrompus
  • Bogue 57055 - CheckDirty.doAction devrait effacer les précédents éléments graphiques pour SUB_TREE_SAVED

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

  • Anass Benomar (abenomar sur umanis.com, Mithrandir0407 sur github)
  • Anthony Kearns (anthony.kearnsatrightside.co)
  • Emilian Bold (emi sur apache.org)
  • Liu XP (liu_xp2003 sur sina.com)
  • Pack de chargement Ubik
  • Wolfgang Wagner (internetwolf2000 sur hotmail.com)
  • Junlong Wu (identifiant github mybreeze77)

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :

  • Liu XP (liu_xp2003 sur sina.com)
  • Alexandre Podelko (apodelko sur yahoo.com)

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous lancez une requête HTTPS sur un site web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption ) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  up/down ) est totalement inutilisable avec Java 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Variante 3.2

Sommaire

Nouveau et remarquable

CHANGEMENTS IMPORTANTS

JMeter nécessite maintenant Java 8. Assurez-vous d'utiliser la version la plus récente.

La journalisation JMeter a été migrée vers SLF4J et Log4j 2. Cela affecte la configuration et les plug-ins tiers, voir ci-dessous "Modifications de journalisation" .

À partir de la version 3.2 de JMeter, le nombre de résultats dans Afficher l'arborescence des résultats est limité par défaut à 500 entrées. Si vous voulez plus d'entrées, vous devez définir la propriété view.results.tree.max_results sur une valeur plus élevée, ou sur 0 , si vous ne souhaitez pas imposer de limite. Vous pouvez définir la propriété dans bin/user.properties. Plus d'informations peuvent être trouvées ici .

Améliorations de base

  • JMeter fournit désormais une nouvelle implémentation BackendListener qui interface InfluxDB.
    Cette implémentation envoie des données à l'aide d'appels HTTP asynchrones à InfluxDB via son API HTTP et vous donne les graphiques suivants avec des annotations :
  • Le gestionnaire de cache DNS dispose désormais d'une table pour permettre la résolution d'hôte statique.
  • L'éditeur et l'abonné JMS autorisent désormais la reconnexion en cas d'erreur avec pause.
  • Les variables dans JMS Publisher sont désormais prises en charge pour tous les types de messages. Ajouter le type d'encodage du fichier pour analyser son contenu
  • XPath Extractor permet désormais une extraction aléatoire, par index ou pour toutes les correspondances.
  • L'assertion de réponse permet désormais de travailler sur l'en-tête de demande, fournit une combinaison "OU" et a un meilleur rendu de cellule
  • JMeter utilise désormais le moteur Oracle Nashorn Javascript au lieu de Rhino. Cela permet une exécution plus rapide de Javascript.
  • L'implémentation HTTP HC4 fournit désormais une authentification de base préemptive activée par défaut
  • Le téléchargement des ressources intégrées dans CSS a été amélioré pour éviter une analyse répétitive inutile pour trouver les ressources
  • Un travail important sur la qualité du code et la couverture du code avec des tests a été fait depuis que Sonar a été installé sur le projet. Vous pouvez voir le rapport Sonar ici .

Améliorations de l'expérience utilisateur

  • Lors de l'exécution d'un test, l'interface graphique est désormais plus réactive et a moins d'impact sur l'utilisation de la mémoire grâce à une limitation du nombre d'écouteurs de résultats d'échantillons et à une refonte de la façon dont l'interface graphique est mise à jour
  • L'interface graphique de requête HTTP a été simplifiée et offre plus de place pour les paramètres et le corps.
  • HTTP(S) Test Script Recorder a été simplifié et clarifié.
  • Une fonction de remplacement a été ajoutée à la fonction de recherche pour permettre le remplacement de certains éléments.
    ReplaceAll ne fait pas de remplacement sur tous les éléments, il le fait sur :
    - HeaderManager : remplacement dans les valeurs
    - Http Request : remplacement dans Arguments, Path et Host
  • Afficher l'arborescence des résultats fournit désormais un rendu de navigateur plus à jour qui nécessite JavaFX.
  • Vous pouvez maintenant ajouter via un menu contextuel des temps de réflexion, cela ajoutera des temps de réflexion entre les échantillonneurs et les contrôleurs de transaction du nœud sélectionné.
  • Vous pouvez désormais appliquer une stratégie de nommage aux enfants d'un contrôleur de transaction. Une politique par défaut existe mais vous pouvez implémenter la vôtre via org.apache.jmeter.gui.action.TreeNodeNamingPolicy et en configurant la propriété naming_policy.impl
  • Le tri par colonne a été ajouté aux éléments Afficher les résultats dans le tableau, le rapport récapitulatif, le rapport agrégé et le graphique agrégé.

Améliorations du rapport/tableau de bord

  • Les statistiques ont été réorganisées pour clarifier le rapport :
  • Il est désormais possible de personnaliser les seuils APDEX par transaction en fonction d'une expression régulière ou d'un nom d'échantillon. L'exemple ci-dessous appliquera des seuils différents pour les échantillons sample(\\d+), sampleA et scenarioB que ceux par défaut (500 et 1500 pour les seuils satisfaits et tolérés) déclarés :
    jmeter.reportgenerator.apdex_satisfied_threshold=500
    jmeter.reportgenerator.apdex_tolerated_threshold=1500
    jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\
        échantillonA:3000|4000;\
        scénarioB:5000|6000
    

Améliorations de la documentation

  • Les documentations PDF ont été migrées et mises à jour vers le manuel d'utilisation HTML

Modifications incompatibles

  • JMeter nécessite maintenant au moins une version Java 8 pour fonctionner.
  • La journalisation JMeter a été migrée vers SLF4J et Log4j 2, cela implique des changements dans la façon dont la configuration est effectuée. JMeter s'appuie désormais sur la configuration standard de Log4j 2 dans le fichier log4j2.xml. Voir la section Modifications de journalisation ci-dessous pour plus de détails.
  • Les jars suivants ont été supprimés après la migration de LogKit vers SLF4J (voir 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
  • Le commons-httpclient-3.1.jar a été supprimé après la suppression de la prise en charge de HC3.1 (voir le bogue 60727 )
  • JMeter définit maintenant via -Djava.security.egd=file:/dev/urandom l'algorithme pour le random sécurisé
  • Process Sampler renvoie désormais le code d'erreur 500 lorsqu'une erreur se produit. Il retournait auparavant une valeur vide.
  • Dans org.apache.jmeter.protocol.http.sampler.HTTPHCAbstractImpl deux champs statiques protégés ( localhost et nonProxyHostSuffixSize ) ont été renommés en ( LOCALHOST et NON_PROXY_HOST_SUFFIX_SIZE ) pour suivre la convention de dénomination des champs statiques
  • JMeter utilise désormais par défaut le moteur Oracle Nashorn au lieu de Mozilla Rhino pour de meilleures performances. Cela ne devrait pas avoir d'impact à moins que vous n'utilisiez certaines fonctionnalités avancées. Vous pouvez revenir à Rhino en définissant la propriété javascript.use_rhino=true . Vous pouvez lire ce guide de migration pour plus de détails sur Nashorn. Voir bogue 60672
  • Bogue 60729 - L'élément de configuration de variable aléatoire autorise désormais minimum==maximum. Les versions précédentes enregistraient une erreur lorsque minimum==maximum et ne définissaient pas la variable configurée.
  • Bogue 60730 - Le post-processeur JSON définit désormais la variable _ALL (en supposant que la variable de concaténation de calcul a été cochée) même si le chemin JSON ne correspond qu'une seule fois. Les versions précédentes ne définissaient pas la variable _ALL dans ce cas.

Éléments ou fonctions supprimés

  • La requête SOAP/XML-RPC a été supprimée dans le cadre du bogue 60727 . Utilisez l'élément HTTP Request en remplacement. Voir Création d'un plan de test de service Web
  • Bogue 60423 - Drop Monitor Results listener
  • Supprimer la classe obsolète org.apache.jmeter.protocol.system.NativeCommand
  • Supprimer la classe obsolète org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui
  • Supprimer la classe obsolète org.apache.jmeter.testelement.TestListener
  • Supprimer la classe obsolète org.apache.jmeter.reporters.FileReporter
  • Supprimer la classe obsolète org.apache.jmeter.protocol.http.modifier.UserSequence
  • Supprimer la classe obsolète org.apache.jmeter.protocol.http.parser.HTMLParseError
  • Supprimez les méthodes inutilisées org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader et org.apache.jmeter.protocol.http.control.HeaderManager#setSOAPHeader(Object)
  • org.apache.jmeter.protocol.http.util.Base64Encode est obsolète, vous pouvez utiliser java.util.Base64 en remplacement

Journalisation des modifications

La journalisation JMeter a été migrée vers SLF4J et Log4j 2. Cela affecte la configuration de la journalisation et les plugins tiers (s'ils utilisent la journalisation JMeter). Les sections suivantes décrivent les modifications à apporter.

Définition du niveau de journalisation et du fichier journal

Le niveau de journalisation par défaut peut être modifié sur la ligne de commande à l'aide du paramètre -L . De même, le paramètre -l peut être utilisé pour changer le nom du fichier journal. Cependant, les propriétés log_level ne fonctionnent plus.

Les niveaux de journalisation par défaut et le nom de fichier sont définis dans le fichier de configuration log4j2.xml dans le répertoire de lancement (généralement JMETER_HOME/bin )

Si vous devez modifier le niveau par programme à partir du code Groovy ou Beanshell, vous devez procéder comme suit :
    importer org.apache.logging.log4j.core.config.Configurator ;
    ⋮
    chaîne finale loggerName = te.getClass().getName(); // te étant une classe JMeter
    Configurator.setAllLevels(loggerName, Level.DEBUG);
    

Modifications apportées à la journalisation des plug - ins tiers

Les plugins tiers doivent migrer leur code de journalisation de logkit vers slf4j. C'est assez facile et peut être fait en remplaçant:
        import org.apache.jorphan.logging.LoggingManager ;
        importer org.apache.log.Logger ;
        ⋮
        log Logger final statique privé = LoggingManager.getLoggerForClass();
    
Par:
        importer org.slf4j.Logger ;
        importer org.slf4j.LoggerFactory ;
        ⋮
        log Logger final statique privé = LoggerFactory.getLogger(YourClassName.class);
    

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 59934 - Correction des conditions de concurrence dans CssParser. Basé sur un patch de Jérôme Loisel (loisel.jerome at gmail.com)
  • Bogue 60543 - Requête HTTP / Requête Http par défaut UX : passer au panneau avancé Délais d'attente, implémentation, proxy. Implémenté par Philippe Mouawad (p.mouawad chez ubik-ingenierie.com) et contribué par Ubik Load Pack (support chez ubikloadpack.com)
  • Bogue 60548 - Requête HTTP : Autoriser le repli du panneau supérieur
  • Bogue 57242 - L'autorisation HTTP n'est pas définie de manière préventive avec HttpClient4
  • Bogue 60727 - Suppression de commons-httpclient-3.1 et des éléments associés. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60790 - Enregistreur de script de test HTTP(S) : améliorez les informations sur l'expiration du certificat et améliorez l'expérience utilisateur pour le démarrage/l'arrêt
  • Bogue 60888 - HttpRequest : Ajout d'une option pour autoriser le réessai de toutes les requêtes, y compris les méthodes HTTP NON idempotentes
  • Bug 60896 - Enregistreur de script de test HTTP(S) : améliorez l'expérience utilisateur en réduisant le nombre de propriétés à l'écran

Autres échantillonneurs

  • Bug 60740 - Variable de support pour tous les messages JMS (octets, objet, …) et sources (fichier, dossier), basée sur la requête Pull #241 - . Contribution de Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bogue 60585 - Editeur JMS et Abonné JMS : Autoriser la reconnexion en cas d'erreur et la pause entre les erreurs. Basé sur la pull request #240 - de Logan Mauzaize (logan.mauzaize sur gmail.com) et Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Pull request #259 - - SmtpSampler refactorisé et reformaté. Contribué par Graham Russell (graham sur ham1.co.uk)

Contrôleurs

  • Bug 60672 - Fonction JavaScript / IfController : utilise le moteur Nashorn par défaut

Les auditeurs

  • Bogue 60144 - Afficher l'arborescence des résultats : ajoutez un rendu de navigateur plus à jour pour remplacer l'ancien rendu
  • Bogue 60542 - Afficher l'arborescence des résultats : permet de réduire le panneau supérieur. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 52962 - Autoriser le tri par colonnes pour Afficher les résultats dans le tableau, le rapport récapitulatif, le rapport agrégé et le graphique agrégé. Basé sur une pull request #245 - par Logan Mauzaize (logan.mauzaize sur gmail.com) et Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bogue 60590 - BackendListener : Ajout de l'implémentation Influxdb BackendListenerClient à JMeter. En partie basé sur la pull request #246 - par Logan Mauzaize (logan.mauzaize sur gmail.com) et Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bug 60591 - BackendListener : Ajout d'un échantillonnage en boîte de temps. Basé sur une pull request #237 - par Logan Mauzaize (logan.mauzaize sur gmail.com) et Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bogue 60678 - Afficher l'arborescence des résultats : rendu de texte, la recherche ne doit pas afficher "Texte introuvable"
  • Bogue 60691 - Afficher l'arborescence des résultats : dans les moteurs de rendu (XPath, JSON Path Tester, RegExp Tester et CSS/JQuery Tester), le panneau inférieur n'est parfois pas visible car le panneau supérieur est trop grand et ne peut pas être redimensionné
  • Bogue 60687 - Rendre l'interface graphique plus réactive lorsqu'elle reçoit de nombreux événements.
  • Bogue 60791 - Afficher l'arborescence des résultats : déclencher la recherche sur la touche Entrée dans la fonction de recherche et afficher un arrière-plan rouge en l'absence de correspondance
  • Bogue 60822 - ResultCollector ne garantit pas des entrées de nom de fichier uniques dans les fichiers HashMap

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 60154 - Interface utilisateur des paramètres utilisateur : permet de déplacer les lignes vers le haut et vers le bas dans la liste. Contribution de Murdecai777 (https://github.com/Murdecai777).
  • Bogue 60507 - Ajout de la fonction ' Ou ' dans ResponseAssertion. Basé sur une contribution de 忻隆 (298015902 sur qq.com)
  • Bogue 58943 - Créer une meilleure expérience Think Time. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60602 - XPath Extractor : Ajouter Match No. pour permettre l'extraction aléatoire, par index ou toutes les correspondances
  • Bogue 60710 - Extracteur XPath : lorsque le contenu auquel s'applique l'assertion n'est pas XML, dans l'arborescence des résultats de l'affichage, l'extracteur est marqué en rouge et nommé SAXParseException. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 60712 - Assertion de réponse : amélioration du rendu des modèles
  • Bogue 59174 - Ajoutez une table avec des hôtes statiques au gestionnaire de cache DNS. Cela permet de meilleurs tests d'hôtes virtuels avec HttpClient4.

Les fonctions

I18N

  • Améliorer la traduction " save_as " en français. Basé sur une pull request #252 par Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bug 60785 - Amélioration de la traduction japonaise. Écusson de Kimono (kimono.outfit.am sur gmail.com).

Rapport / Tableau de bord

  • Bogue 60637 - Amélioration de la conception du tableau des statistiques
  • Bug 60112 - Rapport / Tableau de bord : Ajout de la possibilité de personnaliser les seuils APDEX par nom de transaction. Contribution de Stéphane Leplus (s.leplus sur ubik-ingenierie.com)

Général

  • Bogue 58164 - Vérifiez si le fichier existe déjà sur l'écouteur ResultCollector avant de démarrer le test de charge
  • Bug 54525 - Fonctionnalité de recherche : améliorez-la avec la possibilité de remplacer
  • Bogue 60530 - Ajout d'une API pour créer des threads JMeter pendant l'exécution du test. D'après une contribution de Logan Mauzaize (logan.mauzaize sur gmail.com) et Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bogue 60514 - Possibilité d'appliquer une convention de nommage aux enfants d'un contrôleur de transaction. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 60711 - Amélioration du comportement du bouton Supprimer pour les Assertions/Gestionnaire d'en-tête/IUG des paramètres utilisateur/Exclure, Inclure dans l'enregistreur de script de test HTTP(S)
  • Bogue 60593 - Basculer vers l'algorithme G1 GC
  • Bogue 60595 - Ajout d'un SplashScreen au début de l'interface graphique JMeter. Contribution de Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bogue 55258 - Supprimez l'icône "Fermer" de la barre d'outils et ajoutez "Nouveau" au menu. En partie basé sur la contribution de Sanduni Kanishka (https://github.com/SanduniKanishka)
  • Bogue 59995 - Autoriser l'utilisateur à modifier la taille de la police avec deux nouveaux éléments de menu et utiliser jmeter.hidpi.scale.factor pour la mise à l'échelle des polices. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60654 - Fonctionnalité de validation : Pouvoir ignorer BackendListener. Contribution de Maxime Chassagneux (maxime.chassagneux sur gmail.com).
  • Bug 60646 - Workbench : enregistrez-le par défaut
  • Bogue 60684 - Groupe de threads : la validation s'est terminée prématurément par le planificateur avec 0 ou une durée très courte. Contribution d'Andrew Burton (andrewburtonatwh sur gmail.com).
  • Bogue 60589 - Migration de LogKit vers SLF4J - Suppression d'Avalon, LogKit et Excalibur avec rétrocompatibilité pour les modules tiers. Contribution de Woonsan Ko (woonsan sur apache.org)
  • Bogue 60565 - Migrer LogKit vers SLF4J - Optimiser les instructions de journalisation. par exemple, les arguments de format de message, les arguments jetables, la journalisation if-enabled inutile dans les simples, etc. Contribué par Woonsan Ko (woonsan sur apache.org)
  • Bogue 60564 - Migrer LogKit vers SLF4J - Remplacez les enregistreurs LogKit par ceux SLF4J et conservez la solution de liaison LogKit actuelle pour une compatibilité descendante avec les plugins. Contribution de Woonsan Ko (woonsan sur apache.org)
  • Bogue 60664 - Ajout d'un menu d'interface utilisateur pour définir le niveau de journalisation. Contribution de Woonsan Ko (woonsan sur apache.org)
  • Pull request #276 - - Ajout de quelques traductions pour les paramètres régionaux polonais. Contribué par Bartosz Siewniak (barteksiewniak sur gmail.com)
  • Bogue 60792 - Créer un nouvel élément de menu Aide pour créer un vidage de thread
  • Bug 60813 - Elément de test JSR223 : Prise en compte de JMeterStopTestNowException, JMeterStopTestException et JMeterStopThreadException
  • Bogue 60814 - Menu : Ajout d'un élément de menu Ouvrir récent pour rendre plus évident le chargement des fichiers récents
  • Bogue 60815 - Supprimez "Réinitialiser l'interface graphique" du menu
  • Bogue 60886 - Améliorations des builds pour mieux activer les builds dans les environnements qui se trouvent derrière un proxy. Partiellement contribué par Michael Osipov (michaelo sur apache.org)

Changements non fonctionnels

  • Bogue 60415 - Suppression de la prise en charge de Java 7.
  • Mise à jour vers dnsjava-2.1.8.jar (à partir de 2.1.7)
  • Mise à jour vers groovy 2.4.10 (à partir de 2.4.7)
  • Mise à jour vers httpcore 4.4.6 (à partir de 4.4.5)
  • Mise à jour vers httpclient 4.5.3 (à partir de 4.5.2)
  • Mise à jour vers jodd 3.8.1 (à partir de 3.7.1.jar)
  • Mise à jour vers jsoup-1.10.2 (à partir de 1.10.1)
  • Mise à jour vers ph-css 5.0.3 (à partir de 4.1.6)
  • Mise à jour vers ph-commons 8.6.0 (à partir de 6.2.4)
  • Mise à jour vers slf4j-api 1.7.25 (à partir de 1.7.21)
  • Mise à jour vers asm 5.2 (à partir de 5.1)
  • Mise à jour vers rsyntaxtextarea-2.6.1 (à partir de 2.6.0)
  • Mise à jour vers commons-net-3.6 (à partir de 3.5)
  • Mise à jour vers json-smart-2.3 (à partir de 2.2.1)
  • Mise à jour vers accessors-smart-1.2 (à partir de 1.1)
  • Conversion des anciens tutoriels pdf en xml.
  • Pull request #255 - - Utilisation des fonctionnalités Java 8 (et 7) pour ranger le code. Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 59435 - JMeterTestCase ne prend plus en charge JUnit3

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 60531 - HTTP Cookie Manager : la modification de l'implémentation ne met pas à jour la politique relative aux cookies
  • Bogue 60575 - Les requêtes HTTP GET pouvaient avoir un en-tête de type de contenu sans corps.
  • Bogue 60682 - Requête HTTP : la méthode Get peut échouer lors de la redirection en raison de la définition de l'en-tête Content-Length
  • Bogue 60643 - L'enregistreur de script de test HTTP(S) ne gère pas correctement le redémarrage ou le démarrage après l'arrêt. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 60652 - Les requêtes HTTP PUT peuvent divulguer des descripteurs de fichiers.
  • Bogue 60689 - httpclient4.validate_after_inactivity n'a aucun impact conduisant à l'utilisation de connexions potentiellement obsolètes/fermées
  • Bogue 60690 - Les valeurs par défaut pour "httpclient4.validate_after_inactivity" et "httpclient4.time_to_live" qui sont égales l'une à l'autre rendent la validation inutile
  • Bogue 60758 - Enregistreur de script de test HTTP(s) : la demande de numéro peut générer des numéros en double. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 56939 - Les paramètres ne sont pas transmis avec la requête HTTP OPTIONS
  • Bogue 60778 - Http Java Impl n'affiche pas l'en-tête d'autorisation dans SampleResult même s'il est envoyé
  • Bogue 60837 - GET avec corps, PUT ne sont pas réessayés même si httpclient4.retrycount est supérieur à 0
  • Bogue 60842 - Coupez les URL extraites lors du chargement des ressources intégrées à l'aide de l'analyseur HTML basé sur Lagarto.
  • Bogue 60928 - Requête HTTP : fuite de connexion lorsque keepalive est utilisé avec des ressources intégrées

Autres échantillonneurs

  • Bogue 603982 - Protégez le gestionnaire d'exceptions du JDBCSampler contre les messages nuls
  • Bogue 55652 - JavaSampler réinitialise silencieusement le nom de classe si la classe est introuvable

Contrôleurs

Les auditeurs

  • Bug 60648 - GraphiteBackendListener peut perdre certaines métriques à la fin du test si le test est très court
  • Bogue 60650 - AbstractBackendListenerClient ne réinitialise pas UserMetric entre les exécutions
  • Bogue 60759 - Afficher l'arborescence des résultats : la fonction de recherche ne recherche pas dans l'URL. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60859 - Enregistrer les réponses dans un fichier : 2 éléments avec une configuration différente se chevaucheront

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bug 60438 - Pull request #235 - - Efface les anciennes variables avant d'en extraire les nouvelles dans JSON Extractor. Basé sur un patch de Qi Chen (qi.chensh sur ele.me)
  • Bogue 60607 - La configuration du gestionnaire de cache DNS est ignorée
  • Bogue 60729 - L'élément de configuration de variable aléatoire doit autoriser minimum==maximum
  • Bogue 60730 - Le post-processeur JSON doit définir la variable _ALL même si le chemin JSON ne correspond qu'une seule fois.
  • Bogue 60747 - Assertion de réponse : ajouter des en-têtes de requête au champ à tester
  • Bogue 60763 - XMLAssertion ne devrait pas transmettre d'erreurs à la console
  • Bogue 60797 - TestAction en mode pause peut durer au-delà de la durée de test configurée

Les fonctions

  • Bogue 60819 - La fonction __fileToString ne respecte pas le contrat de documentation lorsque le fichier est introuvable

I18N

Rapport / Tableau de bord

  • Bug 60726 - Rapport / Tableau de bord : Top 5 des erreurs par échantillonneurs ne doivent pas prendre en compte le filtrage des séries
  • Bug 60919 - Rapport / Tableau de bord : Latence Vs Requête et Temps de réponse Vs Requête sont erronés si la granularité est différente de 1000 (1 seconde)

Général

  • Bogue 60775 - NamePanel ctor appelle une méthode remplaçable
  • Bogue 60428 - JMeter Graphite Backend Listener génère une exception lorsque le test se termine et que useRegexpForSamplersList est défini sur true . Basé sur le correctif de Liu XP (liu_xp2003 sur sina.com)
  • Bogue 60442 - Correction d'une faute de frappe dans build.xml (gavin à 16degrees.com.au)
  • Bug 60449 - JMeter Tree : Comportement gênant lorsque le nom du nœud est vide
  • Bug 60494 - Ajout d'une tâche d'analyse sonar à la construction
  • Bug 60501 - Fonctionnalité de recherche : problème de performances lorsque l'expression régulière est vérifiée
  • Bogue 60444 - Échec intermittent de TestHTTPMirrorThread#testSleep() . Contribution de Thomas Schapitz (ts-nospam12 sur online.de)
  • Bogue 60621 - Le dossier " report-template " est manquant dans ApacheJMeter_config-3.1.jar dans maven central
  • Bogue 60744 - Les éléments de l'interface graphique ne sont pas nettoyés lorsqu'ils sont réutilisés lors du chargement du plan de test, ce qui peut les amener à être partiellement initialisés avec un état précédent pour un nouvel élément de test
  • Bogue 60812 - JMeterThread n'honore pas le contrat de JMeterStopTestNowException
  • Bogue 60857 - SaveService omet l'en-tête XML si _file_encoding n'est pas défini dans saveservice.properties
  • Bogue 60830 - Les horodatages dans le fichier CSV peuvent être corrompus en raison du partage d'un SimpleDateFormatter entre les threads

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :

  • Tuukka Mustonen (tuukka.mustonen sur gmail.com) qui nous a donné beaucoup de commentaires utiles qui ont aidé à résoudre les bogues 60689 et 60690
  • Amar Darisa (amar.darisa sur gmail.com) qui nous a aidé avec ses commentaires sur le bogue 60682

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous exécutez une requête HTTPS sur un site Web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 8+.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir Bug JDK-8031109 Le correctif consiste à utiliser JDK9 b65 ou version ultérieure (mais sachez que Java 9 n'est pas encore certifié pour JMeter).
  • La sélection de JTable au clavier ( SHIFT  +  haut/bas ) est totalement inutilisable avec JAVA 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Variante 3.1

Sommaire

Nouveau et remarquable

Améliorer le rapport/tableau de bord

Le Dashboard a été amélioré avec 3 nouveaux graphiques et 1 tableau récapitulatif :

  • Graphique du temps de connexion dans le temps :
  • Graphique des centiles de temps de réponse dans le temps (réponses réussies) :
  • Graphique d'aperçu du temps de réponse :
  • Top 5 des erreurs par tableau Sampler :
  • Plus de détails sur les erreurs dans le tableau des erreurs
  • Temps de réponse moyen ajouté au tableau Statistiques :
  • Le tableau des threads actifs empile désormais les threads :

Nouvelles mesures

Une nouvelle métrique sent_bytes a été introduite qui signale les octets envoyés au serveur.
Une autre métrique connect_time a été activée par défaut dans cette version

Gestion des réponses volumineuses

JMeter est désormais capable de gérer en termes de réponses de métriques supérieures à 2 Go, la limite a été augmentée à 9223372 To.
Pour gérer des réponses aussi volumineuses, il peut également maintenant tronquer une partie de la réponse pour éviter de surcharger la mémoire. Voir la propriété httpsampler.max_bytes_to_store_per_request .

Nouvelle fonction __groovy

Introduisez une nouvelle fonction __groovy qui active les fonctions Groovy. Cela peut être pratique, car JavaScript peut être assez lent (idem pour BeanShell), lorsqu'il est utilisé dans des plans de test hautement simultanés.

Utiliser Groovy par défaut pour les éléments JSR-223

Groovy est maintenant défini comme langue par défaut pour les éléments JSR-223. Si vous souhaitez utiliser une autre langue prise en charge, vous devez faire un choix explicite.

Par défaut Cacher le script compilé si disponible n'est pas coché par défaut bien que nous vous conseillons de le vérifier et de vous assurer que vous n'utilisez pas la syntaxe ${varName} pour accéder aux variables JMeter mais vars.get("varName") à la place.

Affichage source HTML formaté dans l'arborescence des résultats

Le code source HTML dans l'arborescence des résultats peut désormais être affiché formaté. Ceci est extrêmement utile, si le code de la page Web a été dépouillé de tout espace blanc superflu.

Nouvelle vue source HTML formatée
Nouvelle vue source HTML formatée

Possibilité de mettre à jour toutes les minuteries dans le plan de test avec une nouvelle propriété

Une nouvelle propriété timer.factor=1.0f a été introduite qui vous permet de multiplier par celle-ci les temps de pause calculés par les temporisateurs gaussiens, uniformes et de Poisson. Cela vous permet de mettre à jour Think Times à partir d'un seul endroit et de gagner en productivité.

Améliorations de base

  • Divers correctifs GUI et UX
  • Améliorations de l'utilisation de la mémoire
  • JDBC Request est désormais capable de renvoyer Blob/Clob et calcule la latence et le temps de connexion
  • L'analyse CSS introduite dans la version 3.0 a été optimisée par l'introduction d'un cache d'analyse
  • La requête HTTP est désormais capable de gérer le corps dans la requête GET, ce qui est utile pour les requêtes Elastic Search par exemple.

Améliorations de la documentation

Modifications incompatibles

  • Un cache pour l'analyse CSS des URL a été introduit dans cette version, il est activé par défaut. Il est contrôlé par la propriété css.parser.cache.size . Il peut être désactivé en définissant sa valeur sur 0 . Voir bogue 59885
  • Les valeurs par défaut de ThroughputController ont changé. Désormais, les valeurs par défaut sont le pourcentage d'exécutions, qui est global et non plus par utilisateur. Voir bogue 60023
  • Depuis la version 3.1, le rapport HTML ignore le Transaction Controller vide (éventuellement généré par If Controller ou Throughput Controller ) lors du calcul des métriques. Cela fournit des mesures plus précises
  • Depuis la version 3.1, Summariser ignore les SampleResults générés par Transaction Controller lors du calcul des statistiques en direct, voir Bug 60109
  • Depuis la version 3.1, lors de l'utilisation des modes Stripped (par défaut , StrippedBatch est utilisé), la réponse sera également supprimée en cas d'échec de SampleResults, vous pouvez revenir au comportement précédent en définissant sample_sender_strip_also_on_error=false dans user.properties , voir Bug 60137
  • Depuis la version 3.1, la valeur de la propriété jmeter.save.saveservice.connect_time est true , ce qui signifie que le fichier CSV pour les résultats contiendra une colonne supplémentaire contenant le temps de connexion, voir Bug 60106
  • Depuis la version 3.1, les sous-classes Random Timer (Gaussian Random Timer, Uniform Random Timer et Poisson Random Timer) implémentent l'interface org.apache.jmeter.timers.ModifiableTimer
  • Depuis la version 3.1, si vous ne sélectionnez aucune langue dans JSR223 Test Elements, la langue Apache Groovy sera utilisée. Voir bogue 59945
  • Depuis la version 3.1, CSV DataSet supprime désormais les noms de variables pour éviter les problèmes dus aux espaces entre les noms de variables lors de la configuration de CSV DataSet. Cela ne devrait pas avoir d'impact pour vous, sauf si vous utilisez un espace au début ou à la fin de vos noms de variables. Voir bogue 60221
  • Depuis la version 3.1, la requête HTTP est capable, lors de l'utilisation de l'implémentation HttpClient4 (par défaut), de gérer des réponses supérieures à 2147483647 octets, soit 2 Go. Pour permettre cela, deux propriétés ont été introduites :
    • httpsampler.max_bytes_to_store_per_request (par défaut à 10 Mo) contrôlera ce qui est conservé en mémoire. Par défaut, JMeter ne gardera en mémoire que les 10 premiers Mo d'une réponse. Si vous avez des réponses supérieures à cette valeur et que vous utilisez des assertions postérieures aux 10 premiers Mo, vous devez augmenter cette valeur.
    • httpsampler.max_buffer_size contrôlera le tampon utilisé pour lire les données. Auparavant, JMeter utilisait un tampon égal à l'en-tête Content-Length, ce qui pouvait entraîner des échecs et rendre JMeter moins résistant aux applications défectueuses, mais notez que cela peut avoir un impact sur les temps de réponse et donner des résultats légèrement différents des versions précédentes si votre application renvoyait un en-tête Content-Length supérieur. supérieur à la valeur par défaut actuelle (65 Ko)
    Voir bogue 53039

Éléments ou fonctions obsolètes et supprimés

Ces éléments n'apparaissent plus dans le menu, si vous en avez besoin modifiez la propriété not_in_menu . L'équipe JMeter conseille de ne plus les utiliser et de migrer vers leur remplacement.

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 59882 - Réduisez les allocations de mémoire pour un meilleur débit. Contribution de Benoit Wiart (b.wiart chez ubik-ingenierie.com) via Pull request #217 et Pull request #228 -
  • Bogue 59885 - Optimisez l'analyse css pour le téléchargement des ressources intégrées en introduisant un cache. Contribution de Benoit Wiart (b.wiart chez ubik-ingenierie.com) via Pull request #219 -
  • Bogue 60092 - Afficher l'arborescence des résultats : ajoutez une version raccourcie du corps PUT au résultat de l'échantillonneur.
  • Bug 60229 - Ajout d'une nouvelle métrique : sent_bytes. Implémenté par Philippe Mouawad (p.mouawad chez ubik-ingenierie.com) et contribué par Ubik Load Pack (support chez ubikloadpack.com)
  • Bug 53039 - Requête HTTP : pouvoir gérer les réponses dont la taille dépasse 2147483647 octets (soit 2 Go)
  • Bogue 60265 - Requête HTTP : dans l'onglet Téléchargement de fichiers, vous ne pouvez pas redimensionner les colonnes
  • Bogue 60318 - Ignorer les avertissements CSS lors de l'analyse avec la bibliothèque ph-css.
  • Bogue 60358 - Requête HTTP : Autoriser l'envoi de données corporelles pour la requête HTTP GET

Autres échantillonneurs

  • Pull request #211 - Différencier le timing pour JDBC Sampler. Utilisez la latence et le temps de connexion. Contribution de Thomas Peyrard (thomas.peyrard sur murex.com)
  • Bug 59620 - Correction de l'action du bouton dans "JMS Publisher → Fichier aléatoire du dossier spécifié ci-dessous" pour permettre de sélectionner un répertoire
  • Bogue 60066 - Gérez les CLOB et les BLOB et limitez-les si nécessaire lors de leur stockage dans l'échantillonneur de résultats.

Contrôleurs

  • Bogue 59351 - Amélioration du journal/erreur/message pour IncludeController. Partiellement contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bogue 60023 - ThroughputController : faites "Pourcentage d'exécutions" et global les valeurs par défaut. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60082 - Mode de validation : pouvoir forcer le contrôleur de débit à s'exécuter comme s'il était réglé sur 100 %
  • Bogue 59349 - Supprime les espaces dans le nom du fichier d'entrée dans IncludeController.
  • Bogue 60081 - Interleave Controller : Ajout d'une option pour alterner entre les threads

Les auditeurs

  • Bogue 59953 - GraphiteBackendListener : Ajout d'une métrique Moyenne. Partiellement contribué par Maxime Chassagneux (maxime.chassagneux sur gmail.com)
  • Bogue 59975 - Afficher l'arborescence des résultats : le rendu de texte défile de manière gênante lorsque le contenu est volumineux. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60109 - Summariser : faites-le ignorer le SampleResult généré par TC dans ses calculs de résumé
  • Bogue 59948 - Ajout d'un rendu de code source HTML formaté et sain à Afficher l'arborescence des résultats
  • Bogue 60252 - Ajouter des kilo-octets/s envoyés au rapport agrégé et au rapport récapitulatif
  • Bogue 60267 - UX : dans l'arborescence des résultats de la vue, il devrait être possible de fermer la fenêtre contextuelle Configurer en tapant escape. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 59845 - Consigne les messages concernant les incompatibilités de chemin JSON au niveau du débogage au lieu de error .
  • Pull request #212 - Autoriser la sélection multiple et la suppression dans le gestionnaire d'autorisations HTTP. D'après un patch de Benoit Wiart (b.wiart chez ubik-ingenierie.com)
  • Bogue 59816 - Pull request #213 - Autoriser la sélection multiple et la suppression dans HTTP Header Manager. D'après un patch de Benoit Wiart (b.wiart chez ubik-ingenierie.com)
  • Bug 59967 - Extracteur CSS/JQuery : Autoriser une valeur par défaut vide. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 59974 - Assertion de réponse : bouton Ajouter " Ajouter depuis le presse-papiers ". Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 60050 - Ensemble de données CSV : indiquez clairement dans les journaux quand un thread se fermera en raison de cette configuration
  • Bogue 59962 - Le gestionnaire de cache ne met pas à jour la date d'expiration lorsque le code de réponse est 304 .
  • Bug 60018 - Timer : Ajout d'un facteur à appliquer sur les pauses. En partie basé sur un correctif d'Ubik Load Pack (support sur ubikloadpack.com)
  • Bogue 60203 - Utiliser plus d'espace disponible pour la zone de texte dans l'assertion XPath.
  • Bogue 60220 - Renommer le post-processeur de chemin JSON en extracteur JSON
  • Bug 60221 - CSV DataSet : suppression des noms de variables
  • Bogue 59329 - Supprime les espaces dans le nom du fichier d'entrée dans CSVDataSet.

Les fonctions

  • Bug 59963 - Nouvelle fonction __RandomFromMultipleVars : Possibilité de calculer une valeur aléatoire à partir des valeurs d'une ou plusieurs variables. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 59991 - Nouvelle fonction __groovy pour évaluer Groovy Script. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

I18N

  • Pull request #214 - Ajout d'une traduction en espagnol pour le démarrage différé des threads. Contribution d'Asier Lostale (asier.lostale sur openbravo.com).
  • Bogue 60348 - Modification de la traduction chinoise pour Enregistrer sous . Contribution de XMeter (assistance sur xmeter.net).

Rapport / Tableau de bord

  • Bogue 59954 - Rapport Web/Tableau de bord : Ajouter une métrique moyenne
  • Bug 59956 - Web Report / Dashboard : Ajout de la possibilité de générer un graphique pour une plage de données
  • Bug 60065 - Rapport / Tableau de bord : Améliorez le résumé des erreurs du tableau de bord en ajoutant un message de réponse à "Type d'erreur". Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60079 - Rapport / Tableau de bord : Ajout d'un nouveau graphique "Response Time Overview"
  • Bug 60080 - Rapport / Tableau de bord : Ajout d'un nouveau graphique "Connect Time Over Time". Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60091 - Rapport / Tableau de bord : Avoir un nouveau rapport contenant des graphiques min/max et percentiles.
  • Bug 60108 - Rapport / Tableau de bord : Dans le résumé des demandes, l'arrondi est trop agressif
  • Bug 60098 - Rapport / Tableau de bord : Réduisez la valeur par défaut de " jmeter.reportgenerator.statistic_window " pour réduire l'impact mémoire
  • Bogue 60115 - Ajout d'une propriété de format de date pour le filtre de date de début/fin dans le générateur de rapport
  • Bug 60171 - Rapport / Tableau de bord : les threads actifs dans le temps doivent empiler les lignes pour donner le nombre total de threads en cours d'exécution
  • Bug 60250 - Rapport/Tableau de bord : Nécessité d'ajouter des Ko/s envoyés dans le rapport statistique du tableau de bord HTML
  • Bug 60287 - Rapport / Tableau de bord : Avoir un nouveau tableau Top5 des erreurs par échantillonneur dans le tableau de bord. Implémenté par Philippe Mouawad (p.mouawad chez ubik-ingenierie.com) et contribué par Ubik Load Pack (support chez ubikloadpack.com)

Général

  • Bogue 59803 - Utilisez la méthode isValid() du pilote JDBC, si aucune validationQuery n'est donnée dans la configuration de la connexion JDBC.
  • Bogue 57493 - Créer une page de documentation pour les propriétés
  • Bogue 59924 - Le niveau de journalisation du package XXX est défini sur DEBUG si log_level. La valeur de la propriété XXXX contient des espaces, idem pour la fonction __log
  • Bogue 59777 - Extraire la liaison SLF4J dans son propre fichier jar et en faire une bibliothèque JMeter.
    Si vous recevez un avertissement concernant plusieurs liaisons SLF4J au démarrage. Supprimez soit la liaison fournie par Apache JMeter lib/ApacheJMeter_slf4j_logkit.jar , soit toutes les autres liaisons signalées. Pour plus d'informations, vous pouvez consulter la page d' informations de SLF4J.
  • Bogue 60085 - Supprimez le cache des instructions préparées, car cela ne fonctionnait pas avec l'implémentation actuelle du pool JDBC et les pilotes JDBC actuels devraient eux-mêmes prendre en charge la mise en cache des instructions préparées.
  • Bogue 60137 - Dans les tests distribués lors de l'utilisation des modes StrippedXXXX, supprimez également la réponse en cas d'erreur
  • Bug 60106 - Paramètres par défaut : Basculez " jmeter.save.saveservice.connect_time " sur true (après 3.0)
  • Pull request #229 - petites améliorations de l'allocation de mémoire. Contribution de Benoit Wiart (b.wiart chez ubik-ingenierie.com)
  • Bogue 59945 - Pour tous les éléments JSR223, si le langage de script n'a pas été choisi sur l'interface utilisateur, le script sera interprété comme un script groovy.
  • Bug 60266 - Ergonomie/ UX : Il ne devrait pas être possible de fermer/quitter/Rétablir/Charger/Charger un projet récent ou de créer à partir d'un modèle un plan JMeter ou d'en ouvrir un nouveau si un test est en cours
  • Bogue 57305 - Suppression de la dépendance de ProxyControl sur GuiPackage . Basé sur les correctifs de jarek102 (jarek102 sur gmail.com) et Wyatt Epp (wyatt.epp sur gmail.com)

Changements non fonctionnels

  • Mise à jour vers jsoup-1.10.1 (à partir de 1.8.3)
  • Mise à jour vers ph-css 4.1.6 (à partir de 4.1.4)
  • Mise à jour vers tika-core et tika-parsers 1.14 (à partir de 1.12)
  • Mise à jour vers commons-io 2.5 (à partir de 2.4)
  • Mise à jour vers commons-lang3 3.5 (à partir de 3.4)
  • Mise à jour vers commons-net 3.5 (à partir de 3.4)
  • Mise à jour vers groovy 2.4.7 (à partir de 2.4.6)
  • Mise à jour vers httpcore 4.4.5 (à partir de 4.4.4)
  • Mise à jour vers slf4j-api 1.7.21 (à partir de 1.7.13)
  • Mise à jour vers rsyntaxtextarea-2.6.0 (à partir de 2.5.8)
  • Mise à jour vers xstream 1.4.9 (depuis 1.4.8)
  • Mise à jour vers jodd 3.7.1 (à partir de 3.6.7.jar)
  • Mise à jour vers xmlgraphics-commons 2.1 (depuis 2.0.1)
  • Pull request #215 - Réduisez le code dupliqué en utilisant la méthode nouvellement ajoutée GuiUtils#cancelEditing . Contribution de Benoit Wiart (b.wiart chez ubik-ingenierie.com)
  • Pull request #218 - Nettoyage divers. Contribution de Benoit Wiart (b.wiart chez ubik-ingenierie.com)
  • Pull request #216 - Réutilisez le motif lorsque cela est possible. Contribution de Benoit Wiart (b.wiart chez ubik-ingenierie.com)
  • Bogue 60364 - Couverture des tests de documents. Contribution de Thomas Schapitz (ts-nospam12 sur online.de)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 58888 - L'enregistreur de script de test HTTP(S) (ProxyControl) n'ajoute pas les TestElement renvoyés par SamplerCreator#createChildren()
  • Bogue 59902 - Échec de la poignée de main Https lors de la définition de la propriété httpclient.socket.https.cps
  • Bogue 60084 - L'URL de la ressource intégrée JMeter 3.0 est encodée en mode silencieux
  • Bogue 60376 - Enregistreur de script de test Http : si deflate est utilisé par le serveur, l'enregistrement peut interrompre l'application

Autres échantillonneurs

  • Bogue 59113 - Configuration de la connexion JDBC : le niveau d'isolation des transactions n'est pas correctement défini si une constante est utilisée au lieu d'une valeur numérique

Contrôleurs

  • Bug 60361 - ModuleController : Si un plan de Test contient un Module Controller qui fait référence à un Controller inexistant, JMeter en mode GUI ne s'arrêtera pas

Les auditeurs

  • Bogue 59712 - Afficher la requête d'origine dans RequestView lorsque le décodage échoue. Basé sur un patch de Teemu Vesala (teemu.vesala sur qentinel.com)
  • Bogue 60278 - Depuis la version 2.13 (et le bogue 57514 ), le graphique agrégé, le rapport récapitulatif et le rapport agrégé ont perdu de la précision dans les valeurs d'erreur, de débit et de bande passante enregistrées dans le fichier enregistré csv
  • Bogue 60360 - Afficher l'arborescence des résultats : l'onglet de requête n'affiche pas le corps d'une requête DELETE

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 59964 - Élément de test JSR223 : le script compilé en cache, s'il est disponible, n'est pas correctement réinitialisé. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 59609 - Formater correctement les objets JSON extraits dans le post-processeur JSON en tant que JSON.
  • Bogue 60332 - Afficher l'arborescence des résultats : avec Windows LAF, JSON Extractor n'affiche pas le panneau JSON Path Expression and Result

Les fonctions

I18N

Général

  • Bogue 59400 - Débarrassez-vous de UnmarshalException lors de l'arrêt lorsque l' option -X est utilisée.
  • Bogue 59607 - JMeter se bloque lors de la lecture d'un plan de test volumineux (supérieur à 2 Go). Basé sur le correctif de Felix Draxler (felix.draxler sur sap.com)
  • Bogue 59621 - Le nombre d'erreurs dans le tableau de bord du rapport est unique.
  • Bogue 59657 - Définir uniquement la police dans JSyntaxTextArea, lorsque la propriété jsyntaxtextarea.font.family est définie.
  • Bogue 59720 - Les comparaisons de fichiers de test par lots échouent sous Windows car les fichiers XML sont générés en tant que EOL=LF
  • Nettoyages de code. Correctifs de Graham Russell (graham sur ham1.co.uk)
  • Bogue 59722 - Utilisez StandardCharsets pour réduire la possibilité de fautes d'orthographe dans les noms de Charset.
  • Bogue 59723 - Utilisez jmeter.properties pour tester chaque fois que possible
  • Bogue 59726 - Test unitaire pour vérifier que le texte d'en-tête CSV et le format de l'échantillon ne changent pas de manière inattendue
  • Bogue 59889 - Modification de l'encodage en UTF-8 dans les rapports du tableau de bord.
  • Bogue 60053 - En mode non graphique, un Stacktrace s'affiche à la fin du test pendant la génération du rapport
  • Bogue 60049 - Lors de l'utilisation de temporisateurs avec des retards élevés ou d'un temporisateur à débit constant avec un débit faible, le planificateur peut prendre beaucoup de temps pour se fermer, de même pour le test d'arrêt
  • Bug 60089 - Rapport/Tableau de bord : le débit d'octets dans le temps a inversé les octets envoyés et reçus. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 60090 - Rapport/Tableau de bord : Un contrôleur de transaction vide ne doit pas compter dans les métriques
  • Bug 60103 - Rapport/Tableau de bord : le résumé des requêtes inclut le contrôleur de transaction, ce qui entraîne un pourcentage erroné
  • Bogue 60105 - Rapport/Tableau de bord : le rapport nécessite l'option « générer un échantillon parent » du contrôleur de transaction pour être vérifiée, corrige les problèmes associés
  • Bug 60107 - Rapport / Tableau de bord : Dans StatisticSummary, TransactionController SampleResult rend la ligne Total erronée
  • Bug 60110 - Rapport / Tableau de bord : Dans les centiles de temps de réponse, le curseur est inutile
  • Bug 60135 - Rapport/Tableau de bord : les threads actifs au fil du temps doivent être dans la section OverTime
  • Bug 60125 - Rapport / Tableau de bord : Le tableau de bord ne peut pas être généré si le délimiteur par défaut est \t . Basé sur un rapport de Tamas Szabadi (tamas.szabadi sur rightside.co)
  • Bug 59439 - Rapport / Tableau de bord : AbstractOverTimeGraphConsumer.createGroupInfos() doit être abstrait
  • Bogue 59918 - Le rapport HTML généré par Ant est cassé (dossier extras)
  • Bogue 60295 - L'extracteur JSON n'indexe pas les éléments du tableau lorsqu'un seul élément est trouvé. Basé sur un patch de Roberto Braga (roberto.braga sur sociale.it)
  • Bug 60299 - Groupe de threads avec planificateur : comportement étrange lorsque l'heure de fin est dans le passé

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :
    [java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
     java.util.prefs.BackingStoreException :
     java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
    
    Cela n'affecte pas le fonctionnement de JMeter. Ce problème est résolu depuis Java 7b05.
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Avec Oracle Java 7 et Mac Book Pro Retina Display, l'interface graphique JMeter peut sembler floue. Il s'agit d'un bogue Java connu, voir Bug JDK-8000629 . Une solution de contournement consiste à utiliser un environnement d'exécution Java 7 mise à jour 40 qui résout ce problème.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous exécutez une requête HTTPS sur un site Web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 7 version u16 (MD2) et version u40 (taille du certificat inférieure à 1024 bits), ainsi que Java 8.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK7_u79, JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  haut/bas ) est totalement inutilisable avec JAVA 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Version 3.0

Sommaire

Nouveau et remarquable

Création de plans de test et améliorations du débogage

Nouvelle fonctionnalité de recherche dans l'arborescence des résultats pour permettre la recherche de texte/expression régulière dans les requêtes/réponses/en-têtes/cookies/… Cela facilitera la corrélation et la création de plans de test

Nouveau post-processeur JSON pour mieux extraire les données du contenu JSON à l'aide de la syntaxe JSON-PATH conviviale

JSON est maintenant un citoyen de première classe dans JMeter avec l'introduction d'un nouveau post-processeur JSONPath . Ce post-processeur est très similaire au post-processeur d'expressions régulières mais convient bien au code JSON. Il est basé sur la bibliothèque Jayway JSON Path

Nouvelle fonctionnalité de validation, en un clic, exécutez une sélection de groupes de threads avec 1 utilisateur, sans pause et 1 itération

Les éléments de test JSR223 ne nécessitent plus de clé de compilation de cache

Cochez simplement Cache compiled script if available et les éléments (Pre-Processor, Post-Processor, Assertions, Listeners, …) précompileront le script et mettront en cache le code compilé si le langage sous-jacent le prend en charge

Nashorn peut maintenant être utilisé comme moteur Javascript offrant de meilleures performances et une utilisation plus facile

Pour activer Nashorn , vous devez définir dans user.properties :

javascript.use_rhino=false

Nashorn peut être utilisé avec Java 8 dans les éléments suivants :

  • SiContrôleur
  • Éléments de test JSR223 avec le langage javascript sélectionné
  • Fonction __javascript

Jexl3 a été intégré. Il fournit de nouvelles fonctionnalités de script et une bien meilleure documentation

JEXL3 peut maintenant être utilisé grâce à une nouvelle fonction __jexl3 . JEXL est un langage très similaire à JSTL.

Interface utilisateur de requête HTTP simplifiée

Un nouvel onglet " Avancé " a été ajouté à la requête HTTP pour simplifier la configuration. La fonctionnalité de téléchargement de fichiers a été déplacée dans un onglet dédié. Cela augmente l'espace disponible pour les paramètres dans l'interface utilisateur et simplifie l'UX.

Améliorations des valeurs par défaut des requêtes HTTP

Vous pouvez maintenant configurer l'adresse source (fonctionnalité similaire à l'usurpation d'adresse IP) et " Enregistrer la réponse en tant que hachage MD5 " dans l'onglet Avancé

Améliorations des rapports

Nouvelle fonctionnalité de création de rapports générant des graphiques dynamiques dans des pages HTML (APDEX, rapport de synthèse et graphiques)

Un rapport HTML dynamique peut désormais être généré soit à la fin d'un test de charge, soit à partir d'un fichier de résultat quand vous le souhaitez. Voir Générer un tableau de bord pour plus de détails. Ce rapport fournit les statistiques suivantes :

  • Table APDEX (Application Performance Index) qui calcule l'APDEX en fonction de valeurs configurables pour les seuils tolérés et satisfaits
  • Un graphique récapitulatif des demandes indiquant le pourcentage de transactions réussies et échouées :
  • Un tableau Statistiques fournissant dans un seul tableau un récapitulatif de toutes les métriques par transaction incluant 3 centiles paramétrables :
  • Un tableau des erreurs récapitulant toutes les erreurs et leur proportion dans le total des requêtes :
  • Graphique zoomable où vous pouvez cocher/décocher chaque transaction pour l'afficher/la masquer pour :
    • Temps de réponse dans le temps :
    • Débit d'octets dans le temps :
    • Latences dans le temps :
    • Coups par seconde :
    • Codes de réponse par seconde :
    • Transactions par seconde :
    • Temps de réponse vs Requête par seconde :
    • Latence vs Requête par seconde :
    • Centiles des temps de réponse :
    • Threads actifs au fil du temps :
    • Temps vs Threads :
    • Répartition des temps de réponse :

GraphiteBackendListener a une nouvelle métrique Server Hits

Summariser affiche une durée plus lisible

Désormais, les durées sont affichées au format heures:minutes:secondes

Générer des résultats récapitulatifs + 1 en 00:00:01 = 1,7/s Moy : 1 Min : 1 Max : 1 Err : 0 (0,00 %) Actif : 1 Démarré : 1 Terminé : 0
Générer des résultats récapitulatifs + 138 à 00:00:09 = 16,2/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %) Actif : 9 Commencé : 9 Terminé : 0
Générer des résultats récapitulatifs = 139 en 00:00:09 = 15,3/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %)
Générer des résultats récapitulatifs + 467 à 00:00:10 = 47,0/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %) Actif : 19 Démarré : 19 Terminé : 0
Générer des résultats récapitulatifs = 606 à 00:00:19 = 31,9/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %)
⋮
Générer des résultats récapitulatifs + 1662 à 00:00:10 = 166,1/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %) Actif : 50 Démarré : 50 Terminé : 0
Générer des résultats récapitulatifs = 28932 en 00:03:19 = 145,4/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %)
Générer des résultats récapitulatifs + 1664 à 00:00:10 = 166,4/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %) Actif : 50 Démarré : 50 Terminé : 0
Générer des résultats récapitulatifs = 30596 en 00:03:29 = 146,4/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %)
Générer des résultats récapitulatifs + 1661 à 00:00:10 = 166,1/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %) Actif : 50 Démarré : 50 Terminé : 0
Générer des résultats récapitulatifs = 32257 en 00:03:39 = 147,3/s Moy : 0 Min : 0 Max : 1 Err : 0 (0,00 %)

BackendListener vous permet désormais de définir une liste d'échantillonneurs sous forme d'expression régulière

Vous pouvez maintenant utiliser une expression régulière pour sélectionner les échantillonneurs que vous souhaitez filtrer. Utilisez le paramètre : useRegexpForSamplersList=true et mettez une expression régulière dans le paramètre samplersList

Améliorations des protocoles et des tests de charge

La migration vers HttpClient 4.5.2 a été lancée. Bien qu'il ne soit pas complètement terminé, il améliore de nombreux domaines dans JMeter

La migration vers HttpClient 4.5.2 améliore les champs suivants de JMeter :

  • Prise en charge des RFC récentes telles que le mécanisme de gestion d'état HTTP RFC-6265 pour les cookies , vous devez maintenant utiliser HC4CookieHandler dans le composant HTTP Cookie Manager et sélectionner la politique de cookie standard
  • Prise en charge de l' indication du nom du serveur (SNI) pour l'implémentation de HttpClient4
  • Mécanisme de validation amélioré et plus performant pour les connexions obsolètes et la gestion Keep-Alive, voir les propriétés httpclient4.validate_after_inactivity et httpclient4.time_to_live
  • De nombreuses corrections de bogues depuis la version précédente 4.2.6 utilisée dans JMeter 2.13, voir les notes de version HttpClient 4.5.X
  • Meilleure prise en charge de HTTP RFC 2616 / RFC 7230 et corrections des problèmes de gestion de la compression deflate

Les téléchargements parallèles sont désormais réalistes et s'adaptent beaucoup mieux :

  • Analyse des fichiers CSS importés (via @import ) ou des ressources intégrées (arrière-plan, images, …)
  • Initialisation paresseuse du contexte SSL : pour 15 threads, 138 % d'échantillonnage en plus en 5 minutes pour les tests HTTP uniquement. Le gain augmente à mesure que le nombre de threads augmente
  • Refonte de la gestion des connexions pour le téléchargement parallèle : cela simule mieux le comportement actuel du navigateur et améliore le débit. Pour 15 Threads 135% d'échantillons supplémentaires en 5 minutes.
  • Réutilisation des threads utilisés pour les téléchargements parallèles via un pool de threads : cela améliore le débit et augmente l'évolutivité de JMeter pour de tels tests
  • Total de 750 % de débit en plus trouvé lors d'un test avec 15 threads, plus vous avez de threads, plus le gain est important
  • Vous pouvez maintenant calculer et stocker uniquement le MD5 des ressources intégrées au lieu de stocker la réponse entière, cela peut être fait en définissant la propriété httpsampler.embedded_resources_use_md5=true

Introduction de la fonctionnalité Sample Timeout

Ce nouveau pré-processeur de temporisation d'échantillon vous permet d'appliquer une temporisation sur les éléments qui sont dans sa portée. Dans la capture d'écran ci-dessous, le délai d'attente de 10 secondes s'applique aux éléments Debug Sampler et HTTP Request .

La requête JDBC utilise désormais le pool DBCP2

La requête JDBC et la configuration de la connexion JDBC ont été mises à jour pour remplacer l'ancien pool Excalibur par le pool Apache Commons DBCP2. En conséquence, les propriétés ont été migrées vers un équivalent lorsqu'elles sont disponibles et l'interface utilisateur a été mise à jour. Notez que contrairement à Excalibur, Commons DBCP utilise la requête de validation lors de la création du pool. Assurez-vous donc que la requête est valide. La requête par défaut convient à de nombreuses bases de données, mais pas à toutes - par exemple, Oracle requiert ' SELECT 1 FROM DUAL ' ou similaire.

Améliorations de l'expérience utilisateur :

Meilleur affichage dans les écrans HiDPI

Voir JMeter avec un écran HiDPI sous Linux ou Windows dans la section Trucs et astuces du manuel d'utilisation

Nouvelle apparence d'icône et logo

JMeter a un nouveau logo créé par Felix Schumacher.
Les icônes ont également été rafraîchies pour donner un style plus moderne et les rendre plus significatives

Beaucoup de corrections de petits bugs ennuyeux

Environ 40 correctifs d'interface utilisateur ont été apportés pour corriger les bugs, les comportements déroutants ou simplifier l'utilisation en ne permettant pas la sélection d'options incompatibles

Amélioration de l'interface utilisateur du groupe de threads et des actions associées ( Démarrer , Démarrer sans minuterie , Valider )

La création et le test d'un plan de test avant le test de charge ont été considérablement simplifiés en vous permettant de ne démarrer qu'une sélection de groupes de threads, de les démarrer sans appliquer de minuteries (gagnant ainsi du temps) ou de les démarrer en utilisant un nouveau mode de validation. Ce mode de validation permet de démarrer un Thread Group (sans le modifier) ​​avec 1 thread, 1 itération et sans appliquer de timers. Ce mode de validation peut être personnalisé.

Nouveaux raccourcis

  • Ajouter les éléments les plus utilisés ( Ctrl  +  0Ctrl  +  9 ), configurable via les propriétés gui.quick_ XXX
  • Raccourcis pour développer les nœuds

Améliorations de base

Simplification de la configuration avec de meilleurs paramètres par défaut

Les valeurs par défaut de nombreuses propriétés ont été modifiées pour rendre la configuration de JMeter optimale. Lisez la section "Modifications incompatibles" pour plus de détails.

Apache Groovy fourni avec JMeter

Apache Groovy , le langage de script JVM bien connu, est désormais fourni avec Apache JMeter dans le dossier lib. Cela vous permet de l'utiliser immédiatement via JSR223 Elements en sélectionnant le langage Groovy.

Propriétés superflues et anciennes supprimées

Les anciennes propriétés qui existaient pour maintenir la rétrocompatibilité ou pour offrir une personnalisation superflue ont été supprimées. Lisez la section "Modifications incompatibles" pour voir quelles propriétés ont été supprimées.

Améliorations du code et de la documentation

  • Migration vers le code source Java7 et utilisation de son sucre syntaxique
  • Principaux nettoyages de code
  • Revue complète de la documentation et amélioration tant du contenu que de la présentation

Améliorations des tests unitaires

  • Migration de nombreux tests vers JUnit 4
  • Meilleure gestion des tests Headless
  • Plus de tests unitaires

Actualisation des dépendances

Bibliothèques obsolètes supprimées ou remplacées par des bibliothèques à jour :

  • Excalibur remplacé par commons-dbcp
  • htmllexer, htmlparser supprimé
  • savon retiré
  • jdom supprimé

Slf4j peut maintenant être utilisé dans les plugins et le code de base

Vous pouvez désormais utiliser le wrapper de journalisation SLF4J dans vos plugins personnalisés ou vos sous-classes org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient .

Modifications incompatibles

  • Depuis la version 3.0, Groovy-2.4.6 est fourni avec JMeter ( dossier lib ), assurez-vous de supprimer l'ancienne version ou les versions référencées via les propriétés search_paths ou user.classpath
  • Depuis la version 3.0, la valeur de la propriété jmeter.save.saveservice.assertion_results_failure_message est true, ce qui signifie que le fichier CSV pour les résultats contiendra une colonne supplémentaire contenant le message de réponse au résultat de l'assertion, voir le bogue 58978
  • Depuis la version 3.0, la valeur de la propriété jmeter.save.saveservice.print_field_names est true, ce qui signifie que le fichier CSV pour les résultats contiendra les noms de champs en première ligne dans CSV, voir le bogue 58991
  • Depuis la version 3.0, la valeur de la propriété jmeter.save.saveservice.idle_time est true, ce qui signifie que les fichiers de résultats CSV/XML contiendront une colonne supplémentaire contenant le temps d'inactivité entre les échantillonneurs, voir le bogue 57182
  • Dans la classe RandomTimer, le champ de minuterie d'instance protégée a été remplacé par la méthode protégée getTimer() , ceci est lié au bogue 58100 . Cela peut avoir un impact sur les plugins tiers.
  • Depuis la version 3.0, vous pouvez utiliser Nashorn Engine (le moteur javascript par défaut est Rhino) sous Java8 pour les éléments qui utilisent Javascript Engine ( __javaScript , IfController ). Si vous voulez l'utiliser, utilisez la propriété javascript.use_rhino=false , voir Bug 58406 .
    Remarque : dans une future version, nous passerons par défaut à Nashorn. Les utilisateurs sont encouragés à signaler tout problème lié à l'utilisation de Nashorn au lieu de Rhino.
  • Depuis la version 3.0, JMS Publisher rechargera le contenu du fichier si la source du message est " From File " et que le champ " Filename " change (par exemple s'il utilise une variable qui a changé)
  • org.apache.jmeter.gui.util.ButtonPanel a été supprimé, si vous l'utilisez dans votre plugin tiers ou votre développement personnalisé, assurez-vous de mettre à jour votre code. Voir bogue 58687
  • La propriété jmeterthread.startearlier a été supprimée. Voir bogue 58726
  • La propriété jmeterengine.startlistenerslater a été supprimée. Voir bogue 58728
  • La propriété jmeterthread.reversePostProcessors a été supprimée. Voir bogue 58728
  • La propriété jmeter.toolbar.display a été supprimée, la barre d'outils est désormais toujours affichée. Voir bogue 59236
  • La propriété jmeter.errorscounter.display a été supprimée, le compteur d'erreurs/avertissements est désormais toujours affiché. Voir bogue 59236
  • La propriété xml.parser a été supprimée, elle n'est plus utilisée car org.apache.jmeter.util.JMeterUtils#getXMLParser est obsolète et n'est plus utilisée. Voir bogue 59236
  • L'écouteur Summariser affiche maintenant la durée au format HH:mm:ss (Heure:Minute:Seconde), il affichait auparavant la durée en secondes. Voir bogue 58776
  • La signature org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap a changé, si vous l'utilisez, assurez-vous de mettre à jour votre code. Voir bogue 58845
  • L'abonné JMS considérera un échantillon comme une erreur si le nombre de messages reçus n'est pas égal au nombre de messages attendus. Il considérait auparavant un échantillon OK si au moins 1 message était reçu. Voir bogue 58980
  • Depuis la version 3.0, l'enregistreur de script de test HTTP(S) utilise par défaut le port 8888 (tel que configuré lors de l'utilisation du modèle d'enregistrement). Voir bogue 59006
  • Depuis la version 3.0, l'analyseur de ressources embarquées (remplacé depuis la version 2.10 par l'implémentation basée sur Lagarto) qui s'appuyait sur la bibliothèque htmlparser (HtmlParserHTMLParser) a été supprimé ainsi que ses dépendances.
  • Depuis la version 3.0, la prise en charge de la lecture des anciens fichiers JTL (résultats) au format Avalon a été supprimée, voir le bogue 59064
  • Depuis la version 3.0, la valeur par défaut de la propriété pour http.java.sampler.retries a été changée en 0 (pas de nouvelle tentative par défaut) pour l'aligner avec le comportement de HttpClient4.
    Notez également que sa signification a changé : avant la version 3.0, http.java.sampler.retries=1 signifiait No Retry (c'est-à-dire nombre total d'essais = 1), depuis la version 3.0 http.java.sampler.retries=1 signifie 1 nouvelle tentative. (Remarque : cela ne s'applique qu'à Java HTTP Sampler)
    Voir bogue 59103
  • Depuis la version 3.0, les classes obsolètes suivantes ont été abandonnées
    • 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 a été remplacé par httpsampler.parallel_download_thread_keepalive_inseconds qui est maintenant le temps de maintien pour les threads de téléchargement parallèles (en secondes).
  • La requête JDBC a été mise à jour pour utiliser commons-dbcp2, depuis lors, le comportement est légèrement différent, assurez-vous d'avoir une "requête de validation" correcte pour votre base de données. Voir bogue 58786
  • Les pots suivants ont été supprimés :
  • Le nombre maximum de redirections autorisées par JMeter est maintenant de 20, il était auparavant de 5. Cela peut être modifié avec la propriété httpsampler.max_redirects . Voir bogue 59382

Éléments obsolètes et supprimés

  • Les éléments MongoDB (MongoDB Source Config, MongoDB Script) sont obsolètes et seront supprimés dans la prochaine version de JMeter. Ils n'apparaissent plus dans le menu, si vous en avez besoin modifiez la propriété not_in_menu . L'équipe JMeter conseille de ne plus les utiliser. Voir bogue 58772
  • La requête WebService (SOAP) et le masque de paramètre HTML qui étaient obsolètes dans la version 2.13, ont maintenant été supprimés conformément à notre stratégie d'obsolescence . Les classes et propriétés qui n'étaient utilisées que par ces éléments ont été supprimées :
    • org.apache.jmeter.protocol.http.util.DOMPool
    • org.apache.jmeter.protocol.http.util.WSDLException
    • org.apache.jmeter.protocol.http.util.WSDLHelper
    • Propriété soap.document_cache
    • JAR soap-2.3.1 a également été supprimé
  • La fonction __jexl (c'est-à-dire JEXL 1) est obsolète et sera supprimée dans la prochaine version. Voir bogue 58903
  • Les écouteurs Spline Visualizer et Distribution Graph sont obsolètes et seront supprimés dans la prochaine version de JMeter. Ils n'apparaissent plus dans le menu, si vous en avez besoin modifiez la propriété not_in_menu . L'équipe JMeter conseille de ne plus les utiliser. Voir bogue 58791

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 57696 - Requête HTTP : améliore le message de réponse lorsque le téléchargement de la ressource échoue. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57995 - Utiliser FileServer pour les fichiers de requête HTTP. Mis en œuvre par Andrey Pokhilko (andrey sur blazemeter.com) et contribué par BlazeMeter Ltd.
  • Bogue 58843 - Amélioration de l'espace utilisable dans l'interface graphique de l'échantillonneur HTTP. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58852 - Utilise moins de mémoire pour les requêtes PUT . Les données téléchargées ne seront plus stockées dans l'échantillonneur. C'est le même comportement qu'avec les requêtes POST .
  • Bug 58860 - Requête HTTP : Ajout de la génération automatique de variables dans le tableau des paramètres HTTP par clic droit. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58923 - normalise les URI lors du téléchargement de ressources intégrées.
  • Bug 59005 - HTTP Sampler : Ajout du verbe WebDAV ( SEARCH ).
  • Bogue 59006 - Modifiez le port d'enregistrement proxy par défaut sur 8888 pour l'aligner sur le modèle d'enregistrement. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bogue 58099 - Performances : initialiser paresseusement le contexte SSL HttpClient pour éviter son initialisation même pour les scénarios HTTP uniquement
  • Bogue 57577 - HttpSampler : Récupérez toutes les ressources intégrées, ajoutez la propriété " httpsampler.embedded_resources_use_md5 " pour calculer uniquement md5 et ne pas conserver les données de réponse. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59023 - Interface utilisateur HttpSampler : retravaillez les étiquettes des ressources intégrées et modifiez le nombre par défaut de téléchargements parallèles à 6 . Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59028 - Utiliser le singleton SystemDefaultDnsResolver . Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59036 - FormCharSetFinder : Utiliser JSoup au lieu de HTMLParser obsolète
  • Bug 59034 - La gestion de la connexion des téléchargements parallèles n'est pas réaliste. Contribution de Benoit Wiart (benoit point wiart sur gmail.com) et Philippe Mouawad
  • Bogue 59060 - Interface graphique de requête HTTP : déplacez le téléchargement de fichier vers un nouvel onglet pour avoir plus d'espace pour les paramètres et éviter une configuration incompatible. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59103 - Implémentation Java de la requête HTTP : modifiez la valeur par défaut " http.java.sampler.retries " pour l'aligner sur le comportement HttpClient et rendre le nom significatif
  • Bogue 59083 - Requête HTTP : Rendre le champ Méthode modifiable afin que des méthodes supplémentaires (WebDAV) puissent être ajoutées facilement
  • Bogue 59118 - Ajout d'un commentaire dans le temps de réflexion enregistré par l'enregistreur proxy. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bug 59116 - Ajout de la possibilité de configurer un préfixe au nom de l'échantillonneur enregistré par proxy. Partiellement basé sur un patch d'Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bug 59129 - Requête HTTP : Simplifier l'interface graphique avec des onglets simples/avancés
  • Bogue 59033 - Téléchargement parallèle : modification de la hiérarchie des classes d'analyseurs pour autoriser les analyseurs de plug-ins pour différents types MIME
  • Bug 52073 - Ressources embarquées Téléchargement parallèle : Améliore les performances en évitant l'arrêt de ThreadPoolExecutor à chaque sample. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59190 - Enregistreur de script de test HTTP(S) : les exclusions suggérées doivent ignorer la casse. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bug 59140 - Téléchargement parallèle : Ajout de l'analyse CSS pour extraire les liens des fichiers CSS
  • Bogue 59249 - Paramètres par défaut des requêtes HTTP : ajouter " Adresse source " et " Enregistrer les réponses en tant que MD5 "
  • Bogue 59382 - Valeur par défaut plus réaliste pour httpsampler.max_redirects

Autres échantillonneurs

  • Bogue 57928 - Ajout de la possibilité de définir le protocole (http/https) à l'interface graphique d'AccessLogSampler. Contribution de Jérémie Lesage (jeremie.lesage à jeci.fr)
  • Bogue 58300 - Faire en sorte que les échantillonneurs Java existants implémentent Interruptible
  • Bug 58160 - JMS Publisher : recharge le contenu du fichier si le nom du fichier change. Basé en partie sur un patch fourni par Maxime Chassagneux (maxime.chassagneux sur gmail.com)
  • Bug 58786 - Échantillonneur JDBC : Remplacer Excalibur DataSource par une bibliothèque plus à jour commons-dbcp2
  • Bogue 59205 - Échantillonneur TCP : définissez l'heure de connexion dans l'échantillonneur lorsque la connexion est établie.
  • Bogue 59381 - JMSPublisher : le filtre FileChooserDialog ne fonctionne pas pour les boutons du navigateur. Basé en partie sur un patch fourni par Antonio Gomes Rodrigues (ra0077 sur gmail.com)

Contrôleurs

  • Bogue 58406 - IfController : autorise l'utilisation du moteur Nashorn si disponible pour l'évaluation JavaScript
  • Bug 58281 - RandomOrderController : améliore les performances de l'algorithme de randomisation. Contribution de Graham Russell (jmeter sur ham1.co.uk)
  • Bug 58675 - Contrôleur de module : le message d'erreur peut facilement passer inaperçu. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58673 - Contrôleur de module : lorsque l'élément cible est désactivé, les icônes jtree par défaut sont affichées. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58674 - Contrôleur de module : il ne devrait pas être possible de sélectionner plus d'un nœud dans l'arborescence. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58680 - Module Controller : amélioration de l'interface utilisateur. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58989 - Record controller gui : ajout d'un bouton pour effacer tous les samples enregistrés. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)

Les auditeurs

  • Bogue 58041 - Tree View Listener doit afficher un exemple de type de données
  • Bogue 58122 - GraphiteBackendListener : Ajout d'une métrique d'accès au serveur. En partie basé sur un patch d'Amol Moye (amol.moye sur thomsonreuters.com)
  • Bug 58681 - GraphiteBackendListener : n'envoie pas de données si aucun échantillonnage n'a eu lieu
  • Bug 58776 - Le résumé devrait afficher une durée plus lisible
  • Bogue 58791 - Écouteurs obsolètes : graphique de distribution (alpha) et visualiseur de splines
  • Bug 58849 - Afficher l'arborescence des résultats : ajoutez un panneau de recherche à la vue http de la requête pour pouvoir effectuer une recherche dans le tableau des paramètres. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58857 - View Results Tree : la requête view http ne permet pas de redimensionner la première colonne du tableau des paramètres. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58955 - Request view http n'affiche pas correctement les paramètres http dans multipart/form-data. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 55597 - Afficher l'arborescence des résultats : ajouter une fonction de recherche pour rechercher dans les échantillonneurs enregistrés
  • Bogue 59102 - Afficher l'arborescence des résultats : meilleure valeur par défaut pour " view.results.tree.max_size "
  • Bug 59099 - Auditeur backend : Ajout de la possibilité de considérer samplersList comme une expression régulière. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bug 59424 - Visualizer : Ajout de "Effacer" dans le menu contextuel

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 58303 - Modifiez l'utilisation de l'API bouncycastle dans SMIMEAssertion pour supprimer les avertissements de dépréciation.
  • Bogue 58515 - Nouveaux composants liés à JSON : JSON-PATH Extractor et JSON-PATH Renderer dans View Results Tree. Offert par Ubik Load Pack (assistance sur ubikloadpack.com).
  • Bogue 58698 - Analyse correcte des fichiers d'authentification dans HTTP Authorization Manager.
  • Bogue 58756 - CookieManager : le contenu de la boîte de sélection de la politique relative aux cookies doit dépendre de l'implémentation des cookies.
  • Bogue 56358 - Le gestionnaire de cookies prend en charge les cookies inter-ports et RFC6265. Merci à Oleg Kalnichevski (olegk sur apache.org)
  • Bogue 58773 - TestCacheManager : Ajout de tests pour CacheManager qui utilisent HttpClient 4
  • Bogue 58742 - CompareAssertion : réinitialise les données dans TableEditor lors du basculement entre différentes CompareAssertions dans l'interface graphique. Basé sur un patch de Vincent Herilier (vherilier sur gmail.com)
  • Bogue 59108 - TableEditor : Autoriser le déplacement des lignes vers le haut et vers le bas. Contribution de Vincent Herilier (vherilier sur gmail.com)
  • Bug 58848 - Argument Panel : lors de l'ajout d'un argument (bouton d'ajout ou depuis le presse-papiers) faites défiler le tableau jusqu'à la nouvelle ligne. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58865 - Autoriser une valeur par défaut vide dans l'extracteur d'expressions régulières. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 59156 - XMLAssertion : supprimer la dépendance jdom en utilisant XMLReader
  • Bogue 59328 - Meilleure info-bulle pour les noms de variables dans CSVDataSet. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)

Les fonctions

  • Bug 58477 - Fonction __javaScript : Autoriser l'utilisation du moteur Nashorn pour Java8 et les versions ultérieures
  • Bogue 58903 - Fournir la fonction __jexl3 qui utilise commons-jexl3 et la fonction obsolète __jexl (1.1)

I18N

Général

  • Bogue 58736 - Ajout de la prise en charge du délai d'expiration de l'échantillon
  • Bogue 57913 - Sauvegardes automatiques des derniers fichiers JMX enregistrés. Contribution de Benoit Vatan (benoit.vatan sur gmail.com)
  • Bug 57988 - Raccourcis ( Ctrl  +  1Ctrl  +  9 ) pour ajouter rapidement des éléments dans le plan de test. Mis en œuvre par Andrey Pokhilko (andrey sur blazemeter.com) et contribué par BlazeMeter Ltd.
  • Bug 58100 - Améliorations des performances : Remplacez Random par ThreadLocalRandom.
  • Bogue 58677 - TestSaveService#testLoadAndSave utilise le mauvais ensemble de fichiers. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58689 - Ajout de raccourcis pour développer/réduire une partie de l'arborescence. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58696 - Créer une tâche Ant pour configurer le projet Eclipse
  • Bogue 58653 - Nouveau tableau de bord/rapport JMeter avec des graphiques dynamiques, des tableaux pour aider à analyser les résultats des tests de charge. Développé par Ubik-Ingenierie et contribué par Decathlon SA et Ubik-Ingenierie / UbikLoadPack
  • Bogue 58699 - Les modifications apportées au Workbench ne sont ni enregistrées ni invitées à être enregistrées à la fermeture. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58728 - Suppression des anciennes propriétés comportementales
  • Bogue 57319 - Mise à niveau vers HttpClient 4.5.2. Avec la grande aide d'Oleg Kalnichevski (olegk sur apache.org) et Gary Gregory (ggregory sur apache.org).
  • Bogue 58772 - Éléments liés à MongoDB obsolètes
  • Bug 58782 - ThreadGroup : Amélioration de l'ergonomie
  • Bug 58165 - Affiche le temps écoulé depuis le début du test de charge en mode GUI. En partie basé sur une contribution de Maxime Chassagneux (maxime.chassagneux sur gmail.com)
  • Bogue 58814 - JVM ne reconnaît plus l'option MaxLiveObjectEvacuationRatio ; supprimer des commentaires
  • Bogue 58810 - Compteur d'éléments de configuration (et autres) : cases à cocher pour basculer la zone trop grande
  • Bug 56554 - Élément de test JSR223 : génère automatiquement la clé de cache de compilation. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58911 - Header Manager : il devrait être possible de copier/coller entre les Header Managers. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58864 - Panneau Arguments : lors du déplacement d'un paramètre avec haut/bas, s'assurer que la sélection reste visible. Basé sur une contribution de Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58968 - Ajout d'un nouveau modèle pour permettre d'enregistrer un script avec temps de réflexion inclus. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bug 58978 - Paramètres par défaut : bascule " jmeter.save.saveservice.assertion_results_failure_message " sur true (après 2.13)
  • Bug 58991 - Paramètres par défaut : passe " jmeter.save.saveservice.print_field_names " à vrai (après 2.13)
  • Bug 57182 - Paramètres par défaut : passe " jmeter.save.saveservice.idle_time " à vrai (après 2.13)
  • Bogue 58870 - TableEditor : la taille minimale est trop petite. Contribution de Vincent Herilier (vherilier sur gmail.com)
  • Bogue 58933 - JSyntaxTextArea : possibilité de définir la police. Contribué par Denis Kirpicenkov (denis.kirpichenkov sur gmail.com)
  • Bogue 58793 - Créer une page de développeurs expliquant comment créer et contribuer
  • Bogue 59046 - Le contrôleur JMeter Gui Replace doit conserver le nom et la sélection. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59038 - Éléments liés à HTTPClient 3.1 obsolètes
  • Bogue 59094 - Suppression de la prise en charge de l'ancien format de fichier JMX
  • Bogue 59082 - Supprimez le paramètre " TestCompiler.useStaticSet ". Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59093 - Le message d'erreur d'analyse d'option peut être ' perdu '
  • Bogue 58715 - Demande de fonctionnalité : regrouper groovy-all avec JMeter
  • Bogue 58426 - Amélioration de l'affichage de JMeter sur les appareils haute résolution (HiDPI) (partie 1 de l'amélioration)
  • Bug 59105 - TableEditor : Ajout de la possibilité de coller des lignes à partir du presse-papiers et de supprimer la sélection multiple. Contribution de Vincent Herilier (vherilier sur gmail.com)
  • Bug 59197 - Groupe de threads : il devrait être possible de n'exécuter qu'un seul groupe de threads ou une sélection de groupes de threads avec un menu contextuel. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59207 - Modifiez la couleur de la police de errorsOrFatalsLabel en rouge lorsqu'une erreur se produit. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bogue 58941 - Créer un nouveau Starter qui exécute des groupes de threads en mode validation ( 1 thread uniquement, 1 itération, pas de pause, tous personnalisables)
  • Bogue 59236 - Propriétés JMeter : faire un peu de nettoyage
  • Bogue 59240 - Introduire un adaptateur slf4j pour Logkit (cela permet d'utiliser slf4j dans les plugins et le code principal)
  • Bogue 59153 - Arrête le test si CSVDataSet accède à un fichier inexistant. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bogue 59320 - Meilleure info-bulle dans l'interface graphique avec GenericTestBeanCustomizer (configuration de l'ensemble de données CSV, configuration de la connexion JDBC, configuration du magasin de clés, …) . Basé sur un patch d'Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bogue 59171 - Exemple de résultat de la boîte de dialogue SaveConfig est généré dans un ordre aléatoire
  • Bogue 59425 - Erreur d'affichage concernant la page d'aide manquante dans le volet d'aide

Changements non fonctionnels

  • Mise à jour vers httpclient, httpmime 4.5.2 (à partir de 4.2.6)
  • Mise à jour vers tika-core et tika-parsers 1.12 (à partir de 1.7)
  • Mise à jour vers commons-math3 3.6.1 (à partir de 3.4.1)
  • Mise à jour vers commons-pool2 2.4.2 (à partir de 2.3)
  • Mise à jour vers commons-lang 3.4 (à partir de 3.3.2)
  • Mise à jour vers rhino-1.7.7.1 (à partir de 1.7R5)
  • Mise à jour vers jodd-3.6.7.jar (à partir de 3.6.4)
  • Mise à jour vers jsoup-1.8.3 (à partir de 1.8.1)
  • Mise à jour vers rsyntaxtextarea-2.5.8 (à partir de 2.5.6)
  • Mise à jour vers slf4j-1.7.12 (à partir de 1.7.10)
  • Mise à jour vers xmlgraphics-commons-2.0.1 (à partir de 1.5)
  • Mise à jour vers commons-collections-3.2.2 (à partir de 3.2.1)
  • Mise à jour vers commons-net 3.4 (à partir de 3.3)
  • Mise à jour vers slf4j 1.7.13 (à partir de 1.7.12)
  • Bogue 57981 - Nécessite un minimum de Java 7. Partiellement contribué par Graham Russell (jmeter sur ham1.co.uk)
  • Bogue 58684 - JMeterColor n'a pas besoin d'étendre java.awt.Color . Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58687 - ButtonPanel devrait mourir. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58705 - Rendre org.apache.jmeter.testelement.property.MultiProperty itérable. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58729 - Nettoyer le dossier des extras pour la maintenabilité
  • Bogue 57110 - Correction de l'orthographe et de la grammaire, du formatage, suppression du code commenté, etc. Contribution de Graham Russell (jmeter sur ham1.co.uk)
  • Instructions correctes sur l'exécution de JMeter dans help.txt . Contribution de Pascal Schumacher (pascalschumacher sur gmx.net)
  • Bogue 58704 - Test de non-régression : le test par lots de la tâche Ant échoue si les tests et l'exécution se font dans des paramètres régionaux autres que en_EN et utilisent un fichier JMX qui utilise un ensemble de données CSV
  • Bogue 58897 - Amélioration du code de test JUnit. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58949 - Nettoyage du code LDAP. Basé sur un patch de Benoit Wiart (benoit dot wiart sur gmail.com)
  • Bogue 58897 - Amélioration du code de test JUnit. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58967 - Utilisez les catégories JUnit pour exclure les tests nécessitant une interface graphique. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59003 - ClutilTestCase testSingleArg8 et testSingleArg9 sont identiques
  • Bogue 59064 - Suppression de OldSaveService qui prenait en charge les très anciens fichiers JTL (résultats) au format Avalon
  • Bogue 59165 - RSyntaxTextArea non compatible avec les tests sans tête
  • Bogue 59021 - Utiliser Double#compare au lieu de le réimplémenter dans NumberProperty#compareTo
  • Bogue 59037 - Suppression de HtmlParserHTMLParser et des dépendances sur htmlparser et htmllexer
  • Bogue 58465 - Le champ de réponse JMS Read est mal nommé et mal documenté
  • Bogue 58601 - Vérification des modifications pour la modification de saveservice.properties de l' ID de révision SVN à la somme sha1 du fichier lui-même.
  • Bogue 58726 - Supprimez le paramètre jmeterthread.startearlier . Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58784 - Rendre configurable l'invocation awt sync/async de JMeterUtils#runSafe et modifier les visualiseurs pour utiliser la version asynchrone.
  • Bogue 58790 - Problème dans CheckDirty et sa relation avec ActionRouter
  • Bogue 59095 - Suppression de UserParameterXMLParser qui était obsolète il y a huit ans. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59262 - Ajout d'une liste de fichiers jar binaires à LICENSE ; l'utiliser pour les tests unitaires
  • Bug 59353 - Ajout des "Éléments obsolètes et supprimés" dans la partie "Modifications incompatibles" dans changes.xml. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 57806 - Le type mime « audio/x-mpegurl » est considéré à tort comme binaire par ViewResultsTree. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com).
  • Bogue 57858 - N'appelez pas sampleEnd deux fois dans HTTPHC4Impl lorsqu'une RuntimeException ou une IOException se produit dans l'exemple de méthode.
  • Bogue 57921 - HTTP/1.1 sans en-tête de réponse keep-alive " Connection " n'utilise plus le keep-alive infini.
  • Bogue 57956 - La référence hc.parameters dans jmeter.properties ne fonctionne pas lorsque JMeter n'est pas démarré dans bin .
  • Bogue 58137 - JMeter ne parvient pas à télécharger les URL intégrées contenant des caractères illégaux dans l'URL (il ne les échappe pas).
  • Bogue 58201 - Rendre l'utilisation du port dans l'en-tête de l'hôte plus cohérente entre les différents échantillonneurs http.
  • Bogue 58453 - Enregistreur de script de test HTTP : NullPointerException lors de la désactivation de la capture des en-têtes HTTP
  • Bogue 57804 - La requête HTTP ne réutilise pas le contexte SSL mis en cache lors de l'utilisation de certificats client dans HTTPS (résolu uniquement pour l'implémentation HttpClient4)
  • Bogue 58800 - valeur par défaut de proxy.pause : correction de la documentation
  • Bug 58844 - Les boutons activer/désactiver sont cassés dans le panneau des arguments. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58861 - Lorsque vous cliquez sur haut, bas ou détail dans une cellule du panneau d'arguments, le contenu nouvellement ajouté est perdu. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 57935 - L'extension SSL SNI n'est pas prise en charge par HttpClient 4.2.6
  • Bogue 59044 - Échantillonneur HTTP : il ne devrait pas être possible de sélectionner l'encodage multipart si la méthode n'est pas POST . Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59008 - Http Sampler : récursivité infinie SampleResult sur la limite de profondeur de trame atteinte
  • Bogue 58881 - Requête HTTP : HTTPHC4Impl affiche une exception lorsque le serveur utilise la compression " deflate "
  • Bogue 58583 - Le client HTTP ne parvient pas à fermer la connexion si le serveur se comporte mal en n'envoyant pas " connection: close ", violant HTTP RFC 2616 / RFC 7230
  • Bogue 58950 - NoHttpResponseException lorsque la pause entre les échantillonneurs dépasse le keepalive envoyé par le serveur
  • Bug 59085 - Panneau de fichiers HTTP : données perdues lors de l'annulation de la navigation. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 56141 - L'application ne se comporte pas correctement lors de l'utilisation de HTTP Recorder. Avec l'aide de Dan (java.junkee sur yahoo.com)
  • Bogue 59079 - La propriété " httpsampler.max_redirects " n'est pas appliquée lorsque " Rediriger automatiquement " est utilisé
  • Bogue 58811 - Lors du collage d'arguments entre des échantillonneurs http, les colonnes "Encode" et "Include Equals" sont perdues. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)

Autres échantillonneurs

  • Bogue 58013 - Activez tous les protocoles qui sont activés sur le SSLContext par défaut pour une utilisation avec l'échantillonneur SMTP.
  • Bogue 58209 - JMeter se bloque lors du test de javasampler car HashMap.put() est appelé à partir de plusieurs threads sans synchronisation.
  • Bogue 58301 - Utilisez des méthodes typées telles que setInt , setDouble , setDate , … pour l'instruction préparée #27
  • Bogue 58851 - Ajout d'une dépendance sur hamcrest-core pour permettre aux tests JUnit avec des annotations de fonctionner
  • Bogue 58947 - La métrique de connexion est erronée lorsque ConnectException se produit
  • Bogue 58980 - L'abonné JMS renverra un message réussi tant qu'un message est reçu. Contribution de Harrison Termotto (harrison dot termotto sur stonybrook.edu)
  • Bogue 59075 - Éditeur JMS : l'exception NumberFormatException est levée si le champ de priorité ou d'expiration est vide
  • Bogue 59345 - Fuite de connexion SMTPSampler. Basé sur un patch de Luca Maragnani (luca point maragnani sur gmail point com)

Contrôleurs

  • Bogue 58600 - Afficher les noms de fichiers corrects lorsqu'ils sont recherchés par IncludeController
  • Bug 58678 - Module Controller : limite la sélection de l'élément cible. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 58714 - Contrôleur de module : il ne devrait pas être possible d'ajouter une minuterie en tant qu'enfant. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59067 - JMeter ne parvient pas à itérer sur les contrôleurs qui sont des enfants d'un TransactionController ayant " Générer un échantillon parent " coché après qu'une erreur d'assertion se soit produite sur un groupe de threads avec " Démarrer la boucle de thread suivante ". Contribué par Benoit Wiart(benoit point wiart sur gmail.com)
  • Bogue 59076 - Le test doit échouer si un contrôleur de module ne trouve pas son sous-arbre de remplacement

Les auditeurs

  • Bogue 58033 - SampleResultConverter doit noter qu'il ne peut pas enregistrer de données non TEXT
  • Bogue 58845 - La vue http de la requête n'affiche pas tous les paramètres. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58413 - ViewResultsTree : Request HTTP Renderer n'affiche pas correctement les paramètres qui contiennent une esperluette (&). Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 59172 - SampleResult SaveConfig n'autorise pas la désactivation de certains champs
  • Bug 58329 - Graphique des temps de réponse et graphique agrégé : l'enregistrement du graphique dans un fichier ne prend pas en compte les paramètres modifiés depuis le dernier clic sur le graphique. Contribution de David Coppens (dlcoppens sur gmail.com)

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 58079 - Ne mettez pas en cache les échantillons HTTP qui ont un en-tête Vary lors de l'utilisation d'un HTTP CacheManager.
  • Bogue 58912 - Interface graphique d'assertion de réponse : la suppression de plusieurs lignes sélectionnées supprime une seule ligne. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)

Les fonctions

  • Bogue 57825 - La fonction __Random échoue si la valeur min est égale à la valeur max (régression liée au bogue 54453 )

I18N

Général

  • Bogue 54826 - N'échoue pas sur les chaînes longues dans les réponses JSON lors de leur affichage en tant que JSON dans Afficher l'arborescence des résultats.
  • Bogue 57734 - Les dépendances transitoires Maven sont incorrectes pour 2.13 (identifiants de groupe fixes pour Commons Pool et Math)
  • Bogue 57731 - TESTSTART.MS a toujours la valeur du premier test démarré en mode serveur dans les tests distribués NON GUI
  • Bogue 58016 - Conversion de type d'erreur à l'aide du fournisseur SSL externe. Contribué par Kirill Yankov (myworkpostbox sur gmail.com)
  • Bogue 58293 - Le navigateur de fichiers SOAP/XML-RPC Sampler génère NullPointerException
  • Bug 58685 - JDatefield : Fait fonctionner la modification de la date avec les flèches haut/bas. Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bogue 58693 - Correction "Impossible d'imbriquer le dossier de sortie 'jmeter/build/components' dans le dossier de sortie 'jmeter/build'" lors de la configuration d'eclipse
  • Bogue 58781 - L'option de ligne de commande " - ? " affiche l'option Inconnu
  • Bug 57821 - L'option de ligne de commande " -X --remoteexit " ne fonctionne plus depuis la 2.13 (régression liée au Bug 57500 )
  • Bogue 58795 - NPE peut se produire dans GuiPackage #getTestElementCheckSum avec certains plugins tiers
  • Bug 58913 - Lors de la fermeture de JMeter, l'annulation ne doit pas être interprétée comme " détruire mon plan de test ". Contribué par Benoit Wiart (benoit point wiart sur gmail.com)
  • Bug 59096 - Fonctionnalité de recherche : la recherche insensible à la casse n'est pas vraiment insensible à la casse
  • Bogue 59193 - ant run_gui échoue avec ClassNotFoundException ou IllegalAccessError lors de l'accès aux classes à partir de dépendances non chargées via Thread.currentThread().getContextClassLoader()
  • Bug 59225 - Mauvais affichage de l'icône de l'indicateur de fonctionnement. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Bogue 56927 - Désactiver le changement de langue pendant un test
  • Bug 59391 - En mode distribué, le client se ferme anormalement à la fin du test
  • Bogue 59397 - build.xml ne rend pas dist.executables exécutable sur les systèmes Unix

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

  • Pack de chargement Ubik
  • Benoît Vatan (benoit.vatan sur gmail.com)
  • Jérémie Lesage (jeremie.lesage at jeci.fr)
  • Kirill Yankov (myworkpostbox sur gmail.com)
  • Amol Moye (amol.moye sur thomsonreuters.com)
  • Samoht-fr (https://github.com/Samoht-fr)
  • Graham Russell (jmeter sur ham1.co.uk)
  • Maxime Chassagneux (maxime.chassagneux sur gmail.com)
  • Benoît Wiart (benoit.wiart sur gmail.com)
  • Décathlon SA
  • Ubik-Ingénierie SAS
  • Oleg Kalnichevski (olegk sur apache.org)
  • Pascal Schumacher (pascalschumacher sur gmx.net)
  • Vincent Herilier (vherilier à gmail.com)
  • Florent Sabbe (f dot sabbe chez ubik-ingenierie.com)
  • Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • Harrison Termotto (harrison point termotto sur stonybrook.edu
  • Denis Kirpicenkov (denis.kirpicenkov sur gmail.com)
  • Gary Gregory (gregory sur apache.org)
  • David Coppens (dlcoppens sur gmail.com)
  • Luca Maragnani (luca point maragnani sur gmail point com)
  • Philip Helger (http://www.helger.com) pour son CSS Parser et pour la prise en compte très rapide de nos rapports de bugs
  • Irek Pastusiak (le.testeur.automatique sur gmail.com)

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :

  • purnasatyap sur gmail point com pour les tests et les rapports sur la construction nocturne
  • Sergey Batalin (sergey_batalin at mail dot ru) pour les tests et rapports sur nightly build
  • Vincent Daburon (vdaburon sur gmail point com) pour les tests et rapports sur nightly build

Toutes nos excuses si nous avons omis quelqu'un d'autre.

Problèmes connus et solutions de contournement

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :
    [java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
     java.util.prefs.BackingStoreException :
     java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
    
    Cela n'affecte pas le fonctionnement de JMeter. Ce problème est résolu depuis Java 7b05.
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Avec Oracle Java 7 et Mac Book Pro Retina Display, l'interface graphique JMeter peut sembler floue. Il s'agit d'un bogue Java connu, voir Bug JDK-8000629 . Une solution de contournement consiste à utiliser un environnement d'exécution Java 7 mise à jour 40 qui résout ce problème.
  • Vous pouvez rencontrer l'erreur suivante :
    java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme
    si vous exécutez une requête HTTPS sur un site Web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption) ou avec un certificat SSL d'une taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 7 version u16 (MD2) et version u40 (taille du certificat inférieure à 1024 bits), ainsi que Java 8.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.
  • Sous Mac OSX, Aggregate Graph affichera des valeurs erronées en raison de l'effet miroir sur les nombres. Cela est dû à un bogue Java connu, voir le bogue JDK-8065373. Le correctif consiste à utiliser JDK7_u79, JDK8_u45 ou une version ultérieure.
  • Afficher l'arborescence des résultats peut ne pas afficher certains codes HTML sous le moteur de rendu HTML, voir le bogue 54586 . Cela est dû à un bogue Java connu qui ne parvient pas à analyser les unités " px " dans les attributs row/col. Voir le bogue JDK-8031109. Le correctif consiste à utiliser JDK9 b65 ou une version ultérieure.
  • La sélection de JTable au clavier ( SHIFT  +  haut/bas ) est totalement inutilisable avec JAVA 7 sur Mac OSX. Cela est dû à un bogue Java connu JDK-8025126 Le correctif consiste à utiliser JDK 8 b132 ou une version ultérieure.

Version 2.13

Sommaire

Nouveau et remarquable

Nouveaux éléments

Nouveau Async BackendListener avec implémentation de Graphite

Un nouveau Async BackendListener a été ajouté pour permettre l'envoi de données de résultat à un écouteur principal. JMeter est livré avec un GraphiteBackendListenerClient qui permet d'envoyer des résultats à un serveur Graphite à l'aide des protocoles Pickle ou Plaintext. Vous pouvez implémenter votre propre backend en étendant AbstractBackendListenerClient . Ce backend peut être une base de données (JDBC), un middleware orienté message (JMS), un service Web ou tout ce que vous voulez.

C'est le genre de tableau de bord en direct que vous pouvez obtenir en utilisant Grafana et InfluxDB
Lisez ceci pour plus de détails.

Tableau de bord Grafana
Tableau de bord Grafana

Améliorations de base

Nouvelle mesure du temps de connexion

À partir de cette version, une nouvelle métrique appelée connectTime a été ajoutée. Il représente le temps nécessaire pour établir la connexion. Par défaut, il n'est pas enregistré au format CSV ou XML, pour qu'il soit enregistré, ajoutez-le à user.properties :
jmeter.save.saveservice.connect_time=true

Graphique agrégé et rapport

Les écouteurs Aggregate Graph et Aggregate Report affichaient auparavant uniquement le 90 centile (comportement historique), le 95 centile et le 99 centile ont été ajoutés et sont personnalisables. Pour configurer la valeur des centiles que vous souhaitez, ajoutez à user.properties :
aggregate_rpt_pct1=
90aggregate_rpt_pct2 =95aggregate_rpt_pct3
=99

Enregistreur de script de test HTTP(S)

Désormais, le composant est capable de détecter les schémas d'authentification et ajoute automatiquement un gestionnaire d'autorisations HTTP préconfiguré avec le bon mécanisme.

Requête HTTP

Les verbes CalDAV (extensions de calendrier pour WebDAV) REPORT et MKCALENDAR ont été ajoutés dans l'échantillonneur de requête HTTP.

Requête JDBC

Le ResultSet peut être obtenu en tant qu'objet, cela permet de manipuler plus facilement les résultats après dans BeanShell, les scripts JSR223, …

Tests distribués

Pour permettre une meilleure utilisation des tests distribués dans le cloud, un comportement de nouvelle tentative a été ajouté lors du démarrage du test sur les serveurs. Lisez ceci pour plus de détails.

Performances des tests distribués

Depuis JMeter 2.13, les modes Stripping (StrippingBatch étant le mode par défaut) suppriment désormais également les réponses des sous-résultats, améliorant ainsi la bande passante réseau consommée.

Actualisation de la documentation

Un nouveau style de site Web (responsif et plus à jour) a été créé par Felix Schumacher. Les documentations ont été rafraîchies notamment :

Améliorations de l'interface graphique

Contrôleur de modules

Le contrôleur de module affiche désormais le contrôleur cible dans une arborescence (au lieu d'une liste déroulante).

Barre d'outils

La barre d'outils de JMeter a été actualisée pour certaines icônes (démarrer, basculer, etc.). Trois tailles sont désormais disponibles pour les icônes : 22x22, 32x32 et 48x48.
La propriété pour définir votre taille préférée est :

jmeter.toolbar.icons.size=valeur
avec la valeur 22x22 (taille par défaut), 32x32 ou 48x48.

La barre d'outils avec des icônes de 22x22 pixels

La barre d'outils avec des icônes de 32x32 pixels

La barre d'outils avec des icônes de 48x48 pixels

Enregistreur de script de test HTTP(S)

Si votre plan de test ne contient pas de contrôleur d'enregistrement, un nouveau message d'avertissement apparaîtra si l'enregistreur de script de test HTTP(S) est configuré pour envoyer les échantillons dans un contrôleur d'enregistrement.

Modifications incompatibles

  • Depuis la version 2.13, le graphique agrégé, le rapport récapitulatif et le rapport agrégé exportent désormais les pourcentages vers %, avant d'exporter la valeur décimale qui différait de ce qui était affiché dans l'interface graphique.
  • Les plugins tiers peuvent être affectés par le correctif du bogue 57586 , assurez-vous que votre sous-classe de HttpTestSampleGui implémente ItemListener si vous vous êtes appuyé sur la classe parent pour le faire.
  • Le package de rapport a été supprimé, ApacheJMeter_report.jar n'est plus généré en conséquence, voir le bogue 57269

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 25430 - Enregistreur de script de test HTTP(S) : faites-le remplir le gestionnaire d'autorisations HTTP. En partie basé sur un patch de Dzmitry Kashlach (dzmitrykashlach sur gmail.com)
  • Bogue 57381 - L'enregistreur de script de test HTTP(S) doit afficher une erreur si le contrôleur cible fait référence à un contrôleur d'enregistrement et qu'aucun contrôleur d'enregistrement n'existe. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57488 - Performances : amélioration de la réinitialisation de SSLContext pour l'authentification SSL bidirectionnelle
  • Bogue 57565 - SamplerCreator : Ajouter une méthode pour permettre aux implémentations d'ajouter des enfants à l'échantillonneur créé
  • Bogue 57606 - HTTPSamplerBase#errorResult modifie l'étiquette de l'échantillon en cas d'exception
  • Bug 57613 - HTTP Sampler : Ajout des verbes CalDAV (REPORT, MKCALENDAR). Contribué par Richard Brigham (richard.brigham sur teamaol.com)
  • Bogue 48799 - Ajoute du temps pour établir la connexion aux exemples de métriques disponibles. Implémenté par Andrey Pokhilko (andrey sur blazemeter.com) et contribué par BlazeMeter Ltd. et Pieter Ennes (apache.org sur spam.ennes.nl)
  • Bogue 57500 - Introduire un comportement de nouvelle tentative pour les tests distribués. Mis en œuvre par Andrey Pokhilko et Dzimitry Kashlach et contribué par BlazeMeter Ltd.

Autres échantillonneurs

  • Bogue 57322 - Éléments de test JDBC : ajoutez ResultHandler pour traiter les ResultSets (curseurs) renvoyés par des instructions appelables. Contribué par Yngvi Þór Sigurjónsson (blitzkopf sur gmail.com)

Contrôleurs

  • Bug 57561 - Interface utilisateur du contrôleur de module : Remplacez la combobox par l'arborescence. Contribution de Maciej Franek (maciej.franek sur gmail.com)
  • Bogue 57648 - TestFragment doit être désactivé lors de sa création. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)

Les auditeurs

  • Bug 55932 - Créer un Async BackendListener pour permettre une connexion facile d'un nouvel écouteur (Graphite, JDBC, Console, …)
  • Bug 57246 - BackendListener : Créer une implémentation Graphite
  • Bogue 57217 - Améliorations du graphique agrégé et du rapport agrégé (3 centiles configurables, mêmes données dans les deux, exclure le code). Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57537 - BackendListener : Autoriser les implémentations à supprimer des échantillons

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

  • Bug 54453 - Améliorations des performances : Remplacer Random par ThreadLocalRandom dans la fonction __Random

I18N

Général

  • Bug 57518 - Icônes pour barre d'outils avec plusieurs tailles
  • Bogue 57605 - Lorsqu'il y a une erreur de chargement du plan de test, SaveService.loadTree renvoie null menant à NPE dans les appelants
  • Bogue 57269 - Suppression du package org.apache.jmeter.reports
  • Bug 53764 - Site Web : Créer un nouveau style pour le site Web

Changements non fonctionnels

  • Mise à jour vers jsoup-1.8.1.jar (à partir de 1.7.3)
  • Mise à jour vers tika-core et tika-parsers 1.7 (à partir de 1.6)
  • Mise à jour vers commons-codec-1.10.jar (à partir de 1.9)
  • Mise à jour vers dnsjava-2.1.7.jar (à partir de 2.1.6)
  • Mise à jour vers jodd-3.6.4.jar (à partir de 3.6.1)
  • Mise à jour vers junit-4.12.jar (à partir de 4.11)
  • Mise à jour vers rhino-1.7R5 (à partir de 1.7R4)
  • Mise à jour vers rsyntaxtextarea-2.5.6 (à partir de 2.5.3)
  • Mise à jour vers slf4j-1.7.10 (à partir de 1.7.5)
  • Bogue 57276 - RMIC n'est plus nécessaire depuis Java 5
  • Bogue 57310 - Remplacer System.getProperty("file.separator") par File.separator partout (également " path.separator" par File.pathSeparator )
  • Bug 57389 - Correction des NPE potentiels dans les convertisseurs
  • Bogue 57417 - Supprimez la méthode inutilisée isTemporary de NullProperty . C'était un reste d'un refactoring effectué en 2003.
  • Bogue 57418 - Suppression du constructeur inutilisé de Workbench
  • Bogue 57419 - Suppression de l'interface inutilisée ModelListener.
  • Bug 57466 - IncludeController : supprime une création d'ensemble inutile. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Ajout de la propriété loggerpanel.usejsyntaxtext pour désactiver l'utilisation de JSyntaxTextArea pour l'enregistreur de console (en cas de problèmes de mémoire ou autres)
  • Bogue 57586 - HttpTestSampleGui : suppression de l'implémentation de l'interface ItemListener

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 57385 - Obtention d'un nom de thread vide dans le résultat xml pour les requêtes HTTP avec l'ensemble "Suivre les redirections". Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57579 - L'erreur NullPointerException est générée sur l'échantillon principal si "RETURN_NO_SAMPLE" est utilisé (par défaut) et "Utiliser l'en-tête Cache-Control / Expires…" est coché dans HTTP Cache Manager

Autres échantillonneurs

Contrôleurs

  • Bogue 57447 ​​- Utilisez uniquement les serveurs DNS répertoriés par l'utilisateur, lorsque l'option "utiliser un résolveur DNS personnalisé" est activée.

Les auditeurs

  • Bogue 57262 - Exportation d'un rapport agrégé, d'un graphique agrégé et d'un rapport récapitulatif : les en-têtes utilisent des clés au lieu d'étiquettes
  • Bug 57346 - Summariser : les rapports + (différence) affichent un temps écoulé et un débit erronés
  • Bogue 57449 - Tests distribués : les modes supprimés ne suppriment pas les réponses des sous-résultats (affecte les tests de charge qui utilisent le téléchargement de ressources intégrées). Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bug 57562 - Afficher l'arborescence des résultats CSS/JQuery Tester : rien ne se passe lorsqu'il y a une erreur de syntaxe et qu'une exception se produit dans jmeter.log
  • Bogue 57514 - Le graphique agrégé, le rapport récapitulatif et le rapport agrégé affichent un rapport de pourcentage erroné dans le fichier enregistré

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 57607 - Minuteur de débit constant : débit incorrect calculé en modes partagés en raison d'une erreur d'arrondi

Général

  • Bogue 57365 - Le LAF sélectionné n'est pas correctement configuré en raison de l'appel trop tard de UIManager.setLookAndFeel . Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57364 - Options < Look And Feel ne met pas à jour toutes les fenêtres LAF. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57394 - Lors de la construction d'une instance avec ClassTools#construct(String, int), l'entier était ignoré et le constructeur par défaut était utilisé à la place.
  • Bogue 57440 - OutOfMemoryError après introduction de JSyntaxTextArea dans LoggerPanel car disableUndo n'est pas pris en compte.
  • Bogue 57569 - FileServer.reserveFile - comportement incohérent lorsque hasHeader est vrai
  • Bogue 57555 - Impossible d'utiliser JMeter 2.12 comme dépendance Maven. Contribution de Pascal Schumacher (pascal.schumacher sur t-systems.com)
  • Bug 57608 - Correction de la compatibilité du script de démarrage avec les anciens shells Unix, par exemple sur Solaris

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

  • Pack de chargement Ubik
  • Yngvi Þór Sigurjónsson (blitzkopf sur gmail.com)
  • Dzmitry Kashlach (dzmitrykashlach sur gmail.com)
  • BlazeMeter Ltd.
  • Benoît Wiart (benoit.wiart sur gmail.com)
  • Pascal Schumacher (pascal.schumacher chez t-systems.com)
  • Maciej Franek (maciej.franek sur gmail.com)
  • Richard Brigham (richard.brigham sur teamaol.com)
  • Pieter Ennes (apache.org sur spam.ennes.nl)

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :
  • Chaitanya Bhatt (bhatt.chaitanya sur gmail.com) pour ses tests approfondis de la nouvelle implémentation de BackendListener et Graphite Client.
  • Marcelo Jara (marcelojara sur hotmail.com) pour son rapport clair sur le bogue 57607 .
Toutes nos excuses si nous avons omis quelqu'un d'autre.

Bogues connus

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :
    [java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
     java.util.prefs.BackingStoreException :
     java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
    
    Cela n'affecte pas le fonctionnement de JMeter. Ce problème est résolu depuis Java 7b05.
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Avec Java 1.6 et Gnome 3 sur les systèmes Linux, le menu JMeter peut ne pas fonctionner correctement (décalage entre le clic de la souris et le menu). Il s'agit d'un bogue Java connu (voir bogue 54477 ). Une solution de contournement consiste à utiliser un runtime Java 7 (OpenJDK ou Oracle JDK).
  • Avec Oracle Java 7 et Mac Book Pro Retina Display, l'interface graphique JMeter peut sembler floue. Il s'agit d'un bogue Java connu, voir Bug JDK-8000629 . Une solution de contournement consiste à utiliser un environnement d'exécution Java 7 mise à jour 40 qui résout ce problème.
  • Vous pouvez rencontrer l'erreur suivante : java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme si vous exécutez une requête HTTPS sur un site Web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption) ou avec un certificat SSL de taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 7 version u16 (MD2) et version u40 (taille du certificat inférieure à 1024 bits), ainsi que Java 8.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.

Version 2.12

Sommaire

Nouveau et remarquable

Prise en charge de Java 8

Désormais, JMeter 2.12 est compatible avec Java 8.

Nouveaux éléments

Contrôleur de section critique

Le Critical Section Controller permet de sérialiser l'exécution d'une section dans votre arborescence. Une seule instance de la section sera exécutée à la fois pendant le test.

Gestionnaire de cache DNS

Le nouvel élément de configuration DNS Cache Manager (voir Bug 56841 ) améliore le test de :

  • CDN (réseau de diffusion de contenu)
  • Équilibrage de charge DNS.
  • Équilibreurs de charge comme Amazon Elastic Load Balancer

Améliorations de base

Enregistrement plus intelligent des plans de test HTTP

Test Script Recorder a été amélioré de plusieurs façons

  • Meilleure correspondance des variables dans les requêtes, ce qui rend Test Script Recorder variabilise votre échantillonneur pendant l'enregistrement plus polyvalent
  • Possibilité de filtrer à partir de l'arborescence des résultats les échantillons qui sont exclus de l'enregistrement, cela vous permet de vous concentrer sur l'analyse des échantillonneurs enregistrés et de ne pas vous soucier des résultats d'échantillons inutiles
  • De meilleures valeurs par défaut pour l'enregistrement, puisque cette version Recorder numérotera les échantillonneurs créés, ce qui vous permettra de les trouver plus facilement dans l'arborescence des résultats. Le regroupement des échantillonneurs sous le contrôleur de transaction sera plus intelligent en faisant de toutes les requêtes émises par une page Web des enfants en tant que nouveau contrôleur de transaction

Prise en charge des requêtes Webdav

Vous pouvez maintenant tester par rapport au serveur WebDav en utilisant HttpClient4 Implémentation de la requête Http

Meilleure gestion des ressources embarquées

Lorsque le téléchargement des ressources intégrées est coché, JMeter utilise désormais l'en-tête de l'agent utilisateur pour télécharger ou non les ressources intégrées dans les commentaires conditionnels conformément à À propos des commentaires conditionnels .

Possibilité de personnaliser la gestion des ressources mises en cache par Cache Manager (simulation de cache de navigateur)

Vous pouvez maintenant configurer le comportement de JMeter lorsqu'une ressource est trouvée dans le cache, cela peut être contrôlé avec la propriété cache_manager.cached_resource_mode

Éditeur JMS / Point à point JMS

Ajoutez les champs JMSPriority et JMSExpiration pour ces échantillonneurs.

Échantillonneur de lecteur de courrier

Vous pouvez désormais spécifier le nombre de messages que vous souhaitez récupérer (avant que tous les messages ne soient récupérés). De plus, vous ne pouvez récupérer que l'en-tête du message maintenant.

Échantillonneur SMTP

Ajout du délai de connexion et du délai de lecture à l' échantillonneur SMTP.

Minuterie de synchronisation

Ajout d'un timeout pour définir le temps maximum d'attente du groupe d'utilisateurs virtuels.

Amélioration des performances

Une grande amélioration des performances des fonctions a été apportée en supprimant les synchronisations inutiles. Cela concerne toutes les fonctions sauf __StringFromFile, __XPath et __BeanShell, voir Bug 57114

Les performances de __jexl2 ont été améliorées pour éviter les points de conflit, voir Bug 56708

Améliorations de l'interface graphique

Prise en charge Annuler/Rétablir

Annuler / Rétablir a été introduit et permet à l'utilisateur d'annuler / rétablir les modifications apportées à l'arborescence du plan de test. Cette fonctionnalité (MODE ALPHA) est désactivée par défaut, pour l'activer, définissez la propriété undo.history.size=25

Afficher l'arborescence des résultats

Améliorez l'ergonomie de View Results Tree en modifiant le placement des Renderers et en permettant un ordre personnalisé (avec la propriété view.results.tree.renderers_order ).

Graphique du temps de réponse

Ajout de la possibilité pour l' écouteur Response Time Graph d'enregistrer/restaurer le format de ses paramètres dans/depuis le fichier jmx.

Visionneuse de journal

À partir de cette version, les dernières lignes du fichier journal de JMeter (jmeter.log) peuvent être visualisées directement dans l'interface graphique en cliquant sur l'icône d'avertissement dans le coin supérieur droit. Cela déroulera le panneau Log Viewer et affichera les journaux.

Ouverture de fichier

Désormais, la "boîte de dialogue Ouvrir un fichier" utilise le dernier dossier de fichiers ouvert comme dossier de démarrage, voir le bogue 52707

Bogues connus

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :
    [java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
     java.util.prefs.BackingStoreException :
     java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
    
    Cela n'affecte pas le fonctionnement de JMeter. Ce problème est résolu depuis Java 7b05.
  • Notez que sous certains systèmes Windows, vous pouvez avoir cet AVERTISSEMENT :
    java.util.prefs.WindowsPreferences
    AVERTISSEMENT : impossible d'ouvrir/créer le nœud racine des préférences Software\JavaSoft\Prefs à la racine 0
    x80000002. Windows RegCreateKeyEx(…) a renvoyé le code d'erreur 5.
    
    Le correctif consiste à exécuter JMeter en tant qu'administrateur, il créera la clé de registre pour vous, puis vous pourrez redémarrer JMeter en tant qu'utilisateur normal et vous n'aurez plus l'avertissement.
  • Avec Java 1.6 et Gnome 3 sur les systèmes Linux, le menu JMeter peut ne pas fonctionner correctement (décalage entre le clic de la souris et le menu). Il s'agit d'un bogue Java connu (voir bogue 54477 ). Une solution de contournement consiste à utiliser un runtime Java 7 (OpenJDK ou Oracle JDK).
  • Avec Oracle Java 7 et Mac Book Pro Retina Display, l'interface graphique JMeter peut sembler floue. Il s'agit d'un bogue Java connu, voir Bug JDK-8000629 . Une solution de contournement consiste à utiliser un environnement d'exécution Java 7 mise à jour 40 qui résout ce problème.
  • Vous pouvez rencontrer l'erreur suivante : java.security.cert.CertificateException : les certificats ne sont pas conformes aux contraintes de l'algorithme si vous exécutez une requête HTTPS sur un site Web avec un certificat SSL (lui-même ou l'un des certificats SSL de sa chaîne de confiance) avec un algorithme de signature utilisant MD2 (comme md2WithRSAEncryption) ou avec un certificat SSL de taille inférieure à 1024 bits. Cette erreur est liée à une sécurité accrue dans Java 7 version u16 (MD2) et version u40 (taille du certificat inférieure à 1024 bits), ainsi que Java 8.
    Pour vous permettre d'effectuer votre requête HTTPS, vous pouvez rétrograder la sécurité de votre installation Java en modifiant la propriété Java jdk.certpath.disabledAlgorithms . Supprimez la valeur MD2 ou la contrainte de taille, selon votre cas.
    Cette propriété est dans ce fichier :
    JAVA_HOME/jre/lib/security/java.security
    Voir le bogue 56357 pour plus de détails.

Modifications incompatibles

  • Depuis JMeter 2.12, les threads actifs dans tous les groupes de threads et les threads actifs dans le groupe de threads actuel sont enregistrés par défaut dans les résultats CSV ou XML, voir Bug 57025 . C'est généralement le comportement attendu car vous voulez avoir le nombre de threads en cours d'exécution pendant le test. Mais si vous souhaitez revenir au comportement précédent, définissez la propriété jmeter.save.saveservice.thread_counts=false
  • Depuis JMeter 2.12, Mail Reader Sampler affichera 1 pour le nombre d'échantillons au lieu du nombre de messages récupérés, voir Bug 56539
  • Depuis JMeter 2.12, lors de l'utilisation de Cache Manager, si une ressource est trouvée dans le cache, aucun SampleResult ne sera créé, dans la version précédente, un SampleResult avec un contenu vide et un code de retour 204 était renvoyé, voir Bug 54778 . Vous pouvez choisir entre différentes manières de gérer ce cas, voir cache_manager.cached_resource_mode dans jmeter.properties .
  • Depuis JMeter 2.12, Log Viewer n'effacera plus les journaux lorsqu'il sera fermé et aura des journaux disponibles même s'il est fermé. Voir bogue 56920 . Lisez Trucs et astuces > Activation de la journalisation du débogage pour plus de détails sur la configuration de ce composant.

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 55998 - Enregistrement HTTP - Le remplacement de la valeur du port par une variable définie par l'utilisateur ne fonctionne pas
  • Bug 56178 - erreur keytool : caractère échappé non valide dans AVA : - certains caractères doivent être échappés
  • Bogue 56222 - NPE si jmeter.httpclient.strict_rfc2616=true et l'emplacement n'est pas absolu
  • Bogue 56263 - DefaultSamplerCreator doit définir BrowserCompatible Multipart sur true
  • Bogue 56231 - Déplacement du traitement de l'emplacement de redirection des échantillonneurs HC3/HC4 vers HTTPSamplerBase#followRedirects()
  • Bogue 56207 - Les URL sont encodées sur les redirections dans les échantillonneurs HC3.1 et HC4
  • Bogue 56303 - La largeur de la liste combinée du contrôleur cible doit être définie sur la taille actuelle du panneau, et non sur la taille de l'étiquette des contrôleurs
  • Bogue 54778 - L'échantillonneur HTTP ne doit pas renvoyer 204 lorsque la ressource est trouvée dans le cache, rendez-la configurable avec la nouvelle propriété cache_manager.cached_resource_mode

Autres échantillonneurs

  • Bogue 55977 - Inondation Keepalive du pool JDBC
  • Bogue 55999 - La barre de défilement sur l'échantillonneur point à point jms ne fonctionne pas lorsque le contenu dépasse l'affichage
  • Bogue 56198 - JMSSampler : NullPointerException est levée lorsque l'implémentation sous-jacente JNDI du fournisseur JMS n'est pas conforme au contrat Context.getEnvironment
  • Bogue 56428 - MailReaderSampler - doit-il utiliser les propriétés mail.pop3s.* ?
  • Bogue 46932 - L'alias donné dans l'instruction select n'est pas utilisé comme en-tête de colonne dans les données de réponse pour une requête JDBC. Basé sur le rapport et l'analyse de Nicola Ambrosetti
  • Bogue 56539 - Échantillonneur de lecteur de courrier : lorsque le nombre de messages à récupérer est supérieur à 1, le nombre d'échantillons ne doit afficher que 1 et non le nombre de messages récupérés
  • Bogue 56809 - JMSSampler ferme InitialContext trop tôt. Contribué par Bradford Hovinen (hovinen sur gmail.com)
  • Bogue 56761 - JMeter essaie d'arrêter une connexion JMS déjà arrêtée et affiche "La connexion est fermée"
  • Bogue 57068 - Aucune erreur générée lorsqu'une durée négative est saisie dans l'action de test
  • Bogue 57078 - LagartoBasedHTMLParser ne parvient pas à analyser la page qui contient une entrée sans type
  • Bogue 57183 - JMSSampler : pour la chaîne d'entrée : "" java.lang.NumberFormatException (pour les champs d'expiration ou de priorité)

Contrôleurs

  • Bogue 56243 - Foreach ne fonctionne pas correctement avec les index lors des itérations suivantes
  • Bogue 56276 - Le contrôleur de boucle est interrompu une fois que le nombre de boucles est évalué à zéro
  • Bogue 56160 - StackOverflowError lors de l'utilisation de WhileController dans IfController
  • Bogue 56811 - "Démarrer la boucle de thread suivante" dans le gestionnaire d'action d'état de résultat ou sur le groupe de threads et "Aller à l'itération de boucle suivante" dans l'action de test se comportent de manière incorrecte avec TransactionController dont l'option "Générer l'échantillonneur parent" est cochée

Les auditeurs

  • Bogue 56706 - SampleResult#getResponseDataAsString() n'utilise pas d'encodage dans le corps de la réponse impactant les PostProcessors et ViewResultsTree. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57052 - ArithmeticException : / par zéro lorsque sampleCount est égal à 0

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 56162 - Le gestionnaire de cache HTTP ne doit pas mettre en cache PUT/POST, etc.
  • Bug 56227 - AssertionGUI : NPE dans l'assertion sur la sélection de la souris
  • Bogue 41319 - URLRewritingModifier : Autoriser l'encodage de l'URL à la valeur du paramètre

Les fonctions

I18N

  • Bug 56111 - "commentaires" dans la traduction allemande n'est pas correct

Général

  • Bogue 56059 - Anciens TestBeans incompatibles avec 2.11 lors de l'utilisation de TextAreaEditor
  • Bogue 56080 - Erreur de conversion com.thoughtworks.xstream.converters.ConversionException avec Java 8 Early Access Build
  • Bogue 56182 - Impossible de déclencher le script bsh à l'aide de bshclient.jar ; socket est fermé de façon inattendue
  • Bogue 56360 - HashTree et ListedHashTree ne parviennent pas à se compiler avec Java 8
  • Bogue 56419 - JMeter échoue silencieusement à enregistrer les résultats
  • Bogue 56662 - L'enregistrement au format xml dans un écouteur n'est pas mémorisé
  • Bogue 56367 - JMeter 2.11 sur maven central déclenche une dépendance non existante rsyntaxtextarea 2.5.1, mise à niveau vers 2.5.3
  • Bogue 56743 - Archives de liste de diffusion incorrectes sur mail2.xml. Contribution de Felix Schumacher (felix.schumacher sur internetallee.de)
  • Bug 56763 - Suppression des icônes Oracle, non utilisées par JMeter (et licence manquante)
  • Bogue 54100 - Le changement de langue ne parvient pas à conserver les états des boutons de la barre d'outils (activé/désactivé)
  • Bogue 54648 - L'interface graphique de JMeter sur OS X se bloque lors de l'utilisation de CMD+C (raccourci clavier ou entrée de menu de l'interface utilisateur) sur un élément de l'arborescence
  • Bogue 56962 - Les interfaces graphiques JMS doivent désactiver tous les champs affectés par la case à cocher jndi.properties
  • Bogue 57061 - Enregistrer en tant que fragment de test ne parvient pas à cloner le nœud profondément sélectionné. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57075 - L'attribut BeanInfoSupport.MULTILINE n'est pas traité
  • Bogue 57076 - BooleanPropertyEditor#getAsText() doit renvoyer une valeur qui se trouve dans getTags()
  • Bogue 57088 - NPE dans ResultCollector.testEnded

Améliorations

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 55959 - Amélioration du message d'erreur lorsque Test Script Recorder échoue en raison d'un problème d'E/S
  • Bogue 52013 - L'arborescence des résultats de la vue enfant de Test Script Recorder ne prend pas en compte les URL exclues/incluses de Test Script Recorder. Basé sur le rapport et l'analyse de James Liang
  • Bogue 56119 - Les téléchargements de fichiers échouent toutes les autres tentatives utilisant des minuteries. Activez les délais d'inactivité pour les serveurs qui n'envoient pas d'en-têtes Keep-Alive.
  • Bogue 56272 - MirrorServer doit prendre en charge les paramètres de requête pour le statut et les redirections
  • Bogue 56772 - Gestion des commentaires conditionnels IE lors de l'analyse des ressources intégrées
  • Bogue 57026 - Enregistreur de script de test HTTP(S) : meilleurs paramètres par défaut. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57107 - Proposition de correctif : ajoutez des verbes DAV à l'échantillonneur HTTP. Contribution de Philippe Jung (apache sur famille-jung.fr)
  • Bug 56357 - Les certificats ne respectent pas les contraintes de l'algorithme : Ajout d'une note pour indiquer comment supprimer de l'installation Java ces nouvelles contraintes de sécurité

Autres échantillonneurs

  • Bogue 56033 - Ajouter un délai de connexion et un délai de lecture à l'échantillonneur SMTP
  • Bogue 56429 - MailReaderSampler - pas besoin de récupérer tous les messages s'ils ne sont pas tous voulus
  • Bogue 56427 - Amélioration de MailReaderSampler : lire uniquement l'en-tête du message
  • Bogue 56510 - Éditeur JMS/point à point : ajouter JMSPriority et JMSExpiration

Contrôleurs

  • Bogue 56728 - Nouveau contrôleur de section critique pour sérialiser les blocs d'un test. Basé en partie sur un patch fourni par Mikhail Epikhin (epihin-m sur yandex.ru)
  • Bug 57145 - RandomController : utilisez ThreadLocalRandom au lieu de Random pour de meilleures performances

Les auditeurs

  • Bug 56228 - Afficher l'arborescence des résultats : améliorez l'ergonomie en modifiant le placement des moteurs de rendu et en autorisant l'ordre personnalisé
  • Bogue 56349 - "summary" est un mauvais nom pour un composant Generate Summary Results, documentation clarifiée
  • Bogue 56769 - Ajoute la possibilité pour l'écouteur Response Time Graph d'enregistrer/restaurer les paramètres de format dans/depuis le fichier jmx
  • Bug 57025 - SaveService : Meilleures valeurs par défaut, enregistre le nombre de threads par défaut

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bug 56691 - Minuterie de synchronisation : Ajout d'un délai d'attente en attente
  • Bogue 56701 - Gestionnaire d'autorisations HTTP/Authentification Kerberos : ajoutez un port au SPN lorsque le port du serveur n'est ni 80 ni 443. Basé sur les correctifs de Dan Haughey (dan.haughey sur swinton.co.uk) et Felix Schumacher (felix.schumacher sur internetallee. de)
  • Bug 56841 - Nouvel élément de configuration : DNS Cache Manager pour améliorer les tests de CDN. Basé sur le patch de Dzmitry Kashlach (dzmitrykashlach sur gmail.com), et contribué par BlazeMeter Ltd.
  • Bogue 52061 - Autoriser l'accès aux en-têtes de demande dans Regex Extractor. Basé sur le patch de Dzmitry Kashlach (dzmitrykashlach sur gmail.com), et contribué par BlazeMeter Ltd.

Les fonctions

  • Bogue 56708 - __jexl2 ne s'adapte pas à plusieurs cœurs de processeur. Basé sur l'analyse et le correctif fournis par Mikhail Epikhin (epihin-m sur yandex.ru)
  • Bug 57114 - Performance : les fonctions qui n'ont que des valeurs comme variable d'instance ne doivent pas synchroniser l'exécution. Basé sur une analyse du support Ubik Load Pack et de Vladimir Sitnikov, correctif fourni par Vladimir Sitnikov (sitnikov.vladimir sur gmail.com)

I18N

Général

  • Bogue 21695 - Le script de démarrage Unix jmeter suppose qu'il se trouve sur PATH, pas sur un lien
  • Bug 56292 - Ajout de la vérification de la version de Java dans les fichiers de démarrage et désactivation de certaines options lorsqu'il s'agit du moteur Java v8
  • Bogue 56298 - L'affichage de la langue JSR223 n'indique pas quel moteur sera utilisé
  • Bogue 56455 - Fichiers batch : suppression de la prise en charge des scripts shell Windows non-NT
  • Bogue 52707 - La boîte de dialogue Faire en sorte que le fichier ouvert utilise le dernier dossier de fichiers ouvert comme dossier de démarrage. Basé sur le patch de Dzmitry Kashlach (dzmitrykashlach sur gmail.com), et contribué par BlazeMeter Ltd.
  • Bogue 56807 - Possibilité de forcer le vidage du fichier ResultCollector. Contribution d'Andrey Pohilko (apc4 sur ya.ru)
  • Bogue 56921 - Modèles : amélioration du modèle d'enregistrement pour ignorer la casse des ressources intégrées et les paramètres d'URL. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 42248 - Prise en charge de l'annulation et de la restauration lors de la modification de l'arborescence du plan de test. Développé par Andrey Pohilko (apc4 sur ya.ru) et contribué par BlazeMeter Ltd. Contribution supplémentaire par Ubik Load Pack (support sur ubikloadpack.com)
  • Bug 56920 - LogViewer : Faites en sorte qu'il reçoive tous les événements du journal même lorsqu'il est fermé. Contribué par Ubik Load Pack (assistance sur ubikloadpack.com)
  • Bogue 57083 - simplifié l'énumération CachedResourceMode. Contribué par Graham Russel (graham sur ham1.co.uk)
  • Bogue 57082 - ComboStringEditor : hashCode ajouté à une classe interne qui écrase les égaux. Contribué par Graham Russel (graham sur ham1.co.uk)
  • Bogue 57081 - Mise à jour de checkstyle pour vérifier uniquement les onglets dans les fichiers java, xml, xsd, dtd, htm, html et txt (pas les images !). Contribué par Graham Russell (graham sur ham1.co.uk)
  • Bogue 56178 - Remplacez réellement les barres obliques inverses dans le nom d'utilisateur avant de générer un certificat proxy. Contribué par Graham Russel (graham sur ham1.co.uk)
  • Bogue 57084 - Fermez le socket après utilisation dans BeanShellClient. Contribué par Graham Russel (graham sur ham1.co.uk)

Changements non fonctionnels

  • Bogue 57117 - Augmentez le chiffrement par défaut pour HTTPS Test Script Recorder de SSLv3 à TLS
  • Mise à jour vers commons-lang3 3.3.2 (à partir de 3.1)
  • Mise à jour vers commons-codec 1.9 (à partir de 1.8)
  • Mise à jour vers commons-logging 1.2 (depuis 1.1.3)
  • Mise à jour vers tika 1.6 (à partir de 1.4)
  • Mise à jour vers xercesImpl 2.11.0 (à partir de 2.9.1)
  • Mise à jour vers xml-apis 1.4.01 (à partir de 1.3.04)
  • Mise à jour vers xstream 1.4.8 (depuis 1.4.4)
  • Mise à jour vers jodd 3.6.1 (à partir de 3.4.10)
  • Mise à jour vers rsyntaxtextarea 2.5.3 (à partir de 2.5.1)
  • Mise à jour de xalan et du sérialiseur vers 2.7.2 (à partir de 2.7.1)
  • Mise à jour vers jsoup-1.8.1.jar (à partir de 1.7.3)

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

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

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :
  • Oliver LLoyd (courriel à oliverlloyd.com) pour son aide sur le bogue 56119
  • Vladimir Ryabtsev (greatvovan sur gmail.com) pour son aide sur les bugs 56243 et 56276
  • Adrian Speteanu (asp.adieu sur gmail.com) et Matt Kilbride (matt.kilbride sur gmail.com) pour leurs retours et tests sur le bogue 54648
  • Shmuel Krakower (shmulikk sur gmail.com) pour ses tests et ses rapports sur la fonction Annuler/Rétablir
Toutes nos excuses si nous avons omis quelqu'un d'autre.

Version 2.11

Sommaire

Nouveau et remarquable

Améliorations de l'enregistreur de script de test HTTP(S)

Les améliorations suivantes ont été apportées depuis les changements majeurs introduits dans JMeter 2.10 sur HTTP(S) Test Script Recorder :

  • Meilleure détection de la configuration manquante ou invalide de l'utilitaire keytool
  • La nouvelle propriété système keytool.directory (voir system.properties ) vous permet de configurer le répertoire contenant keytool en cas d'installation non standard

JMS Publisher/Point to Point : Ajout de la possibilité de définir des valeurs typées dans les propriétés d'en-tête JMS

Dans les échantillonneurs JMS Publisher et JMS Point-to-Point, vous pouvez maintenant configurer la classe de valeurs pour les propriétés d'en-tête JMS. Auparavant, seule String était possible.

Afficher l'arborescence des résultats : Ajouter un testeur XPath

Dans l'écouteur View Results Tree, un nouveau testeur XPath peut être utilisé pour tester les expressions XPATH.

Possibilité de choisir l'alias client pour la clé de certificat dans JsseSslManager afin que les tests d'authentification SSL mutuels puissent être rendus plus flexibles

Lorsque vous testez des authentifications de certificat basées sur le client, vous avez désormais un meilleur contrôle sur le certificat que vous utilisez grâce à un nouveau champ "Nom de variable contenant l'alias du certificat", ce champ vous permet de sélectionner le certificat que vous souhaitez envoyer au serveur pour vous authentifier. Vous pouvez utiliser un ensemble de données CSV comme support pour la valeur variable.

Ajouter une option "Enregistrer en tant que fragment de test"

Dans le menu fichier, une nouvelle option permet d'enregistrer un groupe d'éléments en tant que fragment de test.

Le récapitulatif est activé par défaut en mode non graphique

Lorsque vous exécutez JMeter à partir de la ligne de commande, JMeter affiche maintenant certaines statistiques du mode Summariser.

Contrôleur de transaction : modifier la propriété par défaut "Inclure la durée du minuteur…" pour l'élément nouvellement créé

À partir de la version 2.11, Transaction Controller est configuré par défaut pour exclure le temps de traitement des pré/post-processeurs tant que les temporisateurs s'arrêtent.

Bogues connus

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les écouteurs n'affichent pas le nombre d'itérations lorsqu'un contrôleur If a une condition qui est toujours fausse à partir de la première itération (voir bug 52496 ). Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / nombre total de threads, le nombre total de threads ne s'applique qu'à un test exécuté localement, sinon il affichera 0 (voir Bug 55510 ).
  • Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :
    [java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
     java.util.prefs.BackingStoreException :
     java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
    
    Cela n'affecte pas le fonctionnement de JMeter. Ce problème est résolu depuis Java 7b05.
  • Avec Java 1.6 et Gnome 3 sur les systèmes Linux, le menu JMeter peut ne pas fonctionner correctement (décalage entre le clic de la souris et le menu). Il s'agit d'un bogue Java connu (voir bogue 54477 ). Une solution de contournement consiste à utiliser un runtime Java 7 (OpenJDK ou Oracle JDK).
  • Avec Oracle Java 7 et Mac Book Pro Retina Display, l'interface graphique JMeter peut sembler floue. Il s'agit d'un bogue Java connu, voir Bug JDK-8000629 . Une solution de contournement consiste à utiliser un environnement d'exécution Java 7 mise à jour 40 qui résout ce problème.

Modifications incompatibles

  • Lors de la création d'un nouveau contrôleur de transaction, la propriété "Inclure la durée du temporisateur et des processeurs pré-post dans l'échantillon généré" sera décochée à partir de la version 2.11
  • En mode Non GUI, puisque le récapitulatif 2.11 est activé avec une fréquence de 30 secondes
  • JMeter est plus indulgent avec la gestion des redirections et assouplit la RFC2616 en autorisant les emplacements relatifs. Voir la propriété " jmeter.httpclient.strict_rfc2616 " dans jmeter.properties pour changer ce comportement, voir Bug 55717
  • Lors de la création d'une nouvelle assertion de réponse, la propriété "Pattern Matching Rules" est désormais par défaut sur Substring à partir de la version 2.11

Corrections de bogues

Échantillonneurs HTTP et enregistreur de script de test

  • Bogue 55815 - Proxy#getDomainMatch ne gère pas correctement les caractères génériques
  • Bogue 55717 - Mauvaise gestion de la redirection lorsque les URL sont au format relatif par HttpClient4 et HttpClient3.1

Autres échantillonneurs

  • Bogue 55685 - OS Sampler : l'option de délai d'expiration n'enregistre pas et ne restaure pas correctement la valeur et n'initialise pas correctement le délai d'expiration

Contrôleurs

  • Bogue 55816 - Le contrôleur de transaction avec "Inclure la durée du minuteur…" décoché n'ignore pas le temps de traitement du dernier échantillonneur enfant

Les auditeurs

  • Bogue 55826 - Accès simultanés non synchronisés à la liste dans le champ RespTimeGraphVisualizer.internalList

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 55694 - Assertions et extracteurs : évitez l'exception NullPointerException lorsque la portée est variable et que la variable est manquante
  • Bogue 55721 - HTTP Cache Manager - la directive no-store est mal interprétée

Les fonctions

  • Bug 55871 - Mauvais résultat avec la fonction intSum() lorsqu'un espace est présent avant/après le nombre. Contribution de Milamber sur la base d'une proposition de James Liang.

I18N

Général

  • Bogue 55739 - Test à distance : le nombre total de threads en mode GUI affiche un nombre total de threads non valide

Améliorations

Échantillonneurs HTTP et proxy

Autres échantillonneurs

  • Bogue 55589 - Éditeur JMS/Point à point : possibilité de définir des valeurs typées dans les propriétés d'en-tête JMS.

Contrôleurs

  • Bogue 55854 - Contrôleur de transaction : modification de la propriété par défaut "Inclure la durée du minuteur…" pour l'élément nouvellement créé

Les auditeurs

  • Bogue 55610 - Afficher l'arborescence des résultats : ajouter un testeur XPath

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 55908 - Assertion de réponse : modifiez les règles de correspondance de modèle par défaut en sous-chaîne lors de la création pour de meilleures performances
  • Bogue 54977 - Possibilité de choisir l'alias client pour la clé de certificat dans JsseSslManager afin que le test d'authentification SSL mutuel puisse être rendu plus flexible. Contribué par UBIK Load Pack (assistance sur ubikloadpack.com)

Les fonctions

I18N

Général

  • Bogue 55693 - Ajout d'une option "Enregistrer en tant que fragment de test"
  • Bogue 55753 - Amélioration du comportement de FilePanel pour démarrer à partir de la valeur définie dans le champ Nom de fichier, le cas échéant. Contribué par UBIK Load Pack (assistance sur ubikloadpack.com)
  • Bogue 55756 - HTTP Mirror Server : Ajout de la possibilité de définir des en-têtes
  • Bogue 55852 - Soyez plus indulgent dans l'analyse lorsque la valeur du jeu de caractères est entourée de guillemets simples
  • Bug 55857 - Performance : AbstractProperty doit tester le vide pour éviter le lancement d'une exception
  • Bogue 55858 - Performances de démarrage : Au démarrage, BeanInfoSupport doit tester la disponibilité des clés au lieu de lancer
  • Bogue 55865 - Performances : Désactivez la vérification obsolète par défaut dans HttpClient 4 et 3.1
  • Bogue 55512 - Le récapitulatif doit être activé par défaut en mode non graphique

Changements non fonctionnels

  • Mise à jour vers rsyntaxtextarea-2.5.1.jar (à partir de 2.5.0)
  • Mise à jour vers jodd-core-3.4.9.jar à partir de (3.4.8) et jodd-lagarto-3.4.9.jar (à partir de 3.4.9)
  • Mise à jour vers jsoup-1.7.3.jar (à partir de 1.7.2)
  • Mise à jour vers mail-1.5.0-b01 (à partir de 1.4.4)
  • Mise à jour vers mongo-java-driver-2.11.3 (à partir de 2.11.2)

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

  • James Liang (jliang sur andera.com)
  • UBIK Load Pack (assistance sur ubikloadpack.com)

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :
  • John Natsioulas (john_natsioulas sur yahoo.com.au)
  • Antonio Gomes Rodrigues (ra0077 sur gmail.com)
Toutes nos excuses si nous avons omis quelqu'un d'autre.

Version 2.10

Sommaire

Nouveau et remarquable

Améliorations de base

Nouvelles améliorations des performances

  • Une énorme amélioration des performances a été apportée sur les tests à haut débit (pas de pause), voir le bug 54777
  • Un problème de réinitialisation inutile du contexte SSL a été corrigé, ce qui améliore les performances des tests HTTP purs, voir le bug 55023
  • Amélioration importante des performances dans l'analyse des ressources intégrées dans les pages HTML grâce au passage à JODD/Lagarto HTML Parser, voir Bug 55632

Nouveau testeur CSS/JQuery dans les résultats de l'arborescence des vues

Un nouveau testeur CSS/JQuery dans View Tree Results qui fait de CSS/JQuery Extractor un citoyen de première classe dans JMeter, vous pouvez désormais tester vos expressions très facilement

De nombreuses améliorations ont été apportées à l'enregistrement HTTP(S)

L'élément de test "HTTP Proxy Server" a été renommé en "HTTP(S) Test Script Recorder".
  • Meilleur enregistrement des sites HTTPS, les ressources embarquées utilisant des sous-domaines seront plus facilement enregistrées lors de l'utilisation de JDK 7. Voir Bug 55507 . Voir la documentation mise à jour : HTTP(S) Test Script Recorder
  • La redirection est maintenant détectée plus intelligemment par HTTP Proxy Server, voir Bug 55531
  • De nombreux correctifs sur les cas extrêmes avec HTTPS ont été apportés, voir Bug 55502 , Bug 55504 , Bug 55506
  • De nombreuses corrections d'encodage ont été apportées, voir Bug 54482 , Bug 54142 , Bug 54293

Vous pouvez maintenant charger le test MongoDB via la nouvelle configuration source MongoDB

L'authentification Kerberos a été ajoutée au gestionnaire d'authentification

L'appareil peut maintenant être utilisé en plus de l'adresse IP source

Vous pouvez désormais effectuer des tests fonctionnels des scripts MongoDB via le nouveau script MongoDB

Le délai d'expiration a été ajouté à l'échantillonneur de processus du système d'exploitation

Le délai d'expiration de la requête a été ajouté à la requête JDBC

De nouvelles fonctions (__urlencode et __urldecode) sont désormais disponibles pour encoder/décoder les caractères encodés URL

L'intégration continue est maintenant facilitée par l'ajout d'un nouvel indicateur qui force la JVM NON-GUI à se fermer après la fin du test

Voir la propriété jmeter :

jmeterengine.force.system.exit

HttpSampler permet désormais à la méthode DELETE Http d'avoir un corps (fonctionne pour les implémentations HC4 et HC31). Cela permet par exemple de tester les API Elastic Search

2 implémentations de HtmlParser ont été ajoutées pour améliorer l'analyse des ressources embarquées

Vous pouvez choisir l'implémentation à utiliser pour analyser les ressources intégrées dans les pages HTML : voir jmeter.properties et regarder la propriété "htmlParser.className".

  • org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser pour des performances optimales
  • org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser pour une analyse et des tests fonctionnels plus précis

Les tests distribués ont été améliorés

  • Le nombre de threads sur chaque nœud est désormais signalé au contrôleur.

  • Amélioration des performances sur BatchSampleSender ( bug 55423 )
  • Ajout de 2 modes SampleSender (StrippedAsynch et StrippedDiskStore), voir jmeter.properties

ModuleController a été amélioré pour mieux gérer les modifications apportées aux contrôleurs référencés

Amélioration de la configuration du chargeur de classe, voir le bogue 55503

  • Nouvelle propriété "plugin_dependency_paths" pour les dépendances de plugin
  • Les propriétés "search_paths", "user.classpath" et "plugin_dependency_paths" ajoutent désormais automatiquement tous les jars des répertoires configurés

La section des meilleures pratiques a été améliorée, assurez-vous de la lire pour tirer le meilleur parti de JMeter

Voir les meilleures pratiques

Améliorations de l'interface graphique et de l'ergonomie

Nouvelle fonctionnalité de modèles qui vous permet de créer un plan de test à partir d'un modèle existant ou de fusionner un modèle dans votre plan de test

L'établi peut maintenant être enregistré

La couleur de syntaxe a été ajoutée aux éléments de scripts (BeanShell, BSF et JSR223), aux éléments MongoDB et JDBC rendant le code beaucoup plus lisible et permettant UNDO/REDO via CTRL+Z/CTRL+Y

Échantillonneur BSF avec couleur de syntaxe

Préprocesseur JSR223 avec couleur de syntaxe

De meilleurs éditeurs sont désormais disponibles pour les éléments de test avec un contenu textuel volumineux, comme HTTP Sampler, et les éléments de test liés à JMS fournissant la numérotation des lignes et permettant UNDO/REDO via CTRL+Z/CTRL+Y

L'interface graphique de JMeter peut maintenant être entièrement internationalisée, tous les problèmes restants ont été corrigés

Actuellement le français a toutes ses étiquettes traduites. D'autres langues sont partiellement traduites, n'hésitez pas à contribuer aux traductions en lisant Localisation (Guide du traducteur)

Le déplacement des éléments dans le plan de test a été amélioré à bien des égards

Le glisser-déposer d'éléments dans l'arborescence du plan de test est maintenant beaucoup plus facile et possible sur plusieurs nœuds

Notez qu'en raison de ce bogue dans Java , vous ne pouvez pas supprimer un nœud après le dernier nœud. La solution consiste à le déposer avant ce dernier nœud, puis à faire glisser et déposer le dernier nœud avant celui que vous venez de déposer.

De nouveaux raccourcis ont été ajoutés pour déplacer des éléments dans l'arborescence.

(alt + flèche vers le haut) et (alt + flèche vers le bas) déplacent l'élément dans le nœud parent
(alt + flèche vers la gauche) et (alt + flèche vers la droite) déplacent l'élément de haut en bas dans la profondeur de l'arborescence

L'axe Y du graphique de temps de réponse peut maintenant être mis à l'échelle

JUnit Sampler donne maintenant plus de détails sur les erreurs de configuration

Bogues connus

  • Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).
  • Les écouteurs n'affichent pas le nombre d'itérations lorsqu'un contrôleur If a une condition qui est toujours fausse à partir de la première itération (voir bug 52496 ). Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).
  • L'échantillonneur de service Web ne considère pas l'état de la réponse HTTP pour calculer l'état d'une réponse, ainsi une réponse 500 contenant un corps non vide sera considérée comme réussie, voir Bug 54006 . Pour contourner ce problème, assurez-vous de toujours lire la réponse et d'ajouter un texte de vérification d'assertion de réponse dans la réponse.
  • Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / le nombre total de threads, ceux-ci ne s'appliquent qu'à un test exécuté localement ; ils n'incluent pas les threads démarrés sur des systèmes distants lors de l'utilisation du mode client-serveur (voir bug 54152 ).
  • Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :
    [java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
     java.util.prefs.BackingStoreException :
     java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
    
    Cela n'affecte pas le fonctionnement de JMeter. Ce problème est résolu depuis Java 7b05.
  • Avec Java 1.6 et Gnome 3 sur les systèmes Linux, le menu JMeter peut ne pas fonctionner correctement (décalage entre le clic de la souris et le menu). Il s'agit d'un bogue Java connu (voir bogue 54477 ). Une solution de contournement consiste à utiliser un runtime Java 7 (OpenJDK ou Oracle JDK).
  • Avec Oracle Java 7 et Mac Book Pro Retina Display, l'interface graphique JMeter peut sembler floue. Il s'agit d'un bogue Java connu, voir Bug JDK-8000629 . Une solution de contournement consiste à utiliser un environnement d'exécution Java 7 mise à jour 40 qui résout ce problème.

Modifications incompatibles

  • SMTP Sampler utilise désormais le sujet du fichier eml si le champ sujet est vide
  • Avec cette version, autoFlush a été désactivé sur PrintWriter en charge de l'écriture des résultats des tests. Cela se traduit par un débit amélioré pour les tests intensifs, mais peut entraîner davantage de pertes de données de test en cas de plantage de JMeter (extrêmement rare). Pour revenir au comportement précédent, définissez la propriété jmeter.save.saveservice.autoflush sur true .
  • Le raccourci pour la boîte de dialogue Function Helper est désormais CTRL+SHIFT+F1 (CMD + SHIFT + F1 pour Mac OS) . La séquence de touches d'origine (Ctrl+F1) ne fonctionnait pas à certains endroits (elle est consommée par le Java Swing ToolTipManager). Il fallait donc changer de raccourci.
  • La demande de service Web (SOAP) a été supprimée par défaut de l'interface graphique car l'élément est obsolète. (Utilisez HTTP Request with Body Data , voir aussi le Template Building a SOAP Webservice Test Plan ), si vous avez besoin de l'afficher, voir la propriété not_in_menu dans jmeter.properties
  • Le contrôleur de transaction définit désormais le code de réponse de l' échantillonneur parent généré (si l' échantillonneur parent généré est coché) sur le code de réponse du premier enfant défaillant en cas d'échec de l'un des enfants, dans les versions précédentes, le code de réponse était vide.
  • Dans les versions précédentes, IncludeController pouvait exécuter des éléments de test situés dans un groupe de threads , ce comportement ( qui n'était pas documenté ) pouvait entraîner un comportement étrange, il a été supprimé dans cette version (voir bug 55464 ). La bonne façon d'inclure des éléments de test consiste à utiliser Test Fragment comme indiqué dans la documentation de Include Controller .
  • Le nombre de tentatives pour les échantillonneurs HttpClient 3.1 et HttpClient 4.x a été remplacé par 0 . Auparavant, la valeur par défaut était 1, ce qui pouvait entraîner un trafic supplémentaire inattendu.
  • À partir de cette version, l' enregistreur de script de test HTTP(S) essaie de détecter quand un échantillon est le résultat d'une redirection précédente. Si la réponse actuelle est une redirection, JMeter enregistrera l'URL de redirection. Lorsque la requête suivante est reçue, elle est comparée à l'URL de redirection enregistrée et s'il y a une correspondance, JMeter désactivera l'échantillon généré. Pour revenir au comportement précédent, définissez la propriété proxy.redirect.disabling=false
  • À partir de cette version, dans HTTP(S) Test Script Recorder, si Grouping est défini sur Put each group in a new Transaction Controller , l'enregistreur créera des instances de Transaction Controller avec Inclure la durée du minuteur et les processeurs pré-post dans l'échantillon généré défini sur false . Cette valeur par défaut reflète plus précisément le temps de réponse.
  • La fonction __escapeOroRegexpChars (qui échappe aux caractères réservés ORO) ne coupe plus la valeur (voir Bug 55328 )
  • Le commons-lang-2.6.jar a été supprimé des bibliothèques intégrées dans le dossier jmeter/lib car il n'est pas nécessaire à JMeter au moment de l'exécution (il n'est utilisé par Apache Velocity que pour générer de la documentation). Si vous utilisez un plugin ou un code tiers qui en dépend, vous devez l'ajouter dans le dossier jmeter/lib

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 54627 - Interface graphique du proxy JMeter : le paramètre de type d'échantillonneur occupe tout l'écran lorsqu'il existe des échantillonneurs avec des noms longs.
  • Bogue 54629 - HTMLParser n'extrait pas les URL des balises <object>.
  • Bogue 55023 - La fonctionnalité de réutilisation du contexte SSL (51380) affecte négativement les performances/le débit des requêtes non SSL. basé sur une analyse de Brent Cromarty (brent.cromarty sur yahoo.ca)
  • Bogue 55092 - Message de journal "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase : URL nulle détectée (ne devrait pas se produire)" affiché lorsque l'URL de la ressource intégrée est mal formée.
  • Bogue 55161 - Traitement inutile dans SoapSampler.setPostHeaders. Contribué par Adrian Nistor (nistor1 sur illinois.edu)
  • Bogue 54482 - HC ne parvient pas à suivre les redirections avec des caractères non codés.
  • Bogue 54142 - Le serveur proxy HTTP lève une exception lorsque le chemin contient "|" personnage.
  • Bogue 55388 - HC3 n'autorise pas le champ Source IP à remplacer httpclient.localaddress.
  • Bogue 55450 - Les redirections HEAD doivent rester en tant que HEAD
  • Bogue 55455 - HTTPS avec HTTPClient4 ignore le paramètre cps
  • Bogue 55502 - Le proxy génère des entrées http:/ vides lors de l'enregistrement
  • Bogue 55504 - Le proxy émet de manière incorrecte des requêtes CONNECT lorsque le navigateur demande le remplacement du certificat
  • Bogue 55506 - Le proxy doit envoyer les demandes ayant échoué à tous les écouteurs configurés
  • Bogue 55545 - L'interface graphique du serveur proxy HTTP ne doit pas autoriser à la fois Suivre et Redirection automatique à sélectionner

Autres échantillonneurs

  • Bogue 54913 - JMSPublisherGui restaure incorrectement son état. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 55027 - Régression de l'action de test, la valeur de durée n'est pas enregistrée (construction nocturne).
  • Bogue 55163 - BeanShellTestElement ne parvient pas à citer la chaîne lors de l'appel de testStarted(String)/testEnded(String).
  • Bogue 55349 - NativeCommand se bloque si aucun fichier d'entrée n'est spécifié et que l'application demande une entrée.
  • Bogue 55462 - L'échantillonneur système ne doit pas modifier l'étiquette de l'échantillonneur si un échantillon échoue

Contrôleurs

  • Bogue 54467 - Contrôleur de boucle : calcule la valeur de la boucle une seule fois par itération parent.
  • Bogue 54985 - Faire en sorte que le contrôleur de transaction définisse le code de réponse de l'échantillonneur parent généré sur le code de réponse du premier enfant défaillant en cas de défaillance de l'un de ses enfants. Contribution de Mikhail Epikhin (epihin-m sur yandex.ru)
  • Bogue 54950 - ModuleController : les modifications apportées au module référencé ne sont pas prises en compte si des modifications se produisent après la première exécution et que le nœud référencé est désactivé.
  • Bogue 55201 - Le contrôleur ForEach exclut l'index de début et inclut l'index de fin (documentation clarifiée).
  • Bogue 55334 - L'ajout d'Include Controller au plan de test (composé d'Include Controllers) sans enregistrer TestPlan conduit à ce que le code inclus ne soit pas pris en compte jusqu'à l'enregistrement.
  • Bogue 55375 - StackOverflowError avec ModuleController en mode Non-GUI si son nom est le même que le nœud cible.
  • Bogue 55464 - Inclure le contrôleur exécutant le groupe de threads inclus

Les auditeurs

  • Bogue 54589 - Afficher l'arborescence des résultats contient beaucoup de caractères inutiles si la page html utilise un jeu de caractères à deux octets.
  • Bogue 54753 - StringIndexOutOfBoundsException à SampleResult.getSampleLabel() si key_on_threadname=false lors de l'utilisation du mode statistique.
  • Bogue 54685 - ArrayIndexOutOfBoundsException si "sample_variable" est défini dans le client mais pas dans le serveur.
  • Bogue 55111 - ViewResultsTree : texte non réajusté si une barre de défilement verticale est requise. Contribution de Milamber

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 54540 - Les "masques de paramètres HTML" ne sont pas marqués comme obsolètes dans l'IHM.
  • Bug 54575 - Extracteur CSS/JQuery : le choix de l'implémentation JODD utilise toujours JSOUP.
  • Bogue 54901 - L'interface graphique d'assertion de réponse se comporte bizarrement.
  • Bogue 54924 - XMLAssertion utilise JMeter JVM file.encoding au lieu du codage de réponse et ne nettoie pas la variable threadlocal.
  • Bogue 53679 - Bogue du minuteur de débit constant avec localisation. Rapporté par Ludovic Garcia

Les fonctions

  • Bogue 55328 - __escapeOroRegexpChars supprime les espaces.

I18N

  • Bogue 55437 - ComboStringEditor ne traduit pas les chaînes EDIT et UNDEFINED lors du changement de langue
  • Bogue 55501 - Encodage incorrect pour la description française de la fonction __char. Contribué par Antonio Gomes Rodrigues (ra0077 sur gmail.com)

Général

  • Bogue 54504 - Chaîne de ressource introuvable : [clipboard_node_read_error].
  • Bogue 54538 - GUI : le menu contextuel est trop grand.
  • Bug 54847 - Couper et coller est rompu avec la multi-sélection d'arbre. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54870 - Le glisser-déposer de l'arbre peut perdre des nœuds feuilles (construction nocturne affectée). Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 55056 - travail inutile dans Data.append(). Contribué par Adrian Nistor (nistor1 sur illinois.edu)
  • Bogue 55129 - Modification de la génération Javadoc selon CVE-2013-1571, VU#225657.
  • Bogue 55187 - Débordement d'entier lors du calcul de ONE_YEAR_MS dans HTTP CacheManager.
  • Bogue 55208 - Les entrées de langue JSR223 sont dupliquées ; plier en minuscules.
  • Bogue 55203 - TestBeanGUI - paramètres de langue incorrects trouvés.
  • Bogue 55065 - Traitement inutile dans Spline3.converge(). Contribué par Adrian Nistor (nistor1 sur illinois.edu)
  • Bogue 55064 - Traitement inutile dans ReportTreeListener.isValidDragAction(). Contribué par Adrian Nistor (nistor1 sur illinois.edu)
  • Bogue 55242 - Le jar du client BeanShell génère des exceptions après la mise à niveau vers la version 2.8.
  • Bogue 55288 - JMeter doit être par défaut à 0 tentatives pour les requêtes HTTP.
  • Bogue 55405 - la tâche ant download_jars échoue si lib/api ou lib/doc sont manquants. Contribution d'Antonio Gomes Rodrigues.
  • Bogue 55427 - TestBeanHelper doit ignorer les propriétés non prises en charge par GenericTestBeanCustomizer
  • Bogue 55459 - Les éléments utilisant ComboStringEditor perdent la valeur d'entrée si l'utilisateur sélectionne un autre élément de test
  • Bug 54152 - Dans les tests distribués : les activeThreads affichent toujours 0 dans l'interface graphique et Summariser
  • Bogue 55509 - Autoriser les plugins à être informés de la progression du numéro de thread distant
  • Bogue 55572 - La fenêtre contextuelle détaillée du paramètre n'affiche pas de barre de défilement lorsque le contenu dépasse l'affichage
  • Bogue 55580 - Le volet d'aide ne défile pas au démarrage pour les liens <a href="#">
  • Bug 55600 - JSyntaxTextArea : Comportement étrange lors de la première annulation
  • Bogue 55655 - NullPointerException lors de l'arrêt/arrêt à distance de tous si un moteur n'a pas démarré correctement. Contribué par UBIK Load Pack (assistance sur ubikloadpack.com)
  • Bogue 55657 - L'état des boutons Arrêt/Arrêt distants et locaux ne tient pas compte de l'état local/distant

Améliorations

Échantillonneurs HTTP et proxy

  • Requête HTTP : petites améliorations de l'interaction de l'utilisateur dans la zone de détail du paramètre de ligne. Contribution de Milamber
  • Bogue 55255 - Autoriser le corps dans la méthode HTTP DELETE à prendre en charge l'API qui l'utilise (comme ElasticSearch).
  • Bogue 53480 - Ajout de la prise en charge de Kerberos à Http Sampler (HttpClient4). Basé sur le patch de Felix Schumacher (felix.schumacher sur internetallee.de)
  • Bogue 54874 - Prend en charge le périphérique en plus de l'adresse IP source. Basé sur le patch de Dan Fruehauf (malkodan sur gmail.com)
  • Bogue 55488 - Ajoutez l'extension de fichier .ico et .woff aux exclusions suggérées par défaut dans l'enregistreur proxy. Contribution d'Antonio Gomes Rodrigues
  • Bogue 55525 - Le proxy doit prendre en charge les alias pour l'entrée du serveur de clés
  • Bogue 55531 - Enregistrement proxy et redirections. Ajout de code pour désactiver les échantillons redirigés.
  • Bogue 55507 - L'enregistrement proxy SSL ne gère pas bien les ressources externes intégrées
  • Bug 55632 - Avoir une nouvelle implémentation de htmlParser pour l'analyse des ressources embarquées avec de meilleures performances
  • Bogue 55653 - L'enregistreur de script de test HTTP(S) doit définir la propriété TransactionController "Inclure la durée du minuteur et des processeurs pré-post dans l'échantillon généré" sur faux

Autres échantillonneurs

  • Bogue 54788 - JMS Point-to-Point Sampler - Améliorations de l'interface graphique pour augmenter la lisibilité et la facilité d'utilisation. Contribué par Bruno Antunes (bmantunes sur gmail.com)
  • Bogue 54798 - Utilisation du sujet du fichier EML pour l'échantillonneur SMTP. Contribution de Mikhail Epikhin (epihin-m sur yandex.ru)
  • Bogue 54759 - SSLPeerUnverifiedException utilisant HTTPS , propriété documentée.
  • Bogue 54896 - L'échantillonneur JUnit ne donne que le message "Échec de la création d'une instance de la classe" avec des problèmes de constructeur.
  • Bogue 55084 - Ajout de la prise en charge du délai d'attente pour la requête JDBC. Contribution de Mikhail Epikhin (epihin-m sur yandex.ru)
  • Bogue 55403 - Amélioration de l'échantillonneur de système d'exploitation : prise en charge du délai d'expiration
  • Bogue 55518 - Ajout de la possibilité de limiter le nombre d'états préparés mis en cache par connexion lorsque le type de requête "Instruction de sélection préparée", "Instruction de mise à jour préparée" ou "Instruction callable" est sélectionné

Contrôleurs

  • Bogue 54271 - Le contrôleur de module s'arrête si le plan de test est renommé.

Les auditeurs

  • Bogue 54532 - Amélioration de l'échelle de l'axe Y du graphique de temps de réponse avec des valeurs énormes ou petites (< 1000 ms). Ajoutez un nouveau champ pour définir l'échelle d'incrément. Contribué par Milamber basé sur le patch de Luca Maragnani (luca.maragnani sur gmail.com)
  • Bug 54576 - Afficher l'arborescence des résultats : ajoutez un testeur CSS/JQuery.
  • Bogue 54777 - Amélioration des performances du ResultCollector par défaut. Basé sur le patch de Mikhail Epikhin (epihin-m sur yandex.ru)
  • Bogue 55389 - Afficher l'adresse IP source dans les données de requête

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 54789 - Assertion XPath - Améliorations de l'interface graphique pour augmenter la lisibilité et la facilité d'utilisation.

Les fonctions

  • Bogue 54991 - Ajout de fonctions pour encoder/décoder les caractères encodés d'URL (__urlencode et __urldecode). Contribution de Milamber.

I18N

  • Bogue 55241 - Nécessite l'éditeur GUI pour traiter les champs basés sur des énumérations avec des chaînes d'affichage localisées
  • Bogue 55440 - ComboStringEditor devrait autoriser les balises à dépendre de la langue
  • Bogue 55432 - La configuration de l'ensemble de données CSV perd le mode de partage lors du changement de langue

Général

  • Bogue 54584 - Plugin MongoDB. Basé sur le patch de Jan Paul Ettles (janpaulettles sur gmail.com)
  • Bogue 54669 - Ajout d'un indicateur forçant la JVM non graphique à se fermer après le test. Contribution de Scott Emmons
  • Bogue 42428 - L'atelier n'est pas enregistré avec le plan de test. Contribué par Dzmitry Kashlach (dzmitrykashlach sur gmail.com)
  • Bug 54825 - Ajout de raccourcis pour déplacer des éléments dans l'arborescence. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bug 54834 - Amélioration du glisser-déposer dans l'arborescence jmeter. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54839 - Définir le nom de l'application sur Mac. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54841 - Gérer correctement le raccourci de fermeture sur Mac Os (CMD-Q). Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54844 - Définir l'icône de l'application sur Mac Os. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54864 - Activez le glisser-déposer multi-sélection dans l'arborescence sans avoir à commencer à faire glisser avant de relâcher Maj ou Contrôle. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54945 - Ajout d'un crochet d'arrêt pour activer le piégeage des signaux de destruction ou CTRL+C.
  • Bogue 54990 - Téléchargez des fichiers volumineux en évitant outOfMemory.
  • Bug 55085 - Amélioration UX : Possibilité de créer un nouveau plan de test à partir de modèles. Contribué par UBIK Load Pack (assistance sur ubikloadpack.com)
  • Bogue 55172 - Fournit aux plug-ins un moyen d'ajouter le menu principal et des éléments de menu.
  • Bogue 55202 - Ajout d'une couleur de syntaxe pour les éléments de scripts (BeanShell, BSF et JSR223) et les éléments JDBC avec RSyntaxTextArea. Contribué par Milamber basé sur le patch de Marko Vlahovic (vlahovic74 sur gmail.com)
  • Bogue 55175 - Refactoring HTTPHC4Impl pour permettre un meilleur héritage.
  • Bogue 55236 - Modèles - fournit un bouton pour recharger les détails du modèle.
  • Bogue 55237 - Le système de modèles doit prendre en charge les entrées de nom de fichier relatives.
  • Bogue 55423 - BatchSampleSender : réduisez la granularité du verrouillage en déplaçant listener.processBatch en dehors du bloc synchronisé
  • Bogue 55424 - Ajouter Stripping aux SampleSenders existants
  • Bogue 55451 - Tester l'interface graphique de l'élément avec JSyntaxTextArea défiler vers le bas lorsque le contenu du texte est suffisamment long pour ajouter une barre de défilement
  • Bogue 55513 - StreamCopier ne peut pas être utilisé avec System.err ou System.out car il ferme le flux de sortie
  • Bogue 55514 - SystemCommand doit prendre en charge les flux d'entrée et de sortie arbitraires
  • Bogue 55515 - SystemCommand devrait prendre en charge le chaînage des commandes
  • Bogue 55606 - Utiliser JSyntaxtTextArea pour la requête Http, les éléments de test JMS
  • Bogue 55651 - Remplacer l'icône de l'application JMeter par l'icône du panache Apache

Changements non fonctionnels

  • Mise à jour vers jsoup-1.7.2
  • Bug 54776 - Mise à jour de la dépendance à Bouncy Castle vers 1.48. Contribution d'Emmanuel Bourg (ebourg sur apache.org)
  • Mise à jour vers HttpComponents Client 4.2.6 (à partir de 4.2.3)
  • Mise à jour vers HttpComponents Core 4.2.5 (à partir de 4.2.3)
  • Mise à jour vers commons-codec 1.8 (à partir de 1.6)
  • Mise à jour vers commons-io 2.4 (à partir de 2.2)
  • Mise à jour vers commons-logging 1.1.3 (à partir de 1.1.1)
  • Mise à jour vers commons-net 3.3 (à partir de 3.1)
  • Mise à jour vers jdom-1.1.3 (à partir de 1.1.2)
  • Mise à jour vers jodd-lagarto et jodd-core 3.4.8 (à partir de 3.4.1)
  • Mise à jour vers junit 4.11 (à partir de 4.10)
  • Mise à jour vers slf4j-api 1.7.5 (à partir de 1.7.2)
  • Mise à jour vers tika 1.4 (à partir de 1.3)
  • Mise à jour vers xmlgraphics-commons 1.5 (depuis 1.3.1)
  • Mise à jour vers xstream 1.4.4 (depuis 1.4.2)
  • Mise à jour vers BouncyCastle 1.49 (depuis 1.48)
  • Bogue 54912 - JMeterTreeListener doit utiliser des constantes. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 54903 - Supprimez la dépendance à l'infrastructure d'activation. Contribution d'Emmanuel Bourg (ebourg sur apache.org)
  • Déplacement de commons-lang (2.6) vers lib/doc car il n'est requis que par Velocity.
  • Fichiers AVIS et LICENCE réorganisés et simplifiés.
  • Bogue 55411 - NativeCommand pourrait être utile ailleurs. Code copié dans oajorphan.exec.
  • Bogue 55435 - ComboStringEditor pourrait être simplifié pour rendre la plupart des paramètres définitifs
  • Bogue 55436 - ComboStringEditor doit implémenter ClearGui
  • Bogue 55463 - Component.requestFocus() est découragé ; utilisez plutôt requestFocusInWindow()
  • Bogue 55486 - Nouveau logo JMeter. Contribué par UBIK Load Pack (assistance sur ubikloadpack.com)
  • Bogue 55548 - Optimisation de l'utilisation de TestElement.ENABLED ; utiliser TestElement.isEnabled()/setEnabled() partout
  • Bogue 55617 - Améliorations de la collection jorphan. Contribution de Benoit Wiart (benoit.wiart sur gmail.com)
  • Bogue 55623 - Les valeurs de configuration non valides/inattendues ne doivent pas être ignorées en silence
  • Bogue 55626 - Renommer le serveur proxy HTTP en enregistreur de script de test HTTP(S)

Merci

Nous remercions tous les contributeurs mentionnés dans les sections sur les bogues et les améliorations ci-dessus :

  • Bruno Antunes (bmantunes sur gmail.com)
  • Emmanuel Bourg (ebourg sur apache.org)
  • Scott Emmons
  • Mikhail Epikhin (epihin-m sur yandex.ru)
  • Dzmitry Kashlach (dzmitrykashlach sur gmail.com)
  • Luca Maragnani (luca.maragnani sur gmail.com)
  • Milamber
  • Adrian Nistor (nistor1 sur illinois.edu)
  • Antonio Gomes Rodrigues (ra0077 sur gmail.com)
  • UBIK Load Pack (assistance sur ubikloadpack.com)
  • Benoît Wiart (benoit.wiart sur gmail.com)

Nous remercions également les reporters de bogues qui nous ont aidés à améliorer JMeter.
Pour cette version, nous tenons à remercier tout particulièrement les reporters suivants pour les rapports clairs et les tests effectués après nos correctifs :
  • Immanuel Hayden (immanuel.hayden sur gmail.com)
  • Danny Lade (dlade sur web.de)
  • Brent Cromarty (brent.cromarty sur yahoo.ca)
  • Wolfgang Heider (wolfgang.heider sur racon.at)
  • Shmuel Krakower (shmulikk sur gmail.com)
Toutes nos excuses si nous avons omis quelqu'un d'autre.

Variante 2.9

Nouveau et remarquable

Améliorations principales :

* Un nouvel extracteur qui utilise la syntaxe de sélecteur CSS ou de type jquery a été introduit, il permet d'utiliser les implémentations JODD ou JSOUP

Résultat : le titre de la page dans une variable JMeter

* JMeter peut maintenant gérer différents types de documents (PDF, fichiers MsOffice, fichiers Apache OpenOffice, …) dans différents éléments

  • Extracteur d'expressions régulières, extraire du texte de documents
  • Réponse d'assertion, vérifier le texte dans les documents
  • Afficher l'arborescence des résultats, afficher sous forme de texte les documents

* Un nouveau pré-processeur de paramètres utilisateur Regex qui permet d'injecter des noms et des valeurs de paramètres d'entrée à l'aide d'une référence extraite par Regular Expression Extractor à partir d'une réponse précédente

* Echantillonneur TCP : nouvelles options

TCP Sampler a été amélioré avec de nouvelles options pour permettre de définir la valeur d'octet Close Connection , SO_LINGER et End of line (EOL)

* Une nouvelle fonction __escapeOroRegexpChars(,) a été introduite pour citer les méta-caractères d'expression régulière ORO

* ForEach Controller : nouveaux champs

ForEach Controller a maintenant 2 nouveaux champs pour contrôler le début et la fin de la boucle

* Le gestionnaire d'action d'état de résultat a maintenant une nouvelle option pour "Démarrer la boucle de thread suivante"

* Editeur JMS : nouvelle option

JMS Publisher peut maintenant envoyer des messages Bytes

* Améliorations de la mémoire et des performances

Des améliorations significatives ont été apportées dans cette version sur l'utilisation de la mémoire par thread et CPU lorsque plus d'un post-processeur est utilisé comme enfant d'un échantillonneur

Les éléments JSR223 (activer l'utilisation de Groovy, Scala, … comme langages de script) ont été améliorés pour permettre la mise en cache des résultats de la compilation lorsque les scripts sont passés dans la zone de texte

Certains paramètres de configuration par défaut ont été modifiés pour améliorer les performances par défaut (voir le bogue 54412 ), voir la description dans la section Nouveau et remarquable.

  • Les tests distribués utilisent désormais MODE_STRIPPED_BATCH, qui renvoie des échantillons en mode batch (tous les 100 échantillons ou toutes les minutes par défaut). Notez également que MODE_STRIPPED_BATCH supprime les données de réponse de SampleResult, donc si vous en avez besoin, passez à un autre mode (propriété mode dans jmeter.properties)
  • Les données de résultat sont maintenant enregistrées au format CSV par défaut (jmeter.save.saveservice.output_format dans jmeter.properties)

* XPath Assertion permet désormais d'utiliser une variable JMeter comme entrée

Améliorations de l'interface graphique et de l'ergonomie :

* La fonction de recherche a été améliorée pour rechercher dans plus de champs internes d'éléments et élargir les résultats de la recherche

* Le copier/coller est désormais possible entre 2 instances de JMeter >= version 2.9

Copiez le ou les éléments d'une instance JMeter :

Collez le ou les éléments dans une seconde instance JMeter :

* Gestionnaire d'en-tête HTTP

Autoriser la copie du presse-papiers vers HeaderPanel, les en-têtes sont censés être séparés par une nouvelle ligne et avoir le nom suivant : valeur

* Contrôleur de module

Le contrôleur de module a été amélioré pour mieux rendre le contrôleur référencé et l'étendre en cliquant sur un nouveau bouton

* Serveur proxy HTTP

HTTP Proxy Server a maintenant un bouton pour ajouter un ensemble d'exclusions par défaut pour les modèles d'URL, cette liste peut être configurée via la propriété : proxy.excludes.suggested

* Le rendu du contrôleur cible a été amélioré dans HTTP Proxy Server

Enregistrement du serveur proxy HTTP :

* Le serveur proxy HTTP utilise désormais automatiquement la requête HTTP avec le mode Raw Post Body pour les échantillons qui n'ont qu'un seul argument sans nom (JSON, XML, GWT, …)

* Le serveur proxy HTTP n'oblige pas l'utilisateur à sélectionner le type d'échantillonneur dans les paramètres de l'échantillonneur HTTP, ce qui permet de basculer plus facilement entre les implémentations car l'échantillonneur n'a plus ces informations définies

* L'interface SamplerCreator a été enrichie pour répondre aux nouvelles exigences des fournisseurs de plug-ins

* Il est maintenant possible de créer un échantillonneur binaire pour la requête POST x-www-form-urlencoded en modifiant la propriété proxy.binary.types pour ajouter application/x-www-form-urlencoded

* Amélioration de la détection automatique du format d'horodatage lors de la lecture de fichiers CSV

Bogues connus

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

Les écouteurs n'affichent pas le nombre d'itérations lorsqu'un contrôleur If a une condition qui est toujours fausse à partir de la première itération (voir bug 52496 ). Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).

L'échantillonneur de service Web ne considère pas l'état de la réponse HTTP pour calculer l'état d'une réponse, ainsi une réponse 500 contenant un corps non vide sera considérée comme réussie, voir Bug 54006 . Pour contourner ce problème, assurez-vous de toujours lire la réponse et d'ajouter un texte de vérification d'assertion de réponse dans la réponse.

Changer de langue peut casser une partie de la configuration des éléments suivants (voir Bug 53679 ) :

  • Configuration de l'ensemble de données CSV (le mode de partage sera perdu)
  • Minuteur de débit constant (Calculer le débit en fonction de sera perdu)

Les nombres qui apparaissent à gauche de la case verte sont le nombre de threads actifs / le nombre total de threads, ceux-ci ne s'appliquent qu'à un test exécuté localement ; ils n'incluent pas les threads démarrés sur des systèmes distants lors de l'utilisation du mode client-serveur (voir bug 54152 ).

Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :

[java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
 java.util.prefs.BackingStoreException :
 java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
Cela n'affecte pas le fonctionnement de JMeter.

Modifications incompatibles

JMeter nécessite maintenant un runtime Java 6 ou supérieur.

Certains paramètres de configuration par défaut ont été modifiés pour améliorer les performances par défaut (voir le bug 54412 ), voir la description dans la section Nouveau et remarquable.

L'échantillonneur de service Web ajoute maintenant pour demander les en-têtes qui sont définis via le gestionnaire d'en-tête, ceux-ci étaient auparavant ignorés

La propriété jdbcsampler.cachesize a été supprimée, elle limitait auparavant la taille d'un cache par connexion de Map < String, PreparedStatement > , elle limitait également la taille de cette carte qui contenait le PreparedStatement pour les requêtes SQL. Cette limitation a provoqué un bug Bug 53995 . Il a été supprimé donc maintenant la taille de ces 2 cartes n'est plus limitée. Cette modification modifie le comportement car à partir de cette version, aucun PreparedStatement ne sera fermé pendant le test.

À partir de cette version, il y a quelques changements importants sur les éléments de test JSR223 :

  • Les éléments de test JSR223 qui ont un nom de fichier invalide (non existant ou illisible) feront échouer le test au lieu de faire fonctionner l'élément en silence
  • Dans les éléments de test JSR223 : responseCodeOk, responseMessageOK et success sont définis avant l'exécution du script, si responseData est défini, il ne sera plus remplacé par un toString() sur la valeur de retour du script

Afficher l'arborescence des résultats considère désormais la réponse avec un type de contenu manquant comme du texte.

En mode Test à distance, JMeter se termine maintenant par erreur si l'un des moteurs distants ne peut pas être configuré, auparavant il démarrait le test avec les moteurs disponibles.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Ne consignez pas de faux messages d'avertissement lors de l'utilisation de téléchargements intégrés de pools simultanés avec Cache Manager ou CookieManager
  • Bogue 54057 - L'option proxy pour définir l'utilisateur et le mot de passe au démarrage (-u et -a) ne fonctionne pas avec HTTPClient 4
  • Bogue 54187 - L'onglet Demande n'affiche pas les en-têtes si la demande échoue
  • Bogue 53840 - Enregistrement proxy : message de réponse : URLDecoder : caractères hexadécimaux illégaux dans le modèle d'échappement (%) - Pour la chaîne d'entrée : "" "
  • Bogue 54351 - Les fragments HC4 et URI échouent

Autres échantillonneurs

  • Bogue 53997 - Requête étendue LDAP : échapper l'esperluette (&), le crochet gauche (<) et le crochet droit (>) dans la balise de filtre de recherche dans les données de réponse XML
  • Bogue 53995 - AbstractJDBCTestElement partage PreparedStatement entre plusieurs threads
  • Bogue 54119 - La réponse HTTP 307 n'est pas redirigée
  • Bogue 54326 - AjpSampler envoie le fichier en post lève FileNotFoundException
  • Bogue 54331 - AjpSampler lance un pointeur nul sur les requêtes GET qui sont protégées

Contrôleurs

Les auditeurs

  • Bogue 54088 - Le type video/f4m est texte, pas binaire
  • Bogue 54166 - ViewResultsTree n'a pas pu rendre la réponse HTML : échec de la gestion de l'analyse HTML
  • Bogue 54287 - Horodatage incorrect dans le graphique des temps de réponse lors de l'utilisation d'une date avec l'heure dans le champ Format de date
  • Bogue 54451 - Le graphique des temps de réponse signale des heures erronées lorsqu'il y a de nombreux échantillons pour la même heure
  • Bogue 54459 - CSVSaveService ne gère pas très bien l'analyse de la date

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bug 54058 - Dans HTTP Request Defaults, la valeur du champ "Embedded URLs must match: n'est pas enregistrée si la case à cocher "Retrieve All Embedded Resources" n'est pas cochée.
  • Bug 54375 - Extracteur d'expressions régulières : lorsque la syntaxe des regex est incorrecte, le post-traitement est arrêté

Les fonctions

I18N

Général

  • Bug 53975 - Le remplacement des variables ne fonctionne pas avec l'option "Retarder la création du thread jusqu'à ce qu'il soit nécessaire"
  • Bogue 54055 - Afficher l'arborescence des résultats : = les signes sont supprimés des valeurs de paramètre dans l'onglet HTTP
  • Bogue 54129 - La fonction de recherche ne trouve pas de texte bien qu'existant dans les éléments
  • Bogue 54023 - Impossible de démarrer JMeter à partir d'un répertoire racine et si le chemin complet d'installation de JMeter contient un ou plusieurs espaces (Unix/linux)
  • Bogue 54172 - La touche de raccourci en double ne fonctionne pas et CTRL+C / CTRL+V / CTRL+V n'annule pas l'événement par défaut
  • Bogue 54057 - L'option proxy pour définir l'utilisateur et le mot de passe au démarrage (-u et -a) ne fonctionne pas avec HTTPClient 4
  • Bogue 54267 - Le paramètre Start Next Thread Loop ne fonctionne pas dans les groupes de threads personnalisés
  • Bogue 54413 - DataStrippingSampleSender renvoie 0 pour le nombre d'octets de toute réponse

Améliorations

Échantillonneurs HTTP

  • Bogue 54185 - Autoriser les chaînes de requête dans les chemins commençant par HTTP ou HTTPS

Autres échantillonneurs

  • Bug 54004 - Webservice Sampler : Autoriser l'ajout d'en-têtes à la requête avec Header Manager
  • Bogue 54106 - JSR223TestElement doit vérifier l'existence du fichier lorsqu'un nom de fichier est défini au lieu d'utiliser le contenu de la zone de texte
  • Bogue 54107 - JSR223TestElement : Activer la compilation et la mise en cache du texte du script
  • Bogue 54109 - JSR223TestElement : les propriétés SampleResult doivent être définies avant d'entrer dans le script pour permettre à l'utilisateur de définir un code différent
  • Bogue 54230 - Échantillonneur TCP, ajouts des options "Fermer la connexion", "SO_LINGER" et "Valeur d'octet de fin de ligne (EOL)"
  • Bogue 54182 - Prise en charge de l'envoi de ByteMessage pour JMS Publisher.

Contrôleurs

  • Bogue 54131 - ForEach Controller : Ajout d'un index de début et de fin pour boucler sur les variables
  • Bug 54132 - Interface graphique du contrôleur de module : amélioration du rendu du contrôleur référencé
  • Bug 54155 - ModuleController : Ajout d'un bouton de raccourci pour déplier l'arborescence jusqu'au contrôleur référencé et le mettre en surbrillance

Les auditeurs

  • Bogue 54200 - Ajout de la prise en charge de plusieurs types de documents (comme les fichiers Apache OpenOffice, les fichiers MS Office, les fichiers PDF, etc.) aux éléments Afficher l'arborescence des résultats, la réponse d'assertion et l'extracteur d'expression régulière (à l'aide d'Apache Tika)
  • Bogue 54226 - Afficher l'arborescence des résultats : afficher la réponse même lorsque le serveur ne renvoie pas l'en-tête ContentType

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 54259 - Introduire un nouvel extracteur qui utilise une syntaxe de sélecteur CSS ou de type jquery
  • Bogue 45772 - Post-processeur des paramètres utilisateur RegEx
  • Bogue 54160 - Ajout de la prise en charge de l'assertion xpath à appliquer à une variable JMeter.

Les fonctions

  • Bogue 54189 - Ajout d'une fonction pour citer les méta-caractères d'expression régulière ORO
  • Bogue 54418 - Fonction UUID

I18N

Général

  • Bogue 54005 - HTTP Mirror Server : Ajouter des en-têtes spéciaux "X-" pour contrôler l'état et le contenu de la réponse
  • Bogue 53875 - Incluez les valeurs par défaut suggérées pour les filtres d'URL sur le proxy HTTP
  • Bogue 54031 - Ajouter une info-bulle à l'indicateur de threads en cours d'exécution/total
  • La demande de service Web (SOAP) est obsolète
  • Bug 54161 - Proxy : possibilité de créer un sampler binaire pour la requête POST x-www-form-urlencoded
  • Bogue 54154 - Le serveur proxy HTTP ne doit pas forcer l'utilisateur à sélectionner le type d'échantillonneur dans les paramètres de l'échantillonneur HTTP
  • Bogue 54165 - Proxy Server : amélioration du rendu du contrôleur cible
  • Bogue 46677 - Copie des éléments de test entre les plans de test
  • Bogue 54204 - Gestionnaire d'action d'état de résultat : ajout de l'option de démarrage de la boucle de thread suivante
  • Bogue 54232 - Fonctionnalité de recherche : ajouter un bouton pour rechercher et développer les résultats
  • Bogue 54251 - Ajout de l'implémentation de la case à cocher à trois états
  • Bogue 54257 - Amélioration de l'interface SamplerCreator pour répondre aux nouvelles exigences
  • Bogue 54258 - Proxy : utiliser le corps de publication brut lorsque l'échantillonneur a un argument sans nom, utile pour les échantillonneurs utilisant la méthode POST de type JSON, XML, corps GWT
  • Bogue 54268 - Améliorer l'utilisation du processeur et de la mémoire
  • Bug 54376 - ScopePanel : Permet de configurer plus précisément les scopes
  • Bug 54412 - Modification des valeurs par défaut de JMeter pour assurer de meilleures performances par défaut
  • Bogue 54414 - Le test à distance ne doit pas démarrer si l'un des moteurs ne démarre pas correctement

Changements non fonctionnels

  • Bogue 53956 - Ajout de la possibilité de coller (une liste de valeurs) à partir du presse-papiers pour le gestionnaire d'en-tête
  • Mise à jour vers HttpComponents Client 4.2.3 (à partir de 4.2.1)
  • Mise à jour vers HttpComponents Core 4.2.3 (à partir de 4.2.2)
  • Bogue 54110 - BSFTestElement et JSR223TestElement doivent utiliser une super-classe partagée pour les champs communs
  • Bogue 54199 - Migration vers Java 6
  • Mise à niveau vers le rhinocéros 1.7R4

Version 2.8

Nouveau et remarquable

Améliorations principales :

Groupe de threads : nouvelle option Retarder la création du thread jusqu'à ce qu'il soit nécessaire

Nouvelle option "Retarder la création de threads jusqu'à ce que nécessaire" qui créera et démarrera des threads en cas de besoin au lieu de les créer au démarrage du test
Cette nouvelle fonctionnalité permet d'exécuter des tests avec un grand nombre de threads de courte durée.

Gestionnaire de cookies HTTP (prise en charge d'IPv6)

Ajoutez l'implémentation du cookie HTTPClient 4 dans JMeter.
Cookie Manager a maintenant l'implémentation HC3.1 par défaut et une nouvelle implémentation HC4 (conforme à l'adresse IPv6)

Améliorations de la mémoire et des performances

Des améliorations significatives ont été apportées dans cette version sur l'utilisation de la mémoire de JMeterThread

Les éléments JSR223 (activer l'utilisation de Groovy, scala, … comme langages de script) ont été améliorés pour permettre :

  • utilisation de l'interface compilable lorsqu'elle est disponible pour augmenter l'utilisation du processeur
  • mise en cache de la compilation lorsque les scripts sont utilisés en tant que fichiers
Voir les performances de JMeter à travers les versions

Échantillonneur de processus de système d'exploitation

Autoriser la définition de fichiers pour stdout/stderr/stdin.

Requête HTTP : verbe PATCH

Ajouter le verbe PATCH à l'échantillonneur HTTP

Requête HTTP : HTTPClient 4 est désormais l'implémentation par défaut

HTTPClient 4 est désormais l'implémentation par défaut de la requête HTTP (et pour l'élément Proxy lors de la génération de requêtes HTTP).
Auparavant, la valeur par défaut était l'implémentation HTTP Java (c'est-à-dire l'implémentation fournie par la JVM)

Requête HTTP

Ajouter un filtre d'URL intégré au contrôle des valeurs par défaut des requêtes HTTP (il était déjà présent pour les requêtes HTTP)

Divers

  • Jeu de données CSV : les nouvelles lignes intégrées sont désormais prises en charge dans les données citées
  • Les fichiers JMX contiennent maintenant la version de JMeter qui a créé le fichier
  • La version de JMeter est maintenant disponible en tant que propriété "jmeter.version"

Améliorations des rapports :

Graphique du temps de réponse

Ajouter un nouveau visualiseur Response Time Graph pour dessiner un graphique linéaire montrant l'évolution du temps de réponse pour un test

Paramètres du graphique des temps de réponse

Afficher les résultats dans le tableau

Ajouter de la latence à l'écouteur Afficher le résultat dans la table

Graphique agrégé

Petites améliorations : la légende à gauche ou à droite est désormais sur 1 colonne (au lieu d'1 gros trait), …

Améliorations de l'interface graphique et de l'ergonomie :

Simplifications du serveur proxy HTTP

Les options HTTPS Spoofing ont été supprimées de Proxy car l'enregistrement HTTPS est directement disponible depuis JMeter 2.4.

Serveur proxy HTTP

Autoriser le collage des filtres d'URL à partir du presse-papiers

Rechercher dans JMeter

CTRL + F pour la nouvelle fonctionnalité Rechercher

La touche ESC ferme maintenant les popups.

Interface utilisateur dans GNOME 3

Afficher le titre 'Apache JMeter' dans la barre de titre de l'application dans Gnome 3

Bogues connus

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

Les écouteurs n'affichent pas le nombre d'itérations lorsqu'un contrôleur If a une condition qui est toujours fausse à partir de la première itération (voir bug 52496 ). Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).

Changer de langue peut casser une partie de la configuration des éléments suivants (voir Bug 53679 ) :

  • Configuration de l'ensemble de données CSV (le mode de partage sera perdu)
  • Minuteur de débit constant (Calculer le débit en fonction de sera perdu)

Notez qu'il existe un bogue dans Java sur certains systèmes Linux qui se manifeste par l'erreur suivante lors de l'exécution des cas de test ou de JMeter lui-même :

[java] AVERTISSEMENT : impossible de vider les préférences de l'utilisateur :
 java.util.prefs.BackingStoreException :
 java.lang.IllegalArgumentException : non pris en charge : numéro d'indentation
Cela n'affecte pas le fonctionnement de JMeter.

Modifications incompatibles

Lors de l'utilisation de CacheManager, JMeter met désormais en cache les réponses pour les requêtes GET à condition que l'en-tête Cache-Control soit différent de "no-cache" comme décrit dans la spécification. De plus, il ne met plus dans le cache les entrées obsolètes pour les réponses "sans cache". Voir bogue 53521 et bogue 53522

Un changement majeur s'est produit sur les éléments de test JSR223, auparavant les variables configurées avant l'exécution du script étaient stockées dans ScriptEngineManager qui était créé une fois par exécution, maintenant ScriptEngineManager est un singleton partagé par tous les éléments JSR223 et seul ScriptEngine est créé une fois par exécution, variables configurées avant l'exécution du script sont désormais stockés dans les liaisons créées à chaque exécution, voir le bogue 53365 .

Les éléments de test JSR223 utilisant le fichier Script sont maintenant compilés si ScriptEngine prend en charge cette fonctionnalité, voir Bug 53520 .

Le raccourci pour la boîte de dialogue Function Helper est désormais CTRL + F1 (CMD + F1 pour Mac OS), CTRL + F (CMD + F1 pour Mac OS) ouvre désormais la boîte de dialogue de recherche.

Par défaut, le TestCompiler stocke désormais les détails des paires qu'il a vues dans des instances de contrôleur plutôt que dans un ensemble statique. [ Bogue 53796 ] Cela améliore considérablement le comportement de la mémoire pour les plans de test à démarrage différé, car la mémoire utilisée est proportionnelle au nombre de threads simultanés. Avec le jeu statique, l'utilisation de la mémoire était proportionnelle au nombre total de threads. Il est très peu probable que ce changement cause un problème. Le comportement d'origine peut être restauré en définissant la propriété TestCompiler.useStaticSet=true

Les options HTTPS Spoofing ont été supprimées de Proxy car l'enregistrement HTTPS est directement disponible depuis JMeter 2.4.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 53521 - Le gestionnaire de cache doit mettre en cache le contenu avec Cache-control=private
  • Bogue 53522 - Le gestionnaire de cache ne doit pas stocker du tout la réponse avec l'en-tête "no-cache" et stocker d'autres types de Cache-Control ayant la valeur max-age
  • Bug 53838 - Appuyer sur "Stop" n'interrompt pas l'échantillonneur TCP
  • Bogue 53911 - JmeterKeystore n'autorise pas la clé dans la liste des certificats

Autres échantillonneurs

  • Bogue 53348 - L'échantillonneur de requête-réponse point à point JMeter JMS ne fonctionne pas lorsque la file d'attente de requête et la file d'attente de réception sont différentes
  • Bogue 53357 - JMS point à point signale des temps de réponse trop élevés en mode de réponse à la demande
  • Bogue 53440 - La connexion SSL conduit à ArrayStoreException sur JDK 6 avec certains SPI KeyManagerFactory
  • Bogue 53511 - L'échantillonneur de journal d'accès SessionFilter lance NullPointerException - le gestionnaire de cookies n'est pas initialisé correctement
  • Bogue 53715 - JMeter ne charge pas WSDL

Contrôleurs

Les auditeurs

  • Bogue 53742 - Lorsque jmeter.save.saveservice.sample_count est défini sur true, le temps écoulé lu par l'écouteur est toujours égal à 0
  • Bogue 53774 - RequestViewRaw n'affiche pas les en-têtes à moins que samplerData ne soit non nul
  • Bogue 53802 - Les valeurs IdleTime ne sont pas enregistrées dans le journal CSV
  • Bogue 53874 - Afficher l'arborescence des résultats : si un paramètre contenant des caractères spéciaux comme % n'est pas encodé, RequestViewHTTP échoue avec java.lang.IllegalArgumentException : URLDecoder : caractères hexadécimaux illégaux dans le modèle d'échappement (%) et la réponse n'est pas affichée

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 51512 - Les cookies ne sont pas insérés dans la requête HTTP avec l'en-tête Host IPv6

Les fonctions

I18N

Général

  • Bogue 53365 - JSR223TestElement doit mettre en cache ScriptEngineManager
  • Bug 53520 - Éléments JSR223 : Utiliser l'interface compilable pour améliorer les performances sur les scripts File
  • Bogue 53501 - Le minuteur de synchronisation bloque la fin du test.
  • Bogue 53750 - TestCompiler enregistre les entrées inutiles dans la collection d'appariement
  • Bogue 52266 - Code : synchronisation incohérente
  • Bogue 53841 - CSVSaveService lit le fichier en utilisant l'encodage de fichier par défaut JVM au lieu d'utiliser celui configuré dans saveservice.properties
  • Bug 53953 Nouveau : faute de frappe dans la documentation du plan de test du moniteur

Améliorations

Échantillonneurs HTTP

  • Bogue 53675 - Ajout du verbe PATCH à l'échantillonneur HTTP
  • Bogue 53931 - Définissez HTTPClient 4 pour la requête HTTP par défaut (et l'élément Proxy pour générer les requêtes HTTP). Avant la valeur par défaut, c'était HTTP Java Sampler
  • Bogue 53934 - Supprime les options d'usurpation HTTPS dans JMeter HTTP Proxy Server. Depuis JMeter 2.4, le protocole HTTPS est directement supporté par le proxy

Autres échantillonneurs

  • Bogue 55310 - TestAction doit implémenter Interruptible
  • Bogue 53318 - Ajouter un filtre d'URL intégré au contrôle des valeurs par défaut des requêtes HTTP
  • Bogue 53782 - Amélioration de la gestion JavaSampler du nettoyage JavaSamplerClient pour utiliser moins de mémoire
  • Bogue 53168 - Processus du système d'exploitation - autoriser la spécification de stdout/stderr/stdin
  • Bogue 53844 - Les éléments liés à JDBC doivent vérifier la classe du nom de la variable censée contenir la configuration de la connexion JDBC pour éviter ClassCastException

Contrôleurs

  • Bogue 53671 - Le groupe de threads tearDown s'exécute même si le test d'arrêt se produit

Les auditeurs

  • Bogue 53566 - Ne consigne pas les réponses partielles dans le journal jmeter
  • Bug 53716 - Petites améliorations du graphique agrégé : la légende à gauche ou à droite est maintenant sur 1 colonne (au lieu d'1 grande ligne), pas de bordure à la couleur du carré de la référence, réduit la largeur sur certains champs
  • Bug 53718 - Ajout d'un nouveau visualiseur 'Response Time Graph' pour dessiner un graphique linéaire montrant l'évolution du temps de réponse pour un test
  • Bogue 53738 - Gardez une trace du nombre de threads démarrés et terminés
  • Bug 53753 - Summariser : inutile d'afficher le temps fractionnaire dans la plupart des cas
  • Bogue 53749 - L'interface TestListener pourrait peut-être être divisée. Cela devrait réduire les besoins en mémoire et le traitement par thread, car seuls les éléments de test qui utilisent réellement la fonctionnalité testIterationStart doivent désormais être gérés.
  • Bogue 53941 - Ajout d'une latence à l'écouteur de la table Afficher les résultats

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 53755 - Ajout d'une implémentation de cookie HttpClient 4 dans JMeter. Cookie Manager a maintenant l'implémentation HC3.1 par défaut et une nouvelle implémentation HC4 (conforme à l'adresse IPv6)

Les fonctions

  • Bug 51527 - Fonction __time() : ajoute une autre option à __time() pour fournir *secondes* depuis l'époque

I18N

Général

  • Bogue 53364 - Trier la liste des fonctions dans la boîte de dialogue Function Helper
  • Bogue 53418 - Nouvelle option "Retarder la création de threads jusqu'à ce que nécessaire" qui créera et démarrera des threads en cas de besoin au lieu de les créer au démarrage du test
  • Bogue 42245 - Afficher des mots de passe clairs dans le gestionnaire d'autorisations HTTP
  • Bogue 53616 - Afficher le titre "Apache JMeter" dans la barre de titre de l'application dans Gnome 3
  • Bogue 53759 - ClientJMeterEngine effectue une traversée inutile à l'aide de SearchByClass(TestListener)
  • Bogue 52601 - CTRL + F pour la nouvelle fonctionnalité de recherche
  • Bogue 53796 - TestCompiler utilise un ensemble statique qui peut devenir énorme
  • Bogue 53673 - Ajout de la version de JMeter dans le fichier jmx
  • Ajout de la prise en charge de HeapDump au client JMeter non-GUI et GUI
  • Bogue 53862 - Ce serait bien d'avoir la version JMeter disponible en tant que propriété
  • Bogue 53806 - FileServer doit fournir une analyse thread-safe
  • Bogue 53807 - L'ensemble de données CSV ne gère pas les nouvelles lignes intégrées dans les données entre guillemets
  • Bug 53879 - GUI : Autoriser la fermeture des Popups avec la touche ESC
  • Bogue 53876 - Autoriser le collage des filtres d'URL (proxy HTTP) à partir du presse-papiers

Changements non fonctionnels

  • Bogue 53311 - JMeterUtils#runSafe ne doit pas générer d'erreur lorsqu'il est interrompu
  • Mise à jour vers commons-net-3.1 (à partir de 3.0.1)
  • Mise à jour vers HttpComponents Core 4.2.2 (à partir de 4.1.4) et HttpComponents Client 4.2.1 (à partir de 4.1.3)
  • Bogue 53765 - Passer à commons-lang3-3.1
  • Bogue 53884 - ID de groupe Maven incorrect pour commons-lang

Version 2.7

Nouveau et remarquable

Échantillonneur de processus de système d'exploitation

Un nouvel échantillonneur système qui peut être utilisé pour exécuter des commandes sur la machine locale.

Exemple de résultats de l'échantillonneur de processus du système d'exploitation avec la commande de recherche DNS "dig"

Améliorations des échantillonneurs JMS

Ajout d'une option "Distribution non persistante" pour envoyer "Non persistant" (garanti d'être livré au plus une fois. La perte de message n'est pas un problème.) Messages JMS

Prise en charge de l'envoi de messages d'objets JMS pour permettre l'envoi d'objets non triés à partir de XML par XStream

Activer la définition des propriétés JMS via l'échantillonneur JMS Publisher

Échantillonneur d'action de test

Autoriser la sortie prématurée d'une boucle

Améliorations de l'échantillonneur de service Web

Ajoutez une propriété jmeter soap.document_cache pour contrôler la taille du cache de documents

Rendre Configurable la session HTTP

Graphique agrégé : histogramme groupé avec colonnes moyenne, médiane, ligne à 90 %, min et max

Modifications du graphique agrégé dans le graphique à barres groupées, ajout de colonnes (médiane, ligne à 90 %, min, max) et d'options, correction de quelques bogues

Nouveaux paramètres pour le graphique agrégé

Améliorations de la conception du rapport HTML généré par la tâche JMeter Ant dans le dossier extras

Exemple de rapport HTML

Exemple de rapport HTML avec quelques erreurs d'assertion

Visualiseur de courrier

  • Activer l'authentification et la sécurité de connexion avec SSL ou TLS
  • Améliorer la conception de l'interface graphique
  • Ajouter la prise en charge de l'internationalisation (i18n)

Nouvel indicateur visuel du nombre de messages ERROR/FATAL dans les journaux

L'indicateur affiche le nombre de messages ERROR/FATAL dans les journaux, il peut être cliqué pour basculer le panneau Log Viewer

Boîte de dialogue pour afficher le détail d'une ligne de paramètre

Ajouter un bouton de détail sur le tableau des paramètres pour afficher les détails d'une ligne

Exemple de boîte de détail

Écrivains de plugins

La nouvelle interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator a été introduite pour indiquer si un ConfigTestElement peut être fusionné dans Sampler (voir Bug 53042 ) :

booléen public s'applique (ConfigTestElement configElement);

Nouvelle interface org.apache.jmeter.protocol.http.proxy.SamplerCreator pour permettre de brancher des échantillonneurs basés sur HTTP qui diffèrent des échantillonneurs HTTP par défaut via Proxy pendant la phase d'enregistrement (voir bogue 52674 ) :

chaîne publique[] getManagedContentTypes();
public HTTPSamplerBase createSampler (requête HttpRequestHdr, Map<String, String> pageEncodings, Map<String, String> formEncodings);
public void populateSampler (échantillonneur HTTPSamplerBase, requête HttpRequestHdr, Map<String, String> pageEncodings, Map<String, String> formEncodings) lance une exception ;

Bogues connus

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

Les écouteurs n'affichent pas le nombre d'itérations lorsqu'un contrôleur If a une condition qui est toujours fausse à partir de la première itération (voir bug 52496 ). Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).

Modifications incompatibles

Lors du remplacement des variables définies par l'utilisateur, Proxy ne remplacera plus les valeurs partielles lorsque "Regexp matching" est utilisé. Il utilisera la correspondance de 5 mots Perl ("\b")

Dans les variables définies par l'utilisateur, le plan de test, le tableau des arguments de l'échantillonneur HTTP, les valeurs par défaut de la demande Java, l'échantillonneur et l'éditeur JMS, les valeurs par défaut de la demande LDAP et les valeurs par défaut de la demande étendue LDAP, les lignes avec un nom et une valeur vides ne sont plus enregistrées.

JMeter développe maintenant l'arborescence du plan de test au niveau du plan de test et pas plus loin et sélectionne la racine de l'arborescence. De plus, la valeur par défaut de onload.expandtree est false.

Graph Full Results Listener a été supprimé.

Lors de l'appel de la commande "Effacer tout", si Log Viewer est affiché, son contenu sera effacé.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 52613 - En utilisant l'option Raw Post Body, le texte est encodé
  • Bogue 52781 - L'en-tête Content-Disposition est brouillé même si les en-têtes compatibles avec le navigateur sont cochés (HC4)
  • Bogue 52796 - MonitorHandler ne parvient pas à effacer les variables lors du démarrage d'une nouvelle analyse
  • Bogue 52871 - Plusieurs certificats ne fonctionnent pas avec HTTP Client 4
  • Bug 52885 - Proxy : Problèmes d'enregistrement avec HTTPS, les cookies commençant par secure sont en partie tronqués
  • Bug 52886 - Proxy : Problèmes d'enregistrement avec HTTPS lorsque l'usurpation d'identité est activée, les cookies sécurisés ne sont pas toujours modifiés
  • Bogue 52897 - HTTPSampler : l'utilisation de la méthode PUT avec HTTPClient4 et l'encodage de contenu vide et l'envoi de fichiers entraînent NullPointerException
  • Bogue 53145 - Échantillonneur HTTP - la fonction dans le chemin est évaluée trop tôt

Autres échantillonneurs

  • Bogue 51737 - TCPSampler : le paquet est converti/corrompu
  • Bogue 52868 - La liste des langues BSF doit être triée
  • Bogue 52869 - La liste de langues JSR223 utilise actuellement la liste BSF qui est incorrecte
  • Bug 52932 - JDBC Sampler : Sampler n'est pas marqué en erreur dans une exception qui n'est pas de classe IOException, SQLException, IOException se produit
  • Bogue 52916 - Exception JDBC s'il existe une variable définie par l'utilisateur vide
  • Bogue 52937 - Échantillonneur de service Web : vider le cache des documents Soap à la fin du test
  • Bogue 53027 - JMeter commence à lancer des exceptions lors de l'utilisation de l'exemple SMTP dans un plan de test avec HTTP Cookie Mngr ou HTTP Request Defaults
  • Bogue 53072 - Les instructions JDBC PREPARED SELECT doivent renvoyer des résultats dans des variables telles que SELECT non préparé

Contrôleurs

  • Bogue 52968 - L'option Démarrer la boucle suivante dans le groupe de threads ne marque pas l'échantillonneur de transaction parent en erreur lorsqu'une erreur se produit
  • Bogue 50898 - IncludeController : NullPointerException charge le script en mode non graphique si les Includers utilisent le même nom d'élément

Les auditeurs

  • Bogue 43450 - Les auditeurs/économiseurs supposent que le nombre de SampleResult est toujours 1 ; fixe Générer des résultats récapitulatifs

Assertions

Les fonctions

I18N

  • Bogue 52551 - La boîte de dialogue Function Helper ne change pas correctement de langue
  • Bogue 52552 - La référence d'aide ne fonctionne qu'en anglais

Général

  • Bogue 52639 - Le séparateur JSplitPane pour le panneau de journal doit être masqué si le journal n'est pas activé
  • Bogue 52672 - L'action Modifier le contrôleur supprime tous les échantillonneurs enfants sauf un
  • Bogue 52694 - Interblocage dans l'interface graphique lié à la mise à jour de l'interface graphique non AWT Threads
  • Bogue 52678 - Proxy : lors du remplacement de UserDefinedVariables, les valeurs partielles ne doivent pas être remplacées
  • Bogue 52728 - L'élément de configuration de l'ensemble de données CSV ne peut pas coexister avec l'échantillonneur BSF dans le même plan de thread
  • Bogue 52762 - Problème avec plusieurs certificats : premier index non utilisé tant que les index ne sont pas redémarrés
  • Bogue 52741 - Les valeurs par défaut de TestBeanGUI ne fonctionnent pas la deuxième fois ou plus tard
  • Bogue 52783 - La propriété oro.patterncache.size n'est jamais utilisée en raison d'une initialisation précoce
  • Bogue 52789 - Le proxy avec correspondance d'expression régulière peut échouer avec NullPointerException dans le remplacement de valeur si la valeur est nulle
  • Bogue 52645 - L'enregistrement avec Proxy conduit à OutOfMemory
  • Bogue 52679 - Les colonnes des paramètres utilisateur sont étroites
  • Bogue 52843 - L'échantillon headerSize et bodySize ne sont pas accumulés pour les sous-échantillons
  • Bogue 52967 - La fonction __P() ne pouvait pas utiliser la valeur par défaut lors de l'exécution avec un serveur distant en mode GUI.
  • Bogue 50799 - Avoir un échantillonneur non-HTTP dans un plan de test http empêche plusieurs gestionnaires d'en-tête de fonctionner
  • Bogue 52997 - JMeter ne doit pas se fermer sans enregistrer le plan de test si l'enregistrement avant la sortie échoue
  • Bug 53136 - Attraper un jetable doit être manipulé avec précaution

Améliorations

Échantillonneurs HTTP

Autres échantillonneurs

  • Bogue 52775 - Éditeur JMS : ajouter l'option de livraison non persistante
  • Bogue 52810 - Activer la définition des propriétés JMS via l'échantillonneur JMS Publisher
  • Bogue 52938 - Échantillonneur de service Web : ajoutez une propriété jmeter soap.document_cache pour contrôler la taille du cache de documents
  • Bogue 52939 - Échantillonneur de service Web : rendre la fonction MaintainSession configurable
  • Bogue 53073 - Permet d'affecter le résultat OUT d'un JDBC CALLABLE aux variables JMeter
  • Bogue 53164 - Nouvel échantillonneur système
  • Bogue 53172 - Échantillonneur de processus du système d'exploitation - permet la spécification de variables d'environnement
  • Bogue 52936 - JMS Publisher : prise en charge de l'envoi de messages d'objet JMS

Contrôleurs

Les auditeurs

  • Bogue 52603 - MailerVisualizer : Activer SSL, TLS et l'authentification
  • Bogue 52698 - Suppression de l'écouteur des résultats complets du graphique
  • Bogue 53070 - Modification du graphique agrégé en graphique à barres groupées, ajout de colonnes (médiane, ligne à 90 %, min, max) et d'options, correction de quelques bogues
  • Bogue 53246 - Mailer Visualizer : améliore la conception de l'interface graphique et I18N

Minuteries, assertions, configuration, pré- et post-processeurs

Les fonctions

I18N

  • Mailer Visualizer a été internationalisé. Traduction française ajoutée. (voir bogue 53246 )

Général

  • Bug 45839 - Action de test : Autoriser la sortie prématurée d'une boucle
  • Bogue 52614 - MailerModel.sendMail a une étrange façon de calculer le paramètre de débogage
  • Bogue 52782 - Ajout d'un bouton de détail sur le tableau des paramètres pour afficher le détail d'une ligne
  • Bogue 52674 - Proxy : Ajout d'un créateur d'échantillons pour permettre de brancher des échantillonneurs basés sur HTTP à l'aide d'un corps POST potentiellement non textuel (AMF, Silverlight, …) et de les personnaliser pour les autres
  • Bogue 52934 - GUI : Ouvrez le plan de test avec l'arborescence développée au niveau du plan de test et pas plus loin et sélectionnez la racine de l'arborescence
  • Bogue 52941 - Améliorations de la conception des rapports HTML générés par la tâche supplémentaire JMeter Ant
  • Bogue 53042 - Introduction d'une nouvelle méthode dans l'interface Sampler pour permettre à Sampler de décider si un élément de configuration s'applique à Sampler
  • Bug 52771 - Documentation : Ajout du flux RSS sur la page d'accueil de JMeter sous le lien "S'abonner aux nouveautés"
  • Bogue 42784 - Afficher le nombre d'erreurs enregistrées dans l'interface graphique
  • Bogue 53256 - La commande Effacer tout nettoie le contenu de LogViewer
  • Bogue 53261 - Ajouter un compteur "Erreur/fatal" dans le bogue 42784 ouvrir le panneau de la visionneuse de journaux lorsque l'indicateur d'avertissement est cliqué

Changements non fonctionnels

  • Mise à niveau vers rhino 1.7R3 (était js-1.7R2.jar). Remarque : les coordonnées Maven du pot ont été modifiées de rhino:js à org.mozilla:rhino. Cela n'affecte pas directement JMeter, mais peut causer des problèmes si vous utilisez JMeter dans un projet Maven avec un autre code qui dépend d'une version antérieure du jar Javascript de Rhino.
  • Bogue 52675 - Refactor Proxy et HttpRequestHdr pour permettre la création d'échantillonneurs par proxy
  • Bogue 52680 - Mentionnez la version dans laquelle la fonction a été introduite
  • Bug 52788 - HttpRequestHdr : Optimiser le code pour éviter un travail inutile
  • La tâche JMeter Ant (ant-jmeter-1.1.1.jar) a été mise à niveau de 1.0.9 à 1.1.1
  • Mise à jour vers commons-io 2.2 (à partir de 2.1)
  • Bogue 53129 - Mise à niveau de XStream de 1.3.1 à 1.4.2
  • Mise à jour vers httpcomponents-client 4.1.3 (à partir de 4.1.2)
  • Mise à jour du guide de test distribué JMeter (jmeter_distributed_testing_step_by_step.pdf). Change le format source en OpenOffice odt (à partir de sxw)

Variante 2.6

Nouveau et remarquable

Barre d'outils

Une nouvelle barre d'outils sur la fenêtre principale de JMeter

Bouton de test de démarrage JMeter

Une nouvelle option de menu et un nouveau bouton permettent de démarrer un test en ignorant les minuteurs de pause

Apparence et convivialité de l'interface graphique JMeter

Autoriser le système ou CrossPlatform LAF à définir à partir du menu des options

JMeter GUI - nœud en double

Ajouter "nœud dupliqué" dans le menu contextuel

Arborescence JMeter - fonction de recherche

Fonctionnalité de recherche par mot-clé dans l'arborescence des échantillonneurs

Requête HTTP - volet de requête brute

Amélioration de l'interface graphique des requêtes HTTP pour mieux afficher les paramètres sans nom (requête GWT RPC ou requête SOAP par exemple)

Requête HTTP - autres modifications

  • Autoriser la sélection multiple dans le panneau des arguments
  • Permet d'ajouter (coller) des entrées du presse-papiers à une liste d'arguments
  • Possibilité de déplacer des variables vers le haut ou vers le bas dans la requête HTTP

Requête HTTP - protocole de fichier

Meilleure prise en charge des fichiers : protocole dans l'échantillonneur HTTP

Récupérer les ressources intégrées avec le fichier : protocole

Requête HTTP - Ignorer les ressources intégrées a échoué

Activer "ignorer l'échec" pour les ressources intégrées

La réussite du parent avec une ressource intégrée a échoué

Afficher les résultats dans le tableau - affichage de l'échantillon enfant

Ajouter une option à TableVisualiser pour afficher les échantillons enfants au lieu du parent

Key Store - plusieurs certificats

Autoriser plusieurs certificats (JKS)

Améliorations des graphiques agrégés

Quelques améliorations sur Aggregate Graph Listener :

  • nouvelle interface graphique pour les paramètres
  • taille de graphique dynamique
  • permettre de changer les polices pour le graphique de titre et la légende
  • permettre de changer la couleur de la barre (valeurs d'arrière-plan et de texte)
  • permettent de tracer ou non les contours des barres
  • permet de ne sélectionner que certains échantillonneurs par un filtre regexp
  • permet de définir l'échelle maximale de l'axe Y

Barre de graphique agrégé

Compteur - nouvelle option de réinitialisation

Ajouter une option pour réinitialiser le compteur à chaque itération du groupe de threads

Les fonctions

  • Ajouter une nouvelle fonction __RandomString pour générer des chaînes aléatoires
  • Ajouter une nouvelle fonction __TestPlanName renvoyant le nom du "Plan de test" actuel
  • Ajouter une nouvelle fonction __machineIP renvoyant l'adresse IP
  • Ajouter une nouvelle fonction __jexl2 pour supporter Jexl2

Améliorations des variables définies par l'utilisateur

  • Ajouter un champ de commentaire dans les variables définies par l'utilisateur
  • Permet d'ajouter (coller) des entrées du presse-papiers à une liste d'arguments
  • Possibilité de déplacer vers le haut ou vers le bas des variables dans les variables définies par l'utilisateur

Afficher l'arborescence des résultats

Dans Afficher l'arborescence des résultats plutôt que d'afficher uniquement un message si les résultats sont trop importants, affichez autant de résultats que ceux configurés

Contrôleurs - modifier les éléments

Ajouter la possibilité de modifier les éléments du contrôleur

Pré- et post-processeur JDBC

Ajouter un pré- et post-processeur JDBC

Option d'isolement des transactions JDBC

Autoriser à définir l'isolation des transactions dans la configuration de la connexion JDBC

Minuterie de Poisson

Ajouter une minuterie basée sur Poisson

Interaction entre l'interface graphique et le système d'exploitation

Prise en charge du glisser-déposer de fichiers.

Boîte de dialogue Confirmer la suppression

Ajouter une boîte de dialogue pour confirmer la suppression du ou des éléments lorsque l'action de suppression est appelée

Le dialogue peut être ignoré en définissant la propriété JMeter confirm.delete.skip=true

Prise en charge des lots à distance

Utiliser un magasin externe pour conserver les échantillons pendant les tests distribués, expéditeur d'échantillons à distance DiskStore ajouté : comme Hold, mais enregistre les échantillons sur le disque jusqu'à la fin du test

Échantillonneur d'abonnés JMS

Avec l'abonné JMS, possibilité d'utiliser des sélecteurs

Nouveau panneau de l'enregistreur

Une nouvelle visionneuse de journal a été ajoutée à l'interface graphique et peut être activée à partir du menu Options → Visionneuse de journal :

Cette visionneuse de journaux affiche le fichier jmeter.log et est utile (par exemple) pour déboguer les scripts BeanShell/BSF :

L'élément de menu Options / Choisir la langue est maintenant entièrement fonctionnel

L'élément de menu Options / Choisir la langue change maintenant tout le texte affiché dans la nouvelle langue à condition que tous les messages soient traduits. Vous pouvez aider à ce sujet en traduisant dans votre langue.

Prise en charge des anciens formats JMX et JTL Avalon restaurée

La prise en charge de la lecture/écriture du format XML Avalon original des fichiers JMX (script) et JTL (exemple de résultat) a été abandonnée dans la version 2.4 de JMeter. JMeter peut maintenant lire à nouveau les fichiers au format Avalon, mais l'enregistrement des fichiers dans l'ancien format n'est pas pris en charge.

Jars JMeter disponibles dans le référentiel Maven

Les jars JMeter sont désormais disponibles à partir du référentiel Maven.

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique (voir bogues 40671, 41286, 44973, 50898). En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

Les écouteurs n'affichent pas le nombre d'itérations lorsqu'un contrôleur If a une condition qui est toujours fausse à partir de la première itération (voir bug 52496 ). Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).

Modifications incompatibles

Les versions de JMeter depuis 2.1 n'ont pas réussi à créer un échantillon de conteneur lors du chargement des ressources intégrées. Cela a été corrigé; pouvez toujours revenir au comportement du bogue 51939 en définissant la propriété suivante : httpsampler.separate.container=false

Le serveur miroir utilise maintenant le port par défaut 8081, était 8080 avant 2.5.1.

TCP Sampler gère SocketTimeoutException, SocketException et InterruptedIOException différemment depuis 2.6, lorsque cela se produit, Sampler est marqué comme ayant échoué.

Les implémentations de Sample Sender résolvent désormais leur configuration côté client depuis la version 2.6. Ce comportement peut être modifié avec la propriété sample_sender_client_configured (définissez-la sur false).

L'élément de test HTTP User Parameter Modifier a été supprimé ; il a été déprécié pendant longtemps.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 51932 - CacheManager ne gère pas l'en-tête de contrôle du cache avec des attributs après max-age
  • Bogue 51918 - Le trafic compressé GZIP génère des erreurs lorsque plusieurs connexions sont autorisées
  • Bogue 51939 - Devrait générer un nouvel échantillon parent si nécessaire lors de la récupération des ressources intégrées
  • Bogue 51942 - Problème de synchronisation sur CacheManager lorsque le téléchargement simultané est utilisé
  • Bogue 51957 - L'obtention simultanée peut se bloquer si une tâche ne se termine pas
  • Bogue 51925 - L'appel de Stop on Test entraîne une fuite des threads de l'exécuteur lorsque le téléchargement simultané de ressources est activé
  • Bogue 51980 - HtmlParserHTMLParser compte deux fois les images utilisées dans les liens
  • Bogue 52064 - Risque de mémoire insuffisante dans CacheManager
  • Bogue 51919 - Random ConcurrentModificationException ou NoSuchElementException dans CookieManager#removeMatchingCookies lors de l'utilisation du téléchargement simultané
  • Bogue 52126 - HttpClient4 n'efface pas les cookies entre les itérations
  • Bogue 52129 - La taille du corps signalée est incorrecte lors de l'utilisation du client HTTP 4 et de la connexion Keep Alive
  • Bogue 52137 - Problèmes avec le gestionnaire de cache HTTP
  • Bogue 52221 - Exception Nullpointer avec utilisation de la ressource intégrée sans HTTP Cache Manager
  • Bogue 52310 - la variable dans IPSource a échoué dans la requête HTTP si "Taille du pool simultané" est activé
  • Bogue 52371 - Incompatibilité API - Les méthodes dans HTTPSampler2 nécessitent désormais PostMethod au lieu de HttpMethod[Base]. Retour aux types d'origine.
  • Bug 49950 - Proxy : IndexOutOfBoundsException lors de l'enregistrement avec le serveur Proxy
  • Bogue 52409 - HttpSamplerBase#errorResult modifie sampleResult passé en paramètre ; code fixe qui suppose qu'une nouvelle instance est créée (c'est-à-dire lors de l'ajout d'un sous-échantillon)
  • Bogue 52507 - Modificateur de suppression des paramètres utilisateur Http (obsolète, obsolète)

Autres échantillonneurs

  • Bogue 51996 - Le contexte initial JMS fuit le contexte nouvellement créé lorsque plusieurs threads entrent InitialContextFactory#lookupContext en même temps
  • Bogue 51691 - L'autorisation ne fonctionne pas pour JMS Publisher et JMS Subscriber
  • Bogue 52036 - L'abonnement durable échoue avec ActiveMQ en raison d'un champ clientId manquant
  • Bogue 52044 - L'abonné JMS utilisé avec de nombreux threads conduit à javax.naming.NamingException : quelque chose est déjà lié à ActiveMQ
  • Bogue 52072 - LengthPrefixedBinaryTcpClientImpl peut terminer prématurément un échantillon
  • Bogue 52390 - AbstractJDBCTestElement : fuite de mémoire et problème de synchronisation dans perConnCache

Contrôleurs

  • Bogue 51865 - La boucle infinie à l'intérieur du groupe de threads ne fonctionne pas correctement si l'option "Démarrer la boucle suivante après une erreur d'échantillon" est définie
  • Bogue 51868 - Beaucoup d'exceptions dans jmeter.log lors de l'utilisation de l'option "Démarrer la boucle suivante" pour le thread
  • Bogue 51866 - Le compteur sous la boucle ne fonctionne pas correctement si l'option "Démarrer la boucle suivante en cas d'erreur" est définie pour le groupe de threads
  • Bogue 52296 - TransactionController + enfants ThrouputController ou InterleaveController entraînent une ERREUR sampleEnd appelé deux fois java.lang.Throwable : séquence d'appel non valide lorsque TPC n'exécute pas l'échantillon
  • Bogue 52330 - Avec next-Loop-On-Error après que les échantillons d'erreur ne soient pas exécutés dans la boucle suivante

Les auditeurs

  • Bogue 52357 - Afficher les résultats dans le tableau n'autorise pas plusieurs échantillons de résultats
  • Bogue 52491 - Analyse incorrecte des paramètres de données Post dans la vue Tree Listener / Http Request

Assertions

  • Bogue 52519 - XMLSchemaAssertion utilise JMeter JVM file.encoding au lieu de l'encodage de réponse

Les fonctions

  • L'exemple CRLF pour la fonction char était erroné ; CRLF=(0xD,0xA), pas (0xC,0xA)

I18N

Général

  • Bogue 51937 - JMeter ne gère pas correctement l'entrée TestPlan manquante
  • Bogue 51988 - La configuration de l'ensemble de données CSV ne résout pas le délimiteur par défaut pour l'analyse d'en-tête lorsque le champ de variables est vide
  • Bogue 52003 - Afficher l'arborescence des résultats "Défiler automatiquement" ne défile pas correctement lorsque les nœuds sont développés
  • Bogue 27112 - Les paramètres utilisateur doivent utiliser des barres de défilement
  • Bogue 52029 - L'arrêt de la ligne de commande n'est envoyé qu'au dernier moteur qui a été démarré
  • Bogue 52093 - Les info-bulles de la barre d'outils ne changent pas de langue
  • Bogue 51733 - SyncTimer est foiré si vous interrompez un plan de test
  • Bug 52118 - Nouvelle barre d'outils : les boutons d'arrêt et d'arrêt ne sont pas désactivés lorsqu'aucun test n'est en cours
  • Bogue 52125 - StatCalculator.addAll(StatCalculator calc) se joint incorrectement s'il y a plus d'échantillons avec le même temps de réponse dans l'un des TreeMap
  • Bogue 52339 - Le mode statistique de JMeter dans les tests distribués affiche un temps de réponse incorrect
  • Bogue 52215 - Synchronisation déroutante dans StatVisualizer, SummaryReport, Summariser et problème dans StatGraphVisualizer
  • Bug 52216 - TableVisualizer : le champ currentData est mal synchronisé
  • Bug 52217 - ViewResultsFullVisualizer : Problèmes de synchronisation sur root et treeModel
  • Bogue 43294 - Problèmes d'espace de noms XPath Extractor
  • Bogue 52224 - TestBeanHelper ne prend pas en charge NOT_UNDEFINED == Boolean.FALSE
  • Bug 52279 - Le passage à une autre langue perd les icônes dans l'arborescence et enregistre l'erreur Impossible d'obtenir la classe GUI de…
  • Bogue 52280 - L'élément de menu Options / Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue
  • Bogue 52376 - StatCalculator#addValue(T val, int sampleCount) doit utiliser long, pas int
  • Bogue 49374 - L'encodage des URL des éléments intégrés dépend de la propriété file.encoding
  • Bogue 52399 - URLRewritingModifier utilise le file.encoding par défaut pour faire correspondre le contenu du texte
  • Bogue 50438 - le code calcule la moyenne avec des nombres entiers, en attendant une valeur double
  • Bogue 52469 - Modifications de la prise en charge de la tunnellisation SSH du trafic RMI pour les tests à distance
  • Bogue 52466 - Fonctionnalité de plan de test de mise à niveau : NameUpdater ne met pas à niveau les propriétés
  • Bogue 52503 - Unifier le fichier → Fermer et fermer la fenêtre comportement d'enregistrement de fichier
  • Bogue 52537 - L'aide ne défile pas pour corriger l'ancre lors du premier chargement du fichier

Améliorations

Échantillonneurs HTTP

  • Bogue 51981 - Meilleure prise en charge du fichier : protocole dans l'échantillonneur HTTP
  • Bogue 52033 - Autoriser plusieurs certificats (JKS)
  • Bug 52352 - Proxy : prise en charge de la capture d'URL IPv6
  • Bogue 44301 - Activer "ignorer l'échec" pour les ressources intégrées

Autres échantillonneurs

  • Bogue 51419 - Abonné JMS : possibilité d'utiliser des sélecteurs
  • Bug 52088 - JMS Sampler : Ajout d'un sélecteur lorsque REQUEST / RESPONSE est choisi
  • Bogue 52104 - TCP Sampler gère mal les erreurs
  • Bogue 52087 - L'interface TCPClient n'autorise pas les lectures partielles
  • Bogue 52115 - SOAP/XML-RPC ne doit pas envoyer de requête POST lorsque le fichier à envoyer est introuvable
  • Bogue 40750 - TCPSampler : Comportement lorsque les sockets sont fermés par l'hôte distant
  • Bogue 52396 - L'échantillonneur TCP en "mode de connexion réutilisée" réutilise la connexion de l'échantillonneur précédent même s'il est configuré avec un autre hôte, port, utilisateur ou mot de passe
  • Bogue 52048 - BSFSampler, BSFPreProcessor et BSFPostProcessor doivent partager la même interface graphique

Contrôleurs

Les auditeurs

  • Bogue 52022 - Dans Afficher l'arborescence des résultats plutôt que d'afficher uniquement un message si les résultats sont trop volumineux, affichez autant de résultats que ceux configurés
  • Bogue 52201 - Ajout d'une option à TableVisualiser pour afficher les échantillons enfants au lieu du parent
  • Bogue 52214 - Enregistrer les réponses dans un fichier - améliorer l'algorithme de dénomination
  • Bogue 52340 - Autoriser le changement du mode d'échantillonnage à distance lors de l'exécution
  • Bogue 52452 - Améliorations sur Aggregate Graph Listener (GUI et paramètres)
  • OldSaveService ressuscité pour permettre la lecture des fichiers JTL (résultats) au format Avalon

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 52128 - Ajout d'un pré- et post-processeur JDBC
  • Bug 52183 - SyncTimer pourrait être amélioré (performance + fiabilité)
  • Bug 52317 - Compteur : Ajout d'une option pour réinitialiser le compteur à chaque itération du groupe de threads
  • Bogue 37073 - Ajouter une minuterie basée sur Poisson
  • Bogue 52497 - Amélioration de DebugSampler et DebugPostProcessor

Les fonctions

  • Bug 52006 - Créer une fonction RandomString pour générer des chaînes aléatoires
  • Bug 52016 - Il serait utile de supporter Jexl2
  • La fonction __char() prend désormais en charge les valeurs octales
  • Nouvelle fonction __machineIP renvoyant l'adresse IP
  • Bug 51091 - Nouvelle fonction renvoyant le nom du "Plan de test" actuel

I18N

Général

  • Bogue 51892 - Le port miroir par défaut doit être différent du port proxy par défaut
  • Bogue 51817 - Déplacement des variables vers le haut et vers le bas dans le contrôle Variables définies par l'utilisateur
  • Bug 51876 - Fonctionnalité de recherche dans Samplers TreeView
  • Bogue 52019 - Ajouter une option de menu pour démarrer un test en ignorant les minuteurs de pause
  • Bogue 52027 - Autoriser le système ou CrossPlatform LAF à être défini à partir du menu des options
  • Bogue 52037 - Se souvenir de LaF défini par l'utilisateur lors des redémarrages.
  • Bug 51861 - Amélioration de l'interface graphique des requêtes HTTP pour mieux afficher les paramètres sans nom (requêtes GWT RPC par exemple) (EN COURS DE DÉVELOPPEMENT)
  • Bug 52040 - Ajouter une barre d'outils dans la fenêtre principale de JMeter
  • Bogue 51816 - Champ de commentaire dans le contrôle Variables définies par l'utilisateur.
  • Bogue 52052 - Utilisation d'un délimiteur pour séparer les messages de résultat pour l'abonné JMS
  • Bogue 52103 - Ajout d'une option de défilement automatique au visualiseur de tableau
  • Bogue 52097 - Enregistrer sous doit pointer vers le même dossier que celui utilisé pour ouvrir un fichier si la liste MRU est utilisée
  • Bogue 52085 - Autoriser la sélection multiple dans le panneau des arguments
  • Bogue 52099 - Autoriser la définition de l'isolation des transactions dans la configuration de la connexion JDBC
  • Bogue 52116 - Permet d'ajouter (coller) des entrées du presse-papiers à une liste d'arguments
  • Bogue 52160 - Ne pas afficher les éléments TestBeanGui marqués comme masqués
  • Bogue 51886 - Configuration de SampleSender résolue en partie sur le client et en partie sur le serveur
  • Bogue 52161 - Autorise les plugins à ajouter leurs propres règles de traduction en plus de upgrade.properties. Charge toutes les propriétés supplémentaires trouvées dans les fichiers META-INF/resources/org.apache.jmeter.nameupdater.properties
  • Bogue 42538 - Ajout de "nœud dupliqué" dans le menu contextuel
  • Bogue 46921 - Ajout de la possibilité de modifier les éléments du contrôleur
  • Bogue 52240 - TestBeans doit prendre en charge Boolean, Integer et Long
  • Bogue 52241 - GenericTestBeanCustomizer suppose que la valeur par défaut est la chaîne vide
  • Bogue 52242 - FileEditor n'autorise pas l'enregistrement de la sortie dans un fichier
  • Bug 51093 - lors du chargement d'une sélection précédemment stockée par "Enregistrer la sélection sous", affiche le nom du fichier dans la barre de fenêtre bleue
  • Bogue 50086 - Champs de mot de passe non masqués dans JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler et Database Configuration
  • Bogue 29352 - Utiliser un magasin externe pour conserver les échantillons pendant les tests distribués, Ajout de l'expéditeur d'échantillons à distance DiskStore : comme Hold, mais enregistre les échantillons sur le disque jusqu'à la fin du test.
  • Bogue 52333 - Réduction de la surcharge lors du calcul de SampleResult#nanoTimeOffset
  • Bogue 52346 - L'arrêt détecte s'il reste des threads non démons qui empêchent la sortie de la JVM.
  • Bogue 52281 - Prise en charge du glisser-déposer de fichiers
  • Bogue 52471 - Améliorez les performances du serveur miroir en utilisant un pool de threads au lieu de lancer un thread pour chaque requête
  • OldSaveService ressuscité pour permettre la lecture des fichiers JMX au format Avalon (supprimé en 2.4)
  • Ajouter une boîte de dialogue pour confirmer la suppression du ou des éléments lorsque l'action de suppression est appelée
  • Bogue 41788 - Visionneuse de journaux (fenêtre de console) nécessaire en option
  • Ajout d'une option pour modifier le temps de pause (2000 ms par défaut) dans le thread démon qui vérifie la sortie réussie de la JVM. Le thread n'est maintenant démarré que si le temps de pause est supérieur à 0.

Changements non fonctionnels

  • correctifs pour build.xml : prend en charge les scripts ; localiser les noms de propriété réutilisables
  • Bug 51923 - Bug de la fonction compteur ou problème de documentation ? (documents corrigés)
  • Mettre à jour Velocity.jar vers 1.7 (depuis 1.6.2)
  • Mettre à jour js.jar vers 1.7R3 (à partir de 1.6R5)
  • Mise à jour du codec commun 1.5 ⇒ 1.6
  • Mise à jour de commons-io 2.0.1 ⇒ 2.1
  • Mise à jour de commons-jexl 2.0.1 ⇒ 2.1.1
  • Mise à jour jdom 1.1 ⇒ 1.1.2
  • Mise à jour juin 4.9 ⇒ 4.10
  • Bogue 51954 - Les documents générés incluent des entrées </br> qui provoquent des lignes vides supplémentaires
  • Bogue 52075 - JMeterProperty.clone() renvoie actuellement Object ; il devrait retourner JMeterProperty
  • httpcore mis à jour vers 4.1.4
  • Bogue 49753 - Veuillez publier les artefacts jMeter sur le référentiel central Maven

Variante 2.5.1

Résumé des principaux changements

  • L'échantillonneur HttpClient4 réutilise désormais correctement les connexions (auparavant, il en utilisait une par échantillon, ce qui pouvait rapidement épuiser les ressources).
  • Divers correctifs pour les échantillonneurs JMS
  • Les fonctions ne sont plus invoquées par erreur lorsqu'elles sont utilisées avec un élément de configuration
  • L'interface graphique de l'échantillonneur WebService a été réorganisée pour une meilleure conception et une plus grande convivialité. Quelques améliorations sur l'assistant de configuration WSDL
  • Meilleure gestion de l'arrêt du test. System.exit n'est désormais appelé que s'il n'y a pas d'autre option ; même cela peut être désactivé.

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique. En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

Le contrôleur If peut provoquer une boucle infinie si la condition est toujours fausse dès la première itération. Une solution de contournement consiste à ajouter un échantillonneur au même niveau (ou supérieur) au contrôleur If. Par exemple, un échantillonneur d'action de test avec un temps d'attente de 0 (qui ne génère pas d'échantillon) ou un échantillonneur de débogage avec tous les champs définis sur False (pour réduire la taille de l'échantillon).

L'élément de menu Options / Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue. [Le comportement s'est amélioré, mais le changement de langue ne fonctionne toujours pas complètement] Pour remplacer complètement la langue locale par défaut, définissez la propriété JMeter "langue" avant de démarrer JMeter.

Modifications incompatibles

Les échantillonneurs HttpClient4 et Commons HttpClient 3.1 utilisaient auparavant un nombre de tentatives de 3. Cela a été modifié par défaut à 1, pour être compatible avec l'implémentation Java. Le nombre de tentatives peut être remplacé en définissant la propriété JMeter appropriée, par exemple :

httpclient4.retrycount=3
httpclient3.retrycount=3

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Corrigez l'échantillonneur HttpClient 4 afin qu'il réutilise les instances et les connexions HttpClient dans la mesure du possible.
  • Correction temporaire de l'échantillonneur HC4 pour contourner HTTPCLIENT-1120.
  • Bogue 51863 - Beaucoup de connexions ÉTABLIES avec l'implémentation HttpClient 4 (vs HttpClient 3.1 impl)
  • Bogue 51750 - La récupération de toutes les ressources intégrées ne suit pas IFRAME
  • Bogue 51752 - Le cache HTTP est rompu lors de l'utilisation de "Récupérer toutes les ressources intégrées" avec un pool simultané
  • Bogue 39219 - Serveur HTTP : vous ne pouvez pas l'arrêter après Fichier→Ouvrir
  • Bogue 51775 - Numéro de port en double dans l'en-tête Host lors de la capture par HttpClient (3.1 et 4.x)
  • Bogue 50617 - La légende des résultats de surveillance affiche un serveur "mort" bien que les valeurs du serveur soient récupérées

Autres échantillonneurs

  • Bogue 50424 - La liste déroulante des méthodes Web est incohérente
  • Bogue 43293 - Les champs de requête Java ne sont pas effacés lors de la création d'un nouvel échantillonneur
  • Bogue 51830 - Webservice Soap Request déclenche trop de fenêtres contextuelles lorsque l'URL WSDL du service Web est en panne
  • Requête WebService (SOAP) - ajoutez un délai de connexion pour obtenir le wsdl utilisé pour remplir les méthodes Web lorsque le serveur ne répond pas
  • Bogue 51841 - JMS : si une erreur se produit dans le constructeur ou l'éditeur de ReceiveSubscriber, les connexions resteront ouvertes
  • Bogue 51691 - L'autorisation ne fonctionne pas pour JMS Publisher et JMS Subscriber
  • Bogue 51840 - JMS : le cache de InitialContext a quelques problèmes
  • Bogue 47888 - JUnit Sampler réutilise l'objet de test

Contrôleurs

  • Si contrôleur - Correction de deux régressions introduites par le bogue 50032 (voir également le bogue 50618 )
  • If Controller - Attrape une StackOverflowError lorsqu'une condition renvoie toujours false (après au moins une itération avec retour true) Voir Bug 50618
  • Bogue 51869 - Exception NullPointer lors de l'utilisation d'Include Controller

Les auditeurs

Assertions

Les fonctions

  • Bogue 48943 - Les fonctions sont invoquées plusieurs fois lorsqu'elles sont utilisées en combinaison avec un élément de configuration

I18N

  • Requête WebService (SOAP) - ajouter I18N pour certaines étiquettes

Général

  • Bogue 51831 - Impossible de désactiver le serveur UDP ou de modifier le port UDP maximum
  • Bogue 51821 - Ajout d'un raccourci pour activer/désactiver la (sous-)arborescence ou les branches dans le plan de test.
  • Bogue 47921 - Variables non publiées pour GC après la sortie de JMeterThread.
  • Bug 51839 - "… fin d'exécution" imprimé prématurément
  • Bogue 51847 - Certains tests JUnit sont sensibles aux paramètres régionaux et échouent si les paramètres régionaux sont différents des États-Unis
  • Bogue 51855 - Les échantillons parents peuvent avoir des temps écoulés légèrement inexacts
  • Bug 51880 - La commande shutdown ne fonctionne pas si je l'invoque avant que tous les threads ne soient démarrés
  • L'élément de menu de l'hôte Arrêt à distance n'était pas activé.
  • Bogue 51888 - Blocage occasionnel lors de l'arrêt d'un plan de test

Améliorations

Échantillonneurs HTTP

  • Bogue 51380 - Contrôle de la réutilisation du contexte SSL mis en cache d'itération en itération
  • Bogue 51882 - HTTPHC3Client utilise un nombre de tentatives par défaut de 3, rendez-le configurable ; la valeur par défaut est maintenant 1
  • Modifiez le nombre de tentatives par défaut de l'échantillonneur HttpClient 4 sur 1

Autres échantillonneurs

  • Beanshell Sampler prend désormais en charge l'interface interruptible
  • Bogue 51605 - Requête WebService (SOAP) - La valeur du champ WebMethod change subrepticement pour toutes les requêtes lorsqu'une valeur est sélectionnée dans une requête
  • Demande de service Web (SOAP) - Interface graphique réorganisée pour une meilleure conception et une plus grande convivialité

Contrôleurs

Les auditeurs

  • Bogue 42246 - Nécessité d'une option 'auto-scroll' dans "View Results Tree" et "Assertion Results"
  • Afficher l'arborescence des résultats : Regexp Tester - petites améliorations de l'interface utilisateur

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 51885 - Autoriser une variable JMeter comme entrée pour XPathExtractor

Les fonctions

I18N

Général

  • Bogue 51822 - (partie 1) sauvegarde 1 invocation de GuiPackage#getCurrentGui
  • Ajout d'AsynchSampleSender qui envoie des échantillons du serveur au client de manière asynchrone.
  • Mise à niveau vers htmlparser 2.1 ; JavaMail 1.4.4 ; JUnit 4.9

Changements non fonctionnels

  • Bogue 49976 - La visibilité de FormCharSetFinder est par défaut au lieu de publique.
  • Bogue 50917 - La propriété CookieManager.save.cookies n'est pas respectée lorsqu'elle est définie à partir du plan de test
  • Améliorez la journalisation des erreurs lorsque des erreurs Javascript sont détectées.
  • Mise à jour du pied de page de la documentation

Variante 2.5

Résumé des principaux changements

  • L'implémentation HTTP peut désormais être sélectionnée au moment de l'exécution, et JMeter prend désormais également en charge Apache HttpComponents HttpClient 4.x. Notez que Commons HttpClient 3.1 n'est plus activement développé et que le support peut être supprimé de JMeter dans une future version.
  • L'échantillonneur HTTP permet désormais des téléchargements simultanés de ressources intégrées dans une page HTML
  • L'échantillonneur HTTP peut désormais signaler la taille d'une requête avant la décompression.
  • Les échantillonneurs JMS et Mail ont été améliorés.
  • Le nouvel élément de test de fragment de test facilite l'utilisation des contrôleurs Inclure
  • Diverses améliorations ont été apportées à l'écouteur de l'arborescence des résultats d'affichage
  • Bogue 30563 - Le groupe de threads doit avoir une option de démarrage de la boucle suivante sur l'erreur d'échantillon
  • Il existe deux nouveaux types de groupes de threads - setUp et tearDown - qui sont exécutés avant et après les groupes de threads principaux.
  • Le mode client-serveur prend désormais en charge l'arrêt/l'arrêt externe via UDP
    . Plusieurs instances de serveur JMeter peuvent être démarrées sur le même hôte sans avoir à modifier la propriété du port.
  • Bogue 50516 - L'en-tête "Host" dans HTTP Header Manager n'est pas inclus dans la requête HTTP générée

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique. En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

L'élément de menu Options / Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue. [Le comportement s'est amélioré, mais le changement de langue ne fonctionne toujours pas complètement] Pour remplacer complètement la langue locale par défaut, définissez la propriété JMeter "langue" avant de démarrer JMeter.

Modifications incompatibles

Les méthodes non prises en charge ne sont plus converties en GET par l'échantillonneur Commons HttpClient.

Suppression de la méthode public static long currentTimeInMs(). Elle a été remplacée par la méthode d'instance public long currentTimeInMillis().

ProxyControl.getSamplerTypeName() renvoie désormais une chaîne plutôt qu'un int. Ceci est interne au fonctionnement du proxy JMeter et de son interface graphique, il ne devrait donc pas affecter le code utilisateur.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 50178 - HeaderManager ajouté en tant qu'enfant du groupe de threads peut créer des noms HeaderManager concaténés et OutOfMemoryException
  • Bogue 50392 - la valeur est coupée lors de l'envoi de la requête en multipart
  • Bogue 50686 - La journalisation de HeaderManager est trop détaillée lors de la fusion d'instances
  • Bogue 50963 - AjpSampler lève java.lang.StringIndexOutOfBoundsException
  • Bogue 50516 - L'en-tête "Host" dans HTTP Header Manager n'est pas inclus dans la requête HTTP générée
  • Bogue 50544 - Dans Apache Common Log, les requêtes HEAD causent des problèmes.
  • Bogue 51268 - La requête HTTPS via un proxy non valide provoque une exception NullPointerException et ne s'affiche pas dans l'arborescence des résultats. Plutôt que de déléguer au gestionnaire de threads JMeter les échecs "inattendus", assurez-vous que toutes les exceptions génèrent un exemple d'erreur.
  • Bogue 51275 - Le panneau de cookies clearGui() définit une stratégie par défaut incorrecte dans Java 1.6

Autres échantillonneurs

  • Bogue 50173 - JDBCSampler supprime ResultSet d'un PreparedStatement
  • Assurez-vous que JSR223 Sampler a accès au SampleResult actuel
  • Bogue 50977 - Impossible de définir l'échantillonneur TCP pour des échantillons individuels

Contrôleurs

  • Bogue 50032 - Last_Sample_Ok avec d'autres contrôleurs ne fonctionne pas correctement lorsque le groupe de threads a plusieurs boucles
  • Bogue 50080 - Le contrôleur de transaction crée de manière incorrecte des échantillons incluant la durée du minuteur
  • Bug 50134 - TransactionController : signale un mauvais temps de réponse lorsqu'il contient d'autres TransactionControllers

Les auditeurs

  • Bogue 50367 - Effacer / Effacer tout dans l'arborescence des résultats de la vue n'efface pas l'élément sélectionné

Assertions

  • Bug 51488 - Assertion : la portée du nom de variable est partagée entre toutes les assertions (et Bug 51255 )

Les fonctions

  • Bogue 50568 - Fonction __FileToString() : Impossible de lire le fichier lorsque l'option d'encodage est vide/vide

I18N

Général

  • Bogue 49734 - Exception de pointeur nul sur la commande Stop Threads (Exécuter → Arrêter)
  • Bogue 49666 - En-tête CSV lu en tant que données après EOF
  • Bogue 45703 - Minuterie de synchronisation
  • Bogue 50088 - correction de getAvgPageBytes dans SamplingStatCalculator afin qu'il renvoie ce qu'il devrait
  • Bogue 50203 Impossible de définir la propriété "jmeter.save.saveservice.default_delimiter=\t"
  • mirror-server.sh - corrige le chemin de classe à utiliser : séparateur (pas ;)
  • Bogue 50286 - Modificateur de réécriture d'URL : la valeur jsessionid extraite est incorrecte lorsqu'elle est entre des balises XML
  • System.nanoTime() a tendance à dériver par rapport à System.currentTimeMillis(). Modifiez SampleResult pour recalculer le décalage à chaque fois. Activez également le retour à l'utilisation de System.currentTimeMillis() uniquement.
  • Bogue 50425 - Supprimer les groupes de threads du menu d'ajout de contrôleur
  • Bogue 50675 - Configuration de l'ensemble de données CVS incompatible avec le démarrage à distance Démarrage RMI fixe pour fournir l'emplacement du fichier JMX par rapport à user.dir.
  • Bogue 50221 - Renommer des éléments dans l'arborescence ne redimensionne pas l'étiquette
  • Bogue 51002 - Arrêtez le thread si le fichier CSV n'est pas disponible. JMeter traite désormais IOError comme EOF.
  • Définissez sun.net.http.allowRestrictedHeaders=true par défaut. Cela corrige le bogue 51238 .
  • Bogue 51645 - CSVDataSet ne lit pas les fichiers UTF-8 lorsque file.encoding est UTF-8

Améliorations

Échantillonneurs HTTP

  • AJP Sampler implémente désormais Interruptible
  • Autoriser la sélection de l'implémentation HTTP au moment de l'exécution
  • Bogue 50684 - Désactivez éventuellement Content-Type et Transfer-Encoding dans Multipart POST
  • Bogue 50943 - Autoriser les téléchargements simultanés de ressources intégrées dans la page html
  • Bogue 50170 - Les octets signalés par l'échantillonneur http sont après GUnZip
    Ajoutez des propriétés facultatives pour permettre de modifier la méthode pour obtenir la taille de la réponse
  • Masquer le mot de passe du proxy sur HTTP Sampler (uniquement sur l'interface graphique, pas dans le fichier JMX)

Autres échantillonneurs

  • Bogue 49622 - Autoriser l'envoi de messages sans objet (SMTP Sampler)
  • Bogue 49603 - Autoriser l'acceptation de certificats expirés sur Mail Reader Sampler
  • Bogue 49775 - Autoriser l'envoi de messages sans corps
  • Bogue 49862 - Amélioration de la sortie de la requête SMTPSampler.
  • Bogue 50268 - Ajoute des destinations statiques et dynamiques à JMS Publisher
  • Abonné JMS - Ajouter une destination dynamique
  • Bug 50666 - JMSSubscriber : prise en charge des abonnements durables
  • Bogue 50937 - L'échantillonneur TCP ne fournit pas / n'honore pas le délai de connexion
  • Bogue 50569 - Jdbc Request Sampler pour éventuellement stocker les données d'objet de l'ensemble de résultats
  • Bug 51011 - Mail Reader : en cas d'échec d'authentification, indiquez ce que vous avez essayé

Contrôleurs

  • Bug 50475 - Introduction d'un élément de test de fragment de test pour un meilleur flux d'inclusion

Les auditeurs

  • Afficher l'arborescence des résultats - Ajouter une boîte de dialogue sur l'onglet "Résultat de l'échantillonneur → Analyse" pour afficher la valeur longue avec un double-clic sur la cellule
  • Bogue 37156 - Vue formatée de la requête dans l'arborescence des résultats
  • Bogue 49365 - Autoriser l'écriture de l'ensemble de résultats dans un fichier dans un chemin relatif au script chargé
  • Bogue 50579 - Le nombre d'erreurs est long, le nombre d'échantillons est entier. Changement du nombre d'échantillons en long.
  • Afficher l'arborescence des résultats - Ajouter de nouveaux champs de taille : en-têtes de réponse et corps de réponse (en octets) - dérivé du bogue 43363

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bug 48015 - Proposition de nouvelles icônes pour les éléments de pré-processeur, de post-processeur et d'assertion
  • Bogue 50962 - La validation SizeAssertionGui empêche l'utilisation de variables pour la taille
  • Assertion de taille - Ajouter une portée de taille de réponse (complète, en-têtes, corps, code, message) - dérivée du bogue 43363

Les fonctions

  • Bug 49975 - Nouvelle fonction retournant le nom du sampler courant

I18N

  • Ajouter une traduction française pour les nouveaux libellés et réduire la taille de certains libellés (par abréviation) sur HTTP Sample

Général

  • Bogue 30563 - Le groupe de threads doit avoir une option de démarrage de la boucle suivante sur l'erreur d'échantillon
  • Bogue 50347 - Les instructions de configuration d'Eclipse doivent rappeler à l'utilisateur de télécharger les fichiers jar dépendants
  • Bogue 50490 - Améliorations de la configuration et du groupe de threads de publication pour un meilleur flux de test.
  • Tous les éléments de test BeanShell ont maintenant les variables de script "prev" et "Label" définies.
  • Bogue 50708 - L'ordre des jars Classpath dans NewDriver n'est pas alphabétique
  • Bogue 50659 - Le serveur JMeter ne prend pas en charge les tests simultanés - empêche le client d'en démarrer un autre
  • Ajout de la fonctionnalité d'arrêt à distance
  • Le moteur client JMeter prend désormais en charge l'arrêt/l'arrêt externe via UDP
  • L'arrêt UDP peut désormais utiliser une gamme de ports, de jmeterengine.nongui.port=4445 à jmeterengine.nongui.maxport=4455, autorisant plusieurs instances JMeter sur le même hôte sans avoir à modifier la propriété du port.
  • Mise à jour vers httpcore 4.1.3 et httpclient 4.1.2

Changements non fonctionnels

  • Bogue 50008 - Autoriser la sous-classe de BatchSampleSender
  • Bogue 50450 - utilisez la copie System.array dans le solveur jacobi car, étant natif, il est plus performant.
  • Bogue 50487 - runSerialTest vérifie les objets qui n'ont jamais besoin de persistance
  • Utilisez Thread.setDefaultUncaughtExceptionHandler() au lieu de ThreadGroup privé
  • Mise à jour vers Commons Net 3.0

Variante 2.4

Résumé des principaux changements

  • JMeter nécessite désormais au moins Java 1.5.
  • Le proxy HTTP peut désormais enregistrer des sessions HTTPS.
  • L'échantillonneur JUnit prend désormais en charge les annotations JUnit4.
  • Ajout des éléments de test JSR223 (javax.script).
  • MailReader Sampler peut désormais utiliser n'importe quel protocole pris en charge par l'implémentation sous-jacente.
  • Un échantillonneur SMTP a été ajouté.
  • JMeter permet désormais aux utilisateurs de fournir leurs propres implémentations de groupes de threads.
  • Afficher l'arborescence des résultats prend désormais en charge davantage d'options d'affichage, y compris la recherche et les tests Regex.
  • Les performances de StatCalculator sont bien améliorées ; Le rapport agrégé, etc. nécessite beaucoup moins de mémoire.
  • Les échantillonneurs JMS ont été largement retravaillés et ne devraient plus perdre de messages. Le traitement de corrélation est amélioré. L'éditeur et l'abonné JMS prennent désormais en charge les rubriques et les files d'attente.
  • De nombreuses autres améliorations ont été apportées, voir ci-dessous et dans le manuel.

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique. En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

L'élément de menu Options / Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue. [Le comportement s'est amélioré, mais le changement de langue ne fonctionne toujours pas complètement] Pour remplacer complètement la langue locale par défaut, définissez la propriété JMeter "langue" avant de démarrer JMeter.

Modifications incompatibles

La redirection HTTP est désormais par défaut "Suivre les redirections" plutôt que "Redirection automatique". Cela permet à JMeter de suivre les cookies qui peuvent être envoyés lors des redirections. Cela n'affecte pas les plans de test existants ; cela n'affecte que la valeur par défaut des nouveaux échantillonneurs HTTP.

Le format de fichier Avalon pour les fichiers JMX et JTL n'est plus pris en charge. Tous ces fichiers devront être convertis en les lisant dans JMeter 2.3.4 et en les réenregistrant.

Les éléments XPath Assertion et XPath Extractor ne récupèrent plus les DTD externes par défaut ; cela peut être modifié dans l'interface graphique.

JMSConfigGui a été renommé JMSSamplerGui. Cela n'affecte pas les plans de test existants.

Le constructeur public SampleResult(SampleResult res) a été modifié pour devenir un véritable "constructeur de copie". Il n'appelle plus addSubResult(). Cela peut éventuellement affecter certains modules complémentaires tiers.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 47445 - L'utilisation de Proxy avec des cookies sécurisés https-spoofing doit être non sécurisée
  • Bug 47442 - Remplacement manquant de https par http pour certaines conditions utilisant https-spoofing
  • Bogue 48451 - Erreur dans : SoapSampler.setPostHeaders(PostMethod post) dans la branche else
  • Bogue 48542 - SoapSampler utilise un champ d'en-tête de réponse incorrect pour décider si la réponse est encodée en gzip
  • Bogue 48568 - CookieManager cassé pour AjpSampler
  • Bogue 48570 - AjpSampler ne prend pas en charge les paramètres de requête (GET/POST)
  • Bogue 46901 - L'échantillonneur HTTP ne traite pas correctement les références var/func dans le premier paramètre de fichier
  • Bogue 43678 - Gérer le jeu de caractères http-equiv de la balise META ?
  • Bogue 49294 - Images non téléchargées à partir des pages redirigées vers
  • Bug 49560 - mauvaise "taille en octets" lors du suivi des redirections

Autres échantillonneurs

  • Bogue 47420 - La requête étendue LDAP ne ferme pas les connexions lors de la requête d'ajout
  • Bogue 48573 - Gestion du contexte du répertoire LDAPExtSampler
  • Bogue 47870 - JMSSubscriber échoue en raison de NPE
  • Bogue 47899 - NullPointerExceptions dans le constructeur JMS ReceiveSubscriber
  • Bogue 48144 - NPE dans JMS OnMessageSubscriber
  • Bogue 47992 - Requête point à point JMS - L'option de réponse ne fonctionne pas
  • Bogue 48579 - Single Bind n'affiche pas les informations de configuration lors de l'accès à LdapExt Sampler
  • Bogue 49111 - Erreur "Message avec ID introuvable" sur l'échantillonneur JMS P2P.
  • Bogue 47949 - L'abonné JMS ne reçoit jamais tous les messages
  • Bogue 46142 - Problèmes de corrélation point à point JMS
  • Bogue 48747 - L'échantillonneur TCP avale les exceptions
  • Bogue 48709 - Le paramètre "nom de classe" de la configuration de l'échantillonneur TCP n'a aucun effet

Contrôleurs

  • Bogue 47385 - TransactionController doit définir AllThreads et GroupThreads
  • Bogue 47940 - Le contrôleur de module crée de manière incorrecte la sous-arborescence de remplacement
  • Bogue 47592 - Exécutez les groupes de threads consécutivement avec "Stop test" en cas d'erreur, JMeter ne marquera pas comme terminé
  • Bug 48786 - Exécuter les groupes de threads consécutivement : avec "Arrêter le test maintenant" en cas d'erreur ou d'arrêt manuel, JMeter laisse la case verte active
  • Bogue 48727 - Impossible d'arrêter le test si tous les groupes de threads sont désactivés

Les auditeurs

  • Bogue 48603 - Mailer Visualiser envoie deux e-mails pour une seule réponse échouée
  • Calcul correct de min/max/std.dev pour les échantillons agrégés (rapport de synthèse)
  • Bug 48889 - Temps de réponse incorrect avec mode=Statistical et num_sample_threshold > 1
  • Bogue 47398 - Les SampleEvents sont envoyés deux fois sur RMI en test distribué et en mode non graphique

Assertions

Les fonctions

I18N

Général

  • Bogue 47646 - NullPointerException dans l'élément "Random Variable"
  • Interdire l'ajout d'éléments enfants à la configuration JDBC
  • BeanInfoSupport met désormais en cache getBeanDescriptor() - devrait éviter un NPE sur les JVM non-Sun lors de l'utilisation de CSVDataSet (et d'autres TestBeans)
  • Bug 48350 - Blocage sur les tests distribués avec 2 clients
  • Bogue 48901 - Attente sans fin en ajoutant un minuteur de synchronisation
  • Bogue 49149 - usermanual/index.html contient une faute de frappe dans le lien vers la page "Expressions régulières"
  • Bogue 49394 - Exception de diffusion de classe dans ActionRouter.postActionPerformed
  • Bogue 48136 - Fichiers essentiels manquants dans l'archive source.
    Les archives source contiennent désormais tous les fichiers source, y compris les fichiers source auparavant uniquement fournis dans les archives binaires.
  • Bogue 48331 - XpathExtractor ne renvoie pas de représentations de chaîne XML pour un Nodeset

Améliorations

Échantillonneurs HTTP

  • Bogue 47622 - activer l'enregistrement des sessions HTTPS
  • Autoriser la spécification du serveur proxy sur l'interface graphique de l'échantillonneur HTTP et l'interface graphique de configuration HTTP
  • Bogue 47461 - Mise à jour du gestionnaire de cache pour gérer l'en-tête HTTP Expires
  • Bogue 48153 - Prise en charge des en-têtes Cache-Control et Expires
  • Bogue 47946 - Le proxy doit activer le regroupement dans un contrôleur de transaction
  • Bogue 48300 - Autoriser le remplacement de l'adresse IP source pour les requêtes HTTP HttpClient
  • Bogue 49083 - Réduire '/pathsegment/..' dans les URL de redirection

Autres échantillonneurs

  • L'échantillonneur JUnit prend désormais en charge les tests JUnit4 (à l'aide d'annotations)
  • Bogue 47900 - Autoriser l'interruption de JMS SubscriberSampler
  • Ajout de l'échantillonneur JSR223
  • Bogue 47556 - Le champ JMS-PointToPoint-Sampler Timeout doit utiliser des chaînes
  • Bogue 47947 - L'échantillonneur de lecteur de courrier doit autoriser le remplacement du port
  • Bogue 48155 - Problèmes/améliorations multiples avec les classes de protocole JMS
  • Autoriser l'échantillonneur MailReader à utiliser des protocoles arbitraires
  • Bogue 45053 - Échantillonneur SMTP pour JMeter
  • Bogue 49552 - Ajouter des en-têtes de message sur SMTPSampler
  • L'éditeur et l'abonné JMS prennent désormais en charge les rubriques et les files d'attente. Ajout du délai de lecture à l'abonné JMS. Nettoyage général du code JMS.

Contrôleurs

  • Bogue 47909 - TransactionController doit additionner la latence
  • Bogue 41418 - Exclure la durée du minuteur de l'exécution de Transaction Controller dans le rapport
  • Bogue 48749 - Autoriser les groupes de threads personnalisés
  • Bogue 43389 - Autoriser la recherche de fichiers Include par rapport au fichier JMX actuel

Les auditeurs

  • Ajout de l'expéditeur DataStrippingSample - prend en charge les modes "Stripped" et "StrippedBatch".
  • Visualiseur d'assertion de comparaison ajouté
  • Bogue 47907 - Améliorations (améliorations et I18N) Assertion de comparaison et Visualiseur de comparaison
  • Bogue 36726 - ajout d'une fonction de recherche à Tree View Listener
  • Bogue 47869 - Possibilité de nettoyer les champs de SampleResult
  • Bogue 47952 - Ajout de l'écouteur JSR223
  • Bogue 47474 - Prise en charge de l'arborescence des résultats d'affichage pour les rendus de plug-in
  • Autoriser l'enregistrement du temps d'inactivité dans des exemples de fichiers journaux
  • Bogue 48259 - Améliorer les performances de StatCalculator en utilisant TreeMap
  • Les écouteurs utilisant SamplingStatCalculator ont des besoins en mémoire considérablement réduits car le cache Sample a été déplacé vers la nouvelle classe CachingStatCalculator. En particulier, le rapport agrégé peut désormais gérer un grand nombre d'échantillons.
  • Le rapport agrégé et le rapport récapitulatif permettent désormais d'exclure éventuellement les en-têtes de colonne
  • Bogue 49506 - Ajouter l'extension de fichier .csv dans la boîte de dialogue ouverte à partir de la fonctionnalité "lire à partir du fichier" des écouteurs
  • Bogue 49545 - Vue formatée (parsée) du résultat de l'échantillon dans l'arborescence des résultats

Minuteries, assertions, configuration, pré- et post-processeurs

  • Bogue 47338 - L'extracteur XPath force la récupération de la DTD du document
  • Assertion de comparaison ajoutée
  • Bogue 47952 - Ajout du préprocesseur et du postprocesseur JSR223
  • Assertion JSR223 ajoutée
  • Minuterie BSF et minuterie JSR223 ajoutées
  • Bogue 48511 - ajouter parent, enfant, toutes les sélections à l'extracteur de regex
  • Ajouter la sélection de portée Sampler à XPathExtractor
  • L'extracteur d'expression régulière, l'assertion de réponse et l'assertion de taille peuvent désormais être appliqués à une variable JMeter
  • Bogue 46790 - La configuration de l'ensemble de données CSV devrait pouvoir analyser les en-têtes CSV

Les fonctions

I18N

  • Bug 47938 - Ajout de quelques traductions françaises pour de nouveaux éléments
  • Bug 48714 - ajouter de nouveaux messages en français

Général

  • Bogue 47223 - Performances lentes des rapports agrégés (StatCalculator)
  • Bogue 47980 - le nom d'hôte se résout en 127.0.0.1 - il n'est pas possible de spécifier l'IP
  • Bogue 47943 - DisabledComponentRemover n'est pas utilisé dans la classe Start
  • Classe HeapDumper pour la génération de vidages à l'exécution
  • Implémentation de base du fournisseur JavaMail en lecture seule pour la lecture des fichiers de messagerie bruts
  • Bug 49540 - Trier les menus "Ajouter" par ordre alphabétique

Changements non fonctionnels

  • Les jars Beanshell, JavaMail et JMS API (Apache Geronimo) sont désormais inclus dans l'archive binaire.
  • Ajouter la prise en charge de l'éditeur de table TestBean
  • Suppression de toutes les bibliothèques externes de SVN ; ajout de la cible Ant download_jars
  • Mise à jour de divers fichiers jar :
    • Coque de haricot - 2.0b4 ⇒ 2.0b5
    • Codec commun - 1.3 ⇒ 1.4
    • Commons-Collections - 3.2 ⇒ 3.2.1
    • JTidy ⇒ r938
    • JUnit - 3.8.2 ⇒ 4.8.1
    • Logkit - 1.2 ⇒ 2.0
    • Xalan Serializer = 2.7.1 (précédemment affiché par erreur comme 2.9.1)
    • Xerces xml-apis = 1.3.04 (précédemment affiché par erreur comme 2.9.1)
    • Certains fichiers jar ont été renommés.

Variante 2.3.4

Résumé des principaux changements

Il s'agit d'une version mineure de correction de bogues, principalement pour corriger certains bogues qui ont été accidentellement ajoutés dans la version 2.3.3.

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique. En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

L'élément de menu Options / Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue. [Le comportement s'est amélioré, mais le changement de langue ne fonctionne toujours pas complètement] Pour remplacer complètement la langue locale par défaut, définissez la propriété JMeter "langue" avant de démarrer JMeter.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 47321 - Délai de réponse HTTPSampler2 non respecté

Autres échantillonneurs

  • Bogue 47290 - Boucle infinie lors de la recherche de la fabrique de connexions (JMS)
  • JDBC Sampler ne doit pas fermer les instructions Prepared ou Callable car elles sont mises en cache

Contrôleurs

Les auditeurs

  • Modifier ResultCollector pour avertir uniquement si le répertoire n'a pas été créé
  • Correction de certains problèmes de synchronisation dans ResultCollector et SampleResult (de mauvais verrous étaient utilisés)

I18N

  • Correction d'un bogue introduit dans 2.3.3 : JMeter ne démarre pas s'il n'y a pas de fichier messages.properties pour la locale par défaut.

Général

  • Résoudre les problèmes avec les clients distants - bogue introduit dans 2.3.3
  • Bogue 47377 - Rendre ClassFinder plus robuste et fermer les ressources de fichiers zip
  • Correction de quelques erreurs dans la génération de la documentation (bug latent révélé en 2.3.3 lors de la mise à jour de Velocity)

Améliorations

Autres échantillonneurs

  • Bogue 47266 - Échantillonneur de requête FTP : permet de spécifier un port FTP autre que celui par défaut

Variante 2.3.3

Résumé des principaux changements

La gestion de la fermeture des tests est bien améliorée. La commande progressive "Shutdown" attend maintenant que tous les threads se soient arrêtés et ne signale pas d'erreur si les threads ne s'arrêtent pas dans les 5 secondes. La commande immédiate "Stop" peut maintenant être utilisée si "Shutdown" prend trop de temps. De plus, la commande immédiate "Stop" est capable d'interrompre les échantillonneurs qui prennent en charge la nouvelle interface Interruptible (par exemple HTTP et SOAP, FTP). Cela permet de compléter immédiatement les réponses en attente. Les tests en mode non-GUI peuvent également désormais recevoir un message "Arrêt" ou "Arrêter". L'action de test prend désormais en charge une action "Arrêter maintenant", tout comme les éléments de post-processeur du groupe de threads et du gestionnaire d'action de statut de résultat .

La gestion des cookies HTTP a été améliorée et HTTP POST peut désormais utiliser correctement les noms de fichiers variables. Encodages de caractères HTTP, SOAP/XML-RPC et WebService (SOAP) mis à jour pour être plus cohérents. Les échantillonneurs HTTP prennent désormais en charge les délais de connexion et de réponse (nécessite JVM 1.5 pour l'échantillonneur HTTP Java). Avec les améliorations de fermeture décrites ci-dessus, cela devrait éviter la plupart des cas où une exécution de test se bloque. Plusieurs éléments Header Manager sont désormais pris en charge pour un seul échantillonneur HTTP. Le serveur proxy est amélioré et ne stocke plus les en-têtes "Host" par défaut.

JDBC Request peut éventuellement enregistrer les résultats des instructions Select dans des variables. JDBC Request gère désormais les chaînes entre guillemets et UTF-8, et peut gérer des types de variables arbitraires.

Il y a plusieurs nouvelles fonctions : Fonction __char() : permet de saisir des caractères Unicode arbitraires dans les champs. Fonction __unescape() : permet d'utiliser des chaînes Java échappées. Fonction _unescapeHtml() : décode le texte encodé en HTML. Fonction __escapeHtml() : encode le texte à l'aide de l'encodage Html. Une référence à une fonction manquante - par exemple ${__missing(a)} - est désormais traitée de la même manière qu'une variable manquante. Auparavant, le nom de la fonction - et le début { - étaient supprimés. Cela facilite le débogage des plans de test.

Certaines assertions peuvent désormais être appliquées à des sous-échantillons ainsi qu'à (ou à la place) uniquement à l'échantillon parent. Il existe un nouvel élément de configuration de variable aléatoire .

Les échantillonneurs JMS sont bien améliorés (voir les détails ci-dessous). L' échantillonneur TCP prend désormais en charge certains clients supplémentaires et est un peu plus flexible.

Le mode client-serveur a été amélioré et le serveur peut éventuellement utiliser un port RMI fixe, ce qui devrait faciliter la configuration des pare-feu.

Diverses modifications I18N ont été apportées ; le changement de langue fonctionne mieux (mais pas encore parfait). Il existe des traductions françaises améliorées ainsi que de nouvelles traductions en polonais et en portugais brésilien.

Le jar BeanShell est maintenant inclus avec l'archive binaire ; il n'est pas nécessaire de le télécharger séparément.

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique. En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Le contrôleur Once Only se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

L'élément de menu Options  →  Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue. [Le comportement s'est amélioré, mais le changement de langue ne fonctionne toujours pas complètement] Pour remplacer complètement la langue locale par défaut, définissez la propriété JMeter " langue " avant de démarrer JMeter.

Modifications incompatibles

Lors du chargement des résultats d'échantillon à partir d'un fichier, les résultats précédents ne sont plus effacés. Cela permet de fusionner plusieurs fichiers. Si le comportement précédent est requis, utilisez l'élément de menu Exécuter  →  Effacer ( Ctrl  +  Maj  +  E ) ou Exécuter  →  Effacer tout ( Ctrl  +  E ) avant de charger le fichier.

Les éléments de test "Enregistrer les résultats dans un fichier" et "Générer les résultats récapitulatifs" sont désormais affichés en tant qu'auditeurs. Ils étaient auparavant affichés en tant que post-processeurs, même s'ils sont implémentés en tant qu'écouteurs.

Le gestionnaire de cookies n'enregistre plus les cookies entrants en tant que variables par défaut. Pour enregistrer les cookies en tant que variables, définissez la propriété " CookieManager.save.cookies=true ". De plus, les noms des cookies sont préfixés par " COOKIE_ " avant d'être stockés (ceci évite la corruption accidentelle des variables locales) Pour revenir au comportement d'origine, définissez la propriété " CookieManager.name.prefix= " (un ou plusieurs espaces).

L'élément Compteur est maintenant affiché en tant qu'élément Configuration. Il était auparavant affiché en tant que préprocesseur, même s'il est implémenté en tant qu'élément de configuration.

Les modifications ci-dessus n'affectent que les icônes affichées et les emplacements dans les menus contextuels de l'interface graphique. Ils n'affectent pas les plans de test ou le comportement des tests.

Les préprocesseurs sont maintenant invoqués directement par la classe JMeterThread, plutôt que par la méthode TestCompiler#configureSampler(). (JMeterThread gère les post-processeurs). Cela n'affecte pas les plans de test ou le comportement, mais pourrait peut-être affecter les modules complémentaires tiers (très peu probable).

Déplacement de la sous-section Règles de portée de la section 3. "Construire un plan de test" à la section 4. "Éléments d'un plan de test"

Le contrôleur While supprime désormais les espaces de début et de fin de la valeur de condition avant qu'elle ne soit comparée à LAST , vide ou faux.

La variable "threadName" dans les fonctions _jexl() et __javaScript() était auparavant mal orthographiée comme "theadName".

Les méthodes obsolètes suivantes ont été supprimées de JOrphanUtils : booleanToString(boolean) et valueOf(boolean). Java 1.4+ a ces méthodes dans la classe booléenne.

L'interface TestElement a quelques nouvelles méthodes :

  • void setProperty (clé de chaîne, valeur de chaîne, dflt de chaîne)
  • void setProperty (clé de chaîne, valeur booléenne, dflt booléen)
  • void setProperty (clé de chaîne, valeur int)
  • void setProperty (clé de chaîne, valeur int, dflt int)
  • int getPropertyAsInt (clé de chaîne, int defaultValue)
Ceux-ci sont implémentés dans la classe AbstractTestElement que tous les éléments doivent étendre, il est donc peu probable que cela cause un problème.

Corrections de bogues

Échantillonneurs HTTP et proxy

  • Bogue 46332 - Le gestionnaire de cookies HTTP ignore les cookies définis manuellement (bogue introduit dans r707810)
  • Le gestionnaire de cookies ne transmettait pas la politique des cookies aux threads d'exécution, ils utilisaient donc toujours le mode de compatibilité
  • Ajouter l'attribut de version à la classe JMeter Cookie (nécessaire pour une prise en charge correcte des cookies)
  • Le gestionnaire de cookies enregistre/restaure désormais les versions de cookies
  • Vérifiez la validité des cookies avant de les stocker.
  • Les HTTPSamplers peuvent désormais utiliser des variables dans les noms de fichiers POSTés
  • Correction du traitement du premier nom de fichier dans HTTP POST pour que les fonctions/variables fonctionnent (bogue introduite avec la prise en charge de plusieurs fichiers)
  • Bogue 45831 - WS Sampler signale un débit incorrect si la création de paquets SOAP échoue
  • Encodages de caractères HTTP, SOAP/XML-RPC et WebService (SOAP) mis à jour pour être plus cohérents
  • Bogue 46148 - L'échantillonneur HTTP échoue sur les requêtes SSL lorsque la journalisation pour jmeter.util est définie sur DEBUG
  • Correction de l'erreur Java 1.6 https : java.net.SocketException : sockets non connectés non implémentés
  • Bogue 46838 - s'il n'y avait pas de données, il faut quand même définir la latence dans HTTPSampler
  • Bogue 46993 - L'enregistrement à partir du gestionnaire d'en-tête génère une exception ClassCast
  • Bogue 46690 - gestion des redirections 302 avec des chemins relatifs invalides. JMeter supprime désormais les segments "../" superflus (comme le font de nombreux navigateurs)
  • Bogue 44521 - les variables vides pour un POST dans la requête HTTP ne sont pas ignorées
  • Bogue 46977 - JMeter ne gère pas les en-têtes HTTP non délimités par des espaces
  • Correction d'un bogue dans le fichier HTTP : manipulation - lire les octets, pas les caractères dans l'encodage par défaut.
  • Supprimer l'hôte des en-têtes enregistrés par le serveur proxy, car cela sera normalement généré par la pile HTTP
  • Bogue 45199 - n'essayez pas de remplacer les variables vides dans l'enregistrement proxy
  • Modifiez l'usurpation d'identité HTTPS afin que les liens https : soient remplacés même lorsque la correspondance d'URL échoue
  • Bogue 46436 - Amélioration des rapports d'erreurs dans Proxy Gui
  • Bogue 46435 - Message d'erreur plus détaillé pour l'erreur 501 (serveur proxy)

Autres échantillonneurs

  • Les objets "prev" et "sampler" sont maintenant définis pour les éléments de test BSF
  • Correction de NPE (dans DataSourceElement) lors de l'utilisation de JDBC en mode client-serveur
  • Bogue 45425 - La requête JDBC ne prend pas en charge Unicode (modification de l'échantillonneur pour utiliser UTF-8)
  • Bogue 46522 - "Données de réponse" incorrectes dans l'échantillon JDBC lorsque les noms de colonne sont manquants
  • Bogue 46821 - La requête de sélection JDBC ne stocke pas la première colonne dans les variables
  • Bogue 43791 - Assurez-vous que QueueReceiver est fermé dans l'échantillonneur point à point JMS
  • Bogue 46016 - évite les NPE possibles dans JMSSampler
  • Bogue 46142 - JMS Receiver utilise désormais MessageID
  • Bogue 45458 - JMS point à point en combinaison avec l'authentification
  • Bogue 45460 - Les éléments JMS TestPlan dépendent de la propriété de la ressource
  • Divers correctifs de sécurité des threads ReceiveSubscriber
  • Correctifs JMSPublisher et Subscriber : sécurité des threads, prise en charge des changements de paramètres régionaux dynamiques, indépendance des paramètres régionaux pour les valeurs d'attribut JMX
  • FTP Sampler se déconnecte maintenant avant de se déconnecter.
  • L'échantillonneur TCP appelle désormais les méthodes setupTest() et teardownTest()
  • Bogue 45887 - TCPSampler : propriété timeout mal définie

Contrôleurs

  • Correction de NPE lors de l'utilisation de contrôleurs de transaction imbriqués avec des exemples parents
  • Correction du traitement du mode parent du contrôleur de transaction afin que l'échantillonneur actuel soit défini sur l'échantillonneur réel
  • Bogue 44941 - Les contrôleurs de débit ne doivent pas partager les compteurs globaux
  • Bogue 47120 - Contrôleur de débit : remplacez le pourcentage d'exécutions par le nombre total d'exécutions, la valeur est stockée dans une chaîne et interprétée comme 1 exécution
  • Bogue 47150 - ThreadGroup avec un nombre de boucles de zéro provoque une boucle infinie
  • Bogue 47009 - L'insertion du parent provoquait la réinitialisation du nom du contrôleur enfant
  • Bogue 47165 - L'utilisation de noms de contrôleur de module en double en mode ligne de commande provoque une NPE

Les auditeurs

  • La documentation de Mailer Visualizer est désormais conforme au code, c'est-à-dire que le nombre d'échecs/succès doit être dépassé pour déclencher le courrier.
  • Mailer Visualizer affiche maintenant le nombre d'échecs
  • Mailer Visualiser - correction de l'analyse de plusieurs adresses e-mail lors de l'utilisation du bouton Test
  • Bogue 45976 - fichier de résultats incomplet lors de l'utilisation de tests à distance avec plus d'un serveur
  • Correction de Summariser pour qu'il fonctionne en mode serveur client
  • Bogue 34096 - Les échantillons en double ne sont pas éliminés lors de l'écriture dans des fichiers CSV
  • Enregistrer le paramètre "Inclure le nom du groupe dans l'étiquette" dans les rapports agrégés et récapitulatifs
  • La variable JMeter "sample_variables" est envoyée à toutes les instances de serveur pour s'assurer que les données sont disponibles pour le client.
  • CSVSaveService - vérifier EOF lors de la lecture de la chaîne entre guillemets

Assertions

  • Bogue 45749 - L'assertion de réponse ne fonctionne pas avec une sous-chaîne qui se trouve être une RE non valide
  • Bogue 45904 - Autoriser l'assertion de réponse 'Not' à réussir avec un échantillon nul

Les fonctions

  • Correction de la fonction regex - ne parvenait pas à traiter $m$mid$n$ correctement
  • Protégez-vous contre un éventuel NPE dans RegexFunction s'il est appelé pendant l'arrêt du test.
  • Évitez NPE si la fonction XPath ne correspond à aucun nœud
  • Corrigez le nom de la variable "theadName" en "threadName" dans les fonctions __jexl() et __javaScript()
  • Une référence à une fonction manquante - par exemple ${__missing(a)} - est désormais traitée de la même manière qu'une variable manquante. Auparavant, le nom de la fonction - et le début { - étaient supprimés.

I18N

  • Correction de la gestion du changement de langue pour les menus (ne fonctionne pas encore pour TestBeans)
  • Ajoutez HeaderAsPropertyRenderer pour prendre en charge les noms de ressource d'en-tête ; utilisez ceci pour corriger les changements de paramètres régionaux dans divers éléments de l'interface graphique
  • Bug 46424 - corrections de la traduction française
  • Bogue 46844 - Les étiquettes "Bibliothèque" dans le plan de test ne sont pas I18N
  • Bogue 47064 - correctifs pour Mac LAF
  • Bogue 47127 - Impossible de changer la langue en pl_PL
  • Bogue 47137 - Les étiquettes dans l'arborescence des résultats d'affichage ne sont pas I18N
  • Bogue 46423 - I18N de Proxy Recorder
  • Bogue 45928 - L'échantillonneur AJP/1.3 ne récupère pas son étiquette à partir de messages.properties

Général

  • Invite à écraser un fichier existant lors de la première sauvegarde d'un nouveau plan de test
  • Modifier TestBeans pour afficher le menu contextuel correct pour les écouteurs
  • Bogue 45185 - Le délimiteur vide du jeu de données CSV provoque un OOM
  • Correction des classifications incorrectes de l'interface graphique : "Enregistrer les résultats dans un fichier" et "Générer des résultats récapitulatifs" sont désormais affichés en tant qu'écouteurs. "Compteur" est maintenant affiché en tant qu'élément de configuration.
  • Bogue 41608 - message de journal d'avertissement trompeur supprimé
  • Bogue 46359 - Le préprocesseur JavaScript BSF ne peut pas accéder à la variable de l'échantillonneur lors de la première itération (implémentez une solution temporaire pour BSF-22)
  • Bogue 46407 - Les éléments BSF ne chargent pas les fichiers de script, tentent d'interpréter le nom de fichier comme un script
  • Meilleure gestion des exceptions lors de l'arrêt du test
  • Correction d'un problème potentiel de sécurité des threads dans la classe JMeterThread
  • Bug 46491 - Valeur incorrecte pour la dernière variable dans "CSV Data Set Config" (erreur de traitement des chaînes entre guillemets)

Améliorations

Échantillonneurs HTTP

  • Bogue 45479 - Prise en charge de plusieurs nœuds HTTP Header Manager
  • Les échantillonneurs HTTP prennent désormais en charge les délais de connexion et de demande (nécessite Java 1.5 pour l'échantillonneur Java Http)
  • Apache SOAP 2.3.1 ne donne pas accès au code/message de réponse HTTP, donc l'échantillonneur WebService traite désormais une réponse vide comme une erreur
  • Le serveur miroir prend désormais en charge l'en-tête "X-Sleep" - s'il est défini, le thread répondant attendra le nombre de millisecondes spécifié
  • Bogue 45694 - Prise en charge des journaux compressés GZIP dans Access Log Sampler

Autres échantillonneurs

  • JDBC Request peut éventuellement enregistrer les résultats des instructions Select dans des variables.
  • La requête JDBC gère désormais les chaînes entre guillemets.
  • La requête JDBC gère désormais les types de variables arbitraires.
  • Les données de résultat LDAP sont désormais formatées avec des sauts de ligne
  • Bogue 45200 - MailReaderSampler : stocke l'intégralité du message MIME dans le SamplerResult
  • Bogue 45571 - Amélioration de la corrélation de l'échantillonneur JMS
  • Bogue 46030 - Étendre l'échantillonneur TCP pour prendre en charge les données binaires avec préfixe de longueur
  • Ajouter un champ de nom de classe aux interfaces graphiques TCP Sampler

Contrôleurs

  • Autoriser If Controller à utiliser des expressions variables (pas seulement Javascript)
  • Coupez les espaces de la condition While Controller avant de comparer avec LAST, vide ou faux

Les auditeurs

  • Enregistrer Les réponses à un fichier peuvent enregistrer le(s) nom(s) de fichier généré(s) dans des variables.
  • Ajouter une option pour ignorer la génération de suffixe dans Enregistrer les réponses dans un fichier
  • Bogue 43119 - Enregistrer les réponses dans le fichier : omettre éventuellement le numéro de fichier
  • Ajouter un élément d'écoute BSF
  • Bug 47176 - Surveiller les résultats : amélioration du graphique d'état de chargement
  • Bogue 40045 - Autoriser le moniteur de résultats à sélectionner un connecteur spécifique
  • Lire les fichiers XML JTL plus efficacement - transmettre des échantillons aux visualiseurs au fur et à mesure de leur lecture, plutôt que de les enregistrer tous puis de les traiter

Assertions, configuration, pré- et post-processeurs

  • Bogue 45903 - permet aux assertions de s'appliquer aux sous-échantillons
  • Ajouter l'option source Corps (sans échappement) à l'extracteur d'expressions régulières.
  • Variable aléatoire - nouvel élément de configuration pour créer des variables numériques aléatoires

Les fonctions

  • Ajouter des variables OUT et log à la fonction __jexl()
  • Utilisez Script pour évaluer la fonction __jexl() afin qu'elle puisse avoir plusieurs instructions.
  • Ajouter une variable de journal à la fonction __javaScript()
  • Ajout de la fonction __char() : permet de saisir des caractères Unicode arbitraires dans les champs.
  • Ajout de la fonction __unescape() : permet d'utiliser des chaînes Java échappées.
  • Ajout de la fonction __unescapeHtml() : décode le texte encodé en HTML.
  • Ajout de la fonction __escapeHtml() : encode le texte à l'aide de l'encodage Html.

I18N

  • Bug 45929 - traductions françaises améliorées
  • Bogue 47132 - Traductions en portugais brésilien
  • Bogue 46900 - Traductions en polonais
  • Ajout de la propriété locales.add pour autoriser les nouveaux paramètres régionaux

Général

  • Autoriser les espaces dans les noms de chemin JMeter (appliquer la solution de contournement pour le bogue Java 4496398 )
  • Traiter JVM_ARGS en dernier dans les fichiers de script afin que les utilisateurs puissent remplacer les paramètres par défaut
  • Bogue 46636 - Autoriser le mode serveur à utiliser éventuellement un port rmi fixe
  • Rendre certains échantillonneurs interruptibles : HTTP (les deux), SoapSampler, FTPSampler
  • L'action de test prend désormais en charge l'action "Stop Now", tout comme les éléments Thread Group et Result Status Post Processor
  • Les éléments de menu Stop et Shutdown se comportent désormais mieux. L'arrêt attendra maintenant que tous les threads se terminent. En mode GUI, il peut être annulé et Arrêter l'exécution à la place. Arrêter maintenant signale si certains threads ne se fermeront pas, et se ferme s'il s'exécute en mode non graphique
  • Ajoutez un serveur UDP pour attendre le message d'arrêt s'il s'exécute en mode non graphique ; ajouter un client UDP pour envoyer le message.
  • Bogue 41209 - JLabeled* et info-bulles
  • Inclure le jar BeanShell 2.0b4 dans le téléchargement binaire.

Changements non fonctionnels

  • Introduire la classe AbstractListenerGui pour faciliter la création d'auditeurs sans sortie visuelle
  • Les assertions sont exécutées après les post-processeurs ; modifier l'ordre des menus contextuels en conséquence
  • Supprimer les méthodes clone() inutiles des classes de fonctions
  • Déplacement de l'invocation du préprocesseur vers la classe JMeterThread
  • Rendre le champ HashTree Map final
  • Améliorer les performances de l'appel de ResultCollector#isSampleWanted() pour plusieurs échantillons
  • Mise à jour vers les nouvelles versions de : xmlgraphics-commons (1.3.1), jdom (1.1), xstream (1.3.1), vélocité (1.6.2)

Variante 2.3.2

Résumé des principaux changements

Corrections de bogues

La version 2.3.1 a changé la façon dont les types de contenu binaires et textuels étaient déterminés en ce qui concerne l'écouteur de l'arborescence des résultats : à l'origine, tout sauf les types de contenu "image/" étaient considérés comme du texte, mais la version 2.3.1 a introduit une vérification des types de contenu spécifiques. Cela a causé des problèmes, car plusieurs types populaires ont été omis et ceux-ci n'étaient plus affichés par défaut dans l'onglet Réponse. Plutôt que d'essayer de lister tous les types de texte possibles, JMeter vérifie maintenant les types binaires suivants :

  • image/*
  • l'audio/*
  • vidéo/*
Tous les autres types sont désormais supposés être du texte.

JMeter 2.3.1 a introduit un bogue dans le gestionnaire de cookies - si "Effacer le cookie à chaque itération" était sélectionné, tous les threads verraient les mêmes cookies. Ce bogue a été corrigé.

Améliorations

Le serveur proxy peut désormais enregistrer des requêtes binaires. Par défaut, les types de contenu application/x-amf et application/x-java-serialized-object seront traités comme binaires et enregistrés dans un fichier. Pour modifier les types de contenu, mettez à jour la propriété proxy.binary.types .

L'élément de configuration CSV Dataset a de nouvelles options de partage de fichiers : par groupe de threads, par thread, par identifiant. Cela permet un traitement de fichier plus flexible, par exemple chaque thread peut traiter les mêmes données dans le même ordre.

Switch Controller fonctionne désormais correctement avec les fonctions et les variables, et la condition peut désormais être un nom au lieu d'un nombre. Le contrôleur simple fonctionne désormais correctement sous un contrôleur While

Les champs CSV des fichiers JTL peuvent désormais contenir des délimiteurs. Les fichiers CSV et XML peuvent désormais contenir des variables supplémentaires (définissez la propriété JMeter sample_variables ).

L'assertion de réponse peut désormais correspondre à des sous-chaînes (c'est-à-dire pas à une expression régulière). L'extracteur Regex peut fonctionner sur des variables.

Le traitement XPath est amélioré ; Les erreurs de rangement sont mieux gérées.

Boutons Enregistrer les données du tableau ajoutés aux rapports Résumé et Agrégé pour permettre une sauvegarde facile des données calculées.

Les échantillonneurs HTTP peuvent désormais enregistrer uniquement le hachage MD5 des réponses, plutôt que la réponse entière. Dans un cas particulier, si le chemin de l'échantillonneur HTTP commence par « http:// » ou « https:// », il est utilisé comme URL complète, remplaçant les champs d'hôte et de port. Les échantillonneurs HTTP peuvent désormais POSTer plusieurs fichiers. Webservice(SOAP) Sampler peut désormais charger des fichiers WSDL locaux à l'aide du protocole "file:".

Un simple gestionnaire de cache HTTP a été ajouté. Cela doit encore être développé.

Afficher l'arborescence des résultats L'écouteur utilise désormais Tidy pour afficher le XML. Cela devrait permettre d'afficher plus de contenu avec succès. Cela évite également d'avoir à télécharger des fichiers DTD distants, ce qui peut ralentir considérablement le rendu.

L'échantillonneur MailReader prend désormais en charge les protocoles POP3S et IMAPS. Les e-mails individuels sont désormais ajoutés en tant que sous-échantillons.

Diverses améliorations apportées à l'échantillonneur BSF : prend désormais en charge Jexl et le bogue Javascript fonctionne correctement. Ajout des éléments de test BSF PreProcessor, PostProcessor et Assertion. Tous ont maintenant accès à l'objet "props" JMeter Properties.

Le nombre de classes chargées en mode non graphique est considérablement réduit.

Bogues connus

Le contrôleur d'inclusion a quelques problèmes en mode non graphique. En particulier, cela peut provoquer une NullPointerException s'il existe deux contrôleurs d'inclusion portant le même nom.

Une seule fois, le contrôleur se comporte correctement sous un groupe de threads ou un contrôleur de boucle, mais sinon son comportement n'est pas cohérent (ou clairement spécifié).

L'élément de menu Options / Choisir la langue ne change pas tout le texte affiché dans la nouvelle langue. Pour remplacer la langue locale par défaut, définissez la propriété JMeter "langue" avant de démarrer JMeter.

Modifications incompatibles

  • Pour réduire le nombre de classes chargées en mode non graphique, les fonctions ne seront trouvées que si leur nom de classe contient la chaîne '.functions.' et ne contient pas la chaîne '.gui.'. Toutes les fonctions JMeter existantes sont conformes à cette restriction. Pour revenir au comportement antérieur, commentez ou modifiez les propriétés classfinder.functions.* dans jmeter.properties.
  • Le paramètre de valeur de référence pour intSum() est désormais facultatif. Par conséquent, si un nom de variable est utilisé, il ne doit pas être un entier valide.
  • L'implémentation TCPClient fournie ne traite plus tcp.eolByte=0 comme spécial. Pour ignorer la vérification EOL, définissez tcp.eolByte=1000 (ou une autre valeur qui n'est pas un octet valide)
  • Les espaces de début et de fin sont supprimés des noms de variables dans les appels de fonction. Par exemple, ${__Random(1,63, LOTTERY )} utilisera la variable 'LOTTERY' plutôt que 'LOTTERY'.
  • La synchronisation a été supprimée de la classe RunningSample (elle n'était de toute façon pas entièrement thread-safe). Les développeurs de modules complémentaires tiers qui utilisent la classe peuvent avoir besoin de synchroniser l'accès.

Corrections de bogues

  • Vérifiez que le délimiteur CSV est raisonnable.
  • Correction du contrôleur de commutateur pour qu'il fonctionne correctement avec les fonctions et les variables
  • Bogue 44011 - application/soap+xml non traité comme un type de texte
  • Bogue 43427 - Le contrôleur simple n'est que partiellement exécuté dans la boucle While
  • Bogue 33954 - Débordement de pile dans les contrôleurs If/While (peut avoir été corrigé précédemment)
  • Bogue 44022 - Fuite de mémoire lors de la fermeture du plan de test
  • Bogue 44042 - Régression dans le gestionnaire de cookies (bogue introduit dans 2.3.1)
  • Bogue 41028 - Le serveur JMeter n'alerte pas l'utilisateur lorsque l'hôte est défini comme une adresse de bouclage
  • Bogue 44142 - La fonction __machineName provoque NPE si des paramètres sont omis.
  • Bogue 44144 - JMS point à point : le test de réponse à la demande ne fonctionne pas
  • Bogue 44314 - Impossible d'ajouter plus d'un SyncTimer
  • Capturez la sortie d'erreur de la console Tidy et enregistrez-la
  • Résoudre les problèmes d'utilisation de Tidy (analyseur tolérant) dans XPath Assertion et XPath Extractor
  • Bogue 44374 - amélioration du calcul de la minuterie
  • L'extracteur d'expressions régulières supprime désormais toutes les variables obsolètes des correspondances précédentes.
  • Bogue 44707 - L'exécution d'un test à distance modifie le plan de test interne
  • Bogue 44625 - Impossible d'avoir deux échantillonneurs FTP ou plus avec des actions "put" et "get" différentes
  • Bogue 40850 - Fuite de mémoire BeanShell
  • Assurez-vous que ResponseCode et ResponseMessage sont définis pour les exemples JDBC réussis
  • FTPSampler détecte et signale maintenant l'échec de l'ouverture du fichier distant
  • Les répertoires de classe définis dans search_paths et user.classpath n'ont plus besoin de "/" de fin
  • Bogue 44852 La demande SOAP/ XML-RPC n'affiche pas les détails de la demande dans l'arborescence des résultats d'affichage
  • WebService (SOAP) Sampler ResponseData inclut désormais les EOL envoyés par le serveur
  • Bogue 44910 - fermer le socket précédent (le cas échéant) dans TCP Sampler
  • Bogue 44912 - Le filtre ne fonctionne pas dans l'analyseur de journaux
  • La documentation des composants BeanShell et BSF faisait des références incorrectes à l'objet "SampleResponse" ; cela a été corrigé en "SampleResult"
  • BSF Sampler fonctionne désormais correctement avec Javascript
  • L'action de test "Arrêter le test" fonctionne maintenant
  • Bogue 42833 - La classe Argument utilise LinkedHashMap dans getArgumentsAsMap() pour préserver l'ordre
  • Bogue 45093 - SizeAssertion n'appelait pas getBytes()
  • Bogue 45007 - Réécriture des en-têtes d'emplacement lors de l'utilisation de l'usurpation Proxy HTTPS
  • Utilisez CRLF plutôt que LF dans Proxy lors du retour des en-têtes au client
  • Bogue 45007 - correction de l'en-tête de longueur de contenu si le contenu peut avoir été modifié

Améliorations

  • Les fichiers CSV peuvent désormais gérer les champs avec des délimiteurs intégrés.
  • fonction longSum() ajoutée
  • Bogue 43382 - configuration de la sortie Tidy (avertissements, erreurs) pour XPath Assertion et Post-Processor
  • Bogue 43984 - supprimer les espaces du champ de port
  • Ajouter un commentaire facultatif à la fonction __log()
  • Rendre le nom de la variable de fonction aléatoire facultatif
  • Réduisez le chargement des classes en mode non graphique en recherchant uniquement les fonctions dans les noms de classe contenant « .functions ». et ne contiennent pas '.gui.'
  • Bogue 43379 - Switch Controller prend désormais en charge la sélection par nom ainsi que par numéro
  • Peut spécifier la liste des noms de variables à écrire dans les fichiers JTL (format CSV et XML)
  • Vérifie maintenant que les options remoteStart -r et -R ne sont utilisées qu'avec l'option non_GUI -n
  • Bogue 44184 - Autoriser l'enregistrement de l'en-tête avec les données du graphique agrégé
  • Ajout des boutons "Enregistrer les données du tableau" aux rapports agrégés et récapitulatifs - enregistrer le tableau au format CSV avec en-tête
  • Autoriser l'utilisation de la plupart des fonctions sur le plan de test. Remarque __evalVar(), __split() et __regex() ne peuvent pas être utilisés sur le plan de test.
  • Autoriser le chargement des propriétés globales à partir d'un fichier, par exemple -Gglobal.properties
  • Ajouter l'option "Sous-chaîne" à l'assertion de réponse
  • Bogue 44378 - Localisation en turc
  • Ajouter un nom de variable de sortie facultatif à la fonction Jexl
  • Ajouter application/vnd.wap.xhtml+xml comme type de texte
  • Ajouter signifie remplacer la taille d'affichage maximale dans Afficher l'arborescence des résultats - définissez la propriété : view.results.tree.max_size
  • Utilisez Tidy pour afficher le XML dans l'écouteur de l'arborescence des résultats de la vue (évite de récupérer les DTD)
  • Bogue 44487 - Traduction allemande
  • Dans un cas particulier, si le chemin de l'échantillonneur HTTP commence par « http:// » ou « https:// », il est utilisé comme URL complète.
  • Bogue 44575 - L'économiseur de résultats ne peut désormais enregistrer que les résultats réussis
  • Bogue 44650 - L'ensemble de données CSV gère désormais les valeurs de colonne entre guillemets
  • Bogue 44600 - Minuteur de résolution de 1 ms lors de l'exécution avec Java 1.5+
  • Bogue 44632 - Amélioration de la saisie de texte dans FTP Sampler
  • Bogue 42204 - ajouter le nom du groupe de threads aux rapports agrégés et récapitulatifs
  • FTP Sampler définit la latence = temps de connexion
  • FTP Sampler définit une URL s'il le peut
  • Bogue 41921 - ajout d'une option permettant aux échantillonneurs de stocker le MD5 de la réponse ; fait pour les échantillonneurs HTTP.
  • La fonction Regex peut désormais être appliquée à une variable plutôt qu'au résultat de l'échantillon précédent.
  • Supprimer le masque de paramètre HTML, le modificateur de paramètre utilisateur HTTP des menus car ils sont obsolètes
  • Bogue 44807 - permet aux identifiants de session d'être terminés par une barre oblique inverse
  • Bogue 44784 - permet à un serveur défectueux de renvoyer un jeu de caractères supplémentaire
  • Ajout de la propriété / variable TESTSTART.MS = heure de début du test en millisecondes
  • Ajoutez les protocoles POP3S et IMAPS à Mail Reader Sampler.
  • Mail Reader Sampler crée maintenant un sous-échantillon pour chaque courrier.
  • L'implémentation TCPClient fournie ne traite plus tcp.eolByte=0 comme spécial. Pour ignorer la vérification EOL, définissez tcp.eolByte=1000 (ou une autre valeur qui n'est pas un octet valide)
  • L'interface graphique de l'échantillonneur JUnit trouve désormais également les classes de test définies dans user.classpath
  • Les espaces de début et de fin sont supprimés des noms de variables dans les appels de fonction. Par exemple, ${__Random(1,63, LOTTERY )} utilisera la variable 'LOTTERY' plutôt que 'LOTTERY'
  • Webservice(SOAP) Sampler peut désormais charger des fichiers WSDL locaux à l'aide du fichier : protocole
  • Bogue 44872 - Ajout du filtre "Tous les fichiers" aux boîtes de dialogue d'ouverture de fichier
  • Le serveur miroir peut maintenant être exécuté indépendamment (mirror-server.cmd et mirror-server.sh)
  • Bogue 19128 - Ajout de la prise en charge POST de plusieurs fichiers aux échantillonneurs HTTP
  • Autoriser l'utilisation du nom spécial LAST pour désigner le dernier test exécuté ; s'applique aux drapeaux -t, -l, -j
  • Bogue 44418/42178 - Améliorations de la gestion des fichiers CSV Dataset
  • Donner aux fonctions BeanShell, Javascript et Jexl l'accès aux propriétés JMeter via l'objet "props"
  • Donner à BSF Sampler l'accès aux propriétés JMeter via l'objet "props"
  • Ajouter Jexl en tant que langage BSF Sampler pris en charge
  • Donner aux éléments de test Beanshell l'accès aux propriétés JMeter via l'objet "props"
  • Ajout des éléments de test BSF PreProcessor, PostProcessor et Assertion
  • Tous les éléments BSF ont maintenant accès à System.out via la variable "OUT"
  • Résumé mis à jour pour gérer les noms de variables
  • Synchronisation ajoutée au rapport récapitulatif et agrégé pour essayer d'éviter la perte occasionnelle d'échantillons
  • Bogue 44808 , Bogue 39641 - Prise en charge du proxy pour les requêtes binaires
  • Bogue 28502 - Cache de ressources HTTP

Changements non fonctionnels

  • Meilleure gestion des problèmes de démarrage de MirrorServer et test unitaire amélioré.
  • Le processus de construction détecte maintenant les bibliothèques tierces manquantes et signale les besoins pour les archives binaires et source
  • Ignorer les tests BeanShell si jar n'est pas présent
  • Mise à jour vers 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
  • Utiliser les propriétés pour les descriptions de fonction de journal/logn
  • Vérifiez que tous les fichiers jmx du répertoire demos peuvent être chargés correctement
  • Mettre à jour le droit d'auteur en 2008 ; utiliser la balise de copie au lieu du caractère numérique dans la sortie HTML
  • Les méthodes appelées à partir des constructeurs ne doivent pas être remplaçables : rendre les méthodes d'initialisation de l'interface graphique privées
  • Rendre les variables statiques finales si possible
  • Diviser les changements en actuel et précédent

Variante 2.3.1

Sommaire des modifications

Proxy JMeter

La fonction d'usurpation de proxy a été cassée dans 2.3 ; il a été corrigé. Spoof prend désormais en charge un paramètre facultatif pour limiter l'usurpation à des URL particulières. Ceci est utile pour les pages HTTPS dont le contenu n'est pas sécurisé - par exemple, les images/feuilles de style sont accessibles via HTTP. Les réponses usurpées suppriment désormais le port par défaut (443) des liens https pour qu'ils fonctionnent mieux.

Les échantillons proxy ignorés sont maintenant visibles dans les écouteurs - l'étiquette est entourée de [ et ] à titre indicatif. La documentation du proxy a été améliorée.

Modifications de l'interface graphique

Les menus Ajouter affichent les types d'éléments dans l'ordre dans lequel ils sont traités - voir Ordre d'exécution du plan de test . Il n'est plus possible d'ajouter des éléments de test à des parties inappropriées de l'arborescence - par exemple, les échantillonneurs ne peuvent pas être ajoutés directement sous un plan de test. Cela s'applique également au collage et au glisser-déposer.

Le menu Fichier prend désormais en charge une option "Revert", qui recharge le fichier en cours. De plus, les derniers noms de fichiers utilisés sont mémorisés pour faciliter le rechargement.

Le menu Options prend désormais en charge les éléments Réduire tout et Développer tout pour réduire et développer l'arborescence de test.

Test à distance

Le serveur JMeter démarre maintenant le serveur RMI directement (par défaut). Cela simplifie les tests et signifie que le serveur RMI sera arrêté lorsque le serveur s'arrêtera.

Les fonctions peuvent désormais être utilisées dans les noms de fichiers de l'écouteur (les variables ne fonctionnent pas).

L'option de ligne de commande -G peut désormais être utilisée pour définir les propriétés des serveurs distants. L'option -X peut être utilisée pour arrêter un serveur distant après une exécution non graphique. Le serveur peut être configuré pour se fermer automatiquement après un seul test (définir la propriété server.exitaftertest=true).

Autres améliorations

Le démarrage de JMeter ne charge plus autant de classes ; cela devrait réduire les besoins en mémoire.

Prise en charge des paramètres et des fichiers ajoutée à tous les éléments BeanShell. La fonction Javascript prend désormais en charge l'accès aux objets JMeter ; La fonction Jexl a toujours eu accès, mais la documentation a maintenant été incluse. Nouvelles fonctions __eval() et __evalVar() pour évaluer les variables.

Les fichiers CSV avec les noms de colonne d'en-tête corrects sont désormais automatiquement reconnus lors du chargement. Il n'est pas nécessaire de configurer les propriétés.

Le nom d'hôte peut désormais être enregistré dans des fichiers de sortie CSV et XML. Nouvelle option "Succès uniquement" ajoutée lors de l'enregistrement des fichiers de résultats. L'option Erreurs / Succès uniquement est désormais prise en charge lors du chargement de fichiers XML et CSV.

Améliorations générales de la documentation.

HTTP

PUT et DELETE devraient maintenant fonctionner correctement. Le gestionnaire de cookies n'efface plus les cookies saisis manuellement.

Gère désormais le jeu de caractères http-equiv de la balise META

JDBCName

L'échantillonneur JDBC autorise désormais les paramètres INOUT et OUT pour les procédures appelées. JDBC Sampler autorise désormais les connexions par thread - définissez Max Connections = 0 dans JDBC Config.


Modifications incompatibles

  • Le serveur JMeter crée maintenant le registre RMI par défaut. Si le registre RMI a déjà été démarré en externe, cela générera un message d'avertissement, mais le serveur continuera. Cela ne devrait pas affecter les tests JMeter. Toutefois, si vous utilisez également le registre RMI pour d'autres applications, des problèmes peuvent survenir. Par exemple, lorsque le serveur JMeter s'arrête, il arrête le registre RMI. De plus, les fichiers de commandes écrits par l'utilisateur peuvent avoir besoin d'être ajustés (ceux fournis avec JMeter ont été mis à jour). Pour revenir au comportement précédent, définissez la propriété JMeter : server.rmi.create=false .
  • Le serveur proxy supprime les en-têtes If-Modified-Since et If-None-Match des gestionnaires d'en-tête générés. Pour revenir au comportement précédent, définissez la propriété proxy.headers.remove sans valeur

Corrections de bogues

  • Bogue 43430 - Le nombre de threads actifs est incorrect pour les échantillons distants
  • Le contrôleur de débit ne fonctionnait pas pour le nombre de "tous les threads"
  • Si un corps POST est construit à partir de valeurs de paramètres uniquement, celles-ci sont désormais codées si la case à cocher est activée.
  • Bogue 43584 - Le message d'échec d'assertion contient une virgule qui est également utilisée comme délimiteur pour les fichiers CSV
  • HTTP Mirror Server renvoie désormais toujours exactement le même contenu, il renvoyait des données incorrectes si l'encodage UTF-8 était utilisé pour le corps HTTP POST, par exemple
  • Bogue 43612 - HTTP PUT ne respecte pas les paramètres de requête
  • Bogue 43694 - ForEach Controller (erreur de traitement de collection vide)
  • Bogue 42012 - Les noms de fichiers Variable Listener ne sont pas traités dans les tests à distance. Les noms de fichiers peuvent désormais inclure des références de fonction ; les références de variables ne fonctionnent pas.
  • Assurez-vous que les nœuds d'écoute obtiennent leur propre configuration de sauvegarde lorsqu'ils sont copiés-collés
  • Le serveur proxy correct inclut et exclut la description correspondante - le port et la requête sont inclus, contrairement à ce qui a été documenté précédemment.
  • L'en-tête de colonne du graphique agrégé et du rapport agrégé est en Ko/s ; correction des valeurs en Ko plutôt qu'en octets
  • Corrigez SamplingStatCalculator afin qu'il n'ajoute plus de temps écoulé à endTime, car cela est géré par SampleResult. Cela corrige les écarts entre le calcul du débit du rapport récapitulatif et du rapport agrégé.
  • HTTPSampleResult par défaut à l'encodage ISO-8859-1
  • Correction de l'encodage par défaut pour l'encodage vide
  • Correction de l'usurpation Https (problème de port) qui était cassée dans la version 2.3
  • Correction de l'échantillonneur HTTP (Java) afin que http.java.sampler.retries signifie des tentatives, c'est-à-dire n'inclut pas l'essai initial
  • Correction de la vérification du type de données SampleResult pour mieux détecter les documents TEXT

Améliorations

  • Ajoutez la cible run_gui Ant, pour empaqueter, puis démarrez l'interface graphique JMeter à partir d'Ant
  • Ajouter un fichier → Rétablir pour supprimer facilement les modifications actuelles et recharger le fichier de projet actuellement chargé
  • Bogue 31366 - Mémoriser le(s) fichier(s) récemment ouvert(s)
  • Bogue 43351 - Ajout de la prise en charge des paramètres et du fichier de script à tous les éléments de test BeanShell
  • SaveService n'a plus besoin d'instancier des classes
  • Nouvelles fonctions : __eval() et __evalVar()
  • Les éléments de menu apparaissent maintenant dans l'ordre d'exécution
  • Les éléments du plan de test ne peuvent désormais être déposés / collés / fusionnés que dans les parties de l'arborescence où ils sont autorisés
  • Affichage des propriétés pour afficher la valeur des propriétés System et JMeter et permettre leur modification
  • Bogue 43451 - Autoriser Regex Extractor à fonctionner sur le code/message de réponse
  • JDBC Sampler autorise désormais les paramètres INOUT et OUT pour les procédures appelées
  • JDBC Sampler autorise désormais les connexions par thread
  • Cookie Manager n'efface plus les cookies définis dans l'interface graphique
  • Les paramètres HTTP sans nom sont ignorés (sauf pour les requêtes POST sans fichier)
  • "Enregistrer la sélection sous" ajouté au menu principal ; vérifie maintenant que seul l'élément est sélectionné
  • Le plan de test a maintenant l'élément de menu Coller (le collage était déjà pris en charge via ^V)
  • Si le délimiteur par défaut ne fonctionne pas lors du chargement d'un fichier CSV, devinez le délimiteur en analysant la ligne d'en-tête.
  • Ajouter un protocole "loopback" facultatif pour l'échantillonneur HttpClient
  • HTTP Mirror Server prend désormais en charge le blocage en attendant que davantage de données apparaissent, si l'en-tête de longueur de contenu est présent dans la requête
  • L'interface graphique du serveur miroir HTTP a maintenant les boutons Démarrer et Arrêter dans un endroit plus visible
  • Le mode serveur crée maintenant le registre RMI ; pour désactiver, définissez la propriété JMeter server.rmi.create=false
  • HTTP Sampler prend désormais en charge l'utilisation du champ Type MIME pour spécifier l'en-tête de demande de type de contenu lorsque le corps est construit à partir de valeurs de paramètre
  • Activer la sortie après un seul test de serveur - définir la propriété JMeter server.exitaftertest=true
  • Ajout de l'option -G pour définir les propriétés des serveurs distants
  • Ajout de l'option -X pour arrêter les serveurs distants après une exécution non graphique
  • Bogue 43485 - Possibilité de spécifier keep-alive sur la requête SOAP/XML-RPC
  • Bogue 43678 - Gérer le jeu de caractères http-equiv de la balise META
  • Bug 42555 - [I18N] Corrections proposées pour la traduction française
  • Bogue 43727 - L'action de test ne prend pas en charge les variables ou les fonctions
  • Le serveur proxy supprime les en-têtes If-Modified-Since et If-None-Match des gestionnaires d'en-tête générés par défaut. Pour modifier la liste des en-têtes supprimés, définissez la propriété proxy.headers.remove comme une liste d'en-têtes séparés par des virgules à supprimer
  • La fonction javaScript a maintenant accès aux variables et au contexte JMeter, etc. Voir la fonction JavaScript
  • Utiliser la liste déroulante pour le champ de langue BSF Sampler
  • Ajoutez un nom d'hôte aux éléments pouvant être enregistrés dans des fichiers de sortie CSV et XML.
  • L'indicateur d'erreurs uniquement est désormais pris en charge lors du chargement de fichiers XML et CSV
  • Assurez-vous que ResultCollector utilise l'encodage SaveService
  • Le proxy rejette désormais les tentatives d'utilisation avec https
  • L'usurpation de proxy peut désormais utiliser la correspondance RE pour déterminer les URL à usurper (utile si les images ne sont pas https)
  • L'usurpation de proxy supprime désormais le port HTTPS par défaut (443) lors de la conversion des liens https : en http :
  • Ajouter la journalisation et l'affichage des réussites uniquement
  • Le nom du fichier journal JMeter est formaté en tant que SimpleDateFormat (appliqué à la date actuelle) s'il contient des guillemets simples appariés, par exemple 'jmeter_'aaaaMMjjHHmmss'.log'
  • Ajout des éléments de menu Réduire tout et Développer tout Option
  • Autoriser la définition facultative de types de contenu supplémentaires affichables sous forme de texte

Améliorations non fonctionnelles

  • Code foncteur resserré ; Functor peut maintenant être utilisé avec des interfaces, ainsi que des cibles et des paramètres prédéfinis.
  • La fonction d'enregistrement des graphiques demande maintenant avant d'écraser un fichier existant
  • Debug Sampler et Debug PostProcessor ajoutés.
  • Correction des noms de méthodes dans Calculator et SamplingStatCalculator
  • Documentation de l'auditeur rangée.

Variante 2.3

Corrections depuis la 2.3RC4

Corrections de bogues

  • Correction de NPE dans SampleResultConverter - XStream PrettyPrintWriter ne peut pas gérer les valeurs nulles
  • Si l'échantillonneur Java HTTP voit un ResponseMessage nul, remplacez-le par l'en-tête HTTP
  • Bogue 43332 - 2.3RC4 n'efface pas Guis basé sur TestBean
  • Bogue 42948 - Problèmes avec les champs de table Proxy gui dans Java 1.6
  • Correction du script jmeter-server cassé
  • Bogue 43364 - option pour rétablir le comportement de If Controller avant la version 2.3RC3
  • Bogue 43449 - Le mode Remote statistique ne gère pas la latence
  • Bogue 43450 (correction partielle) - Autoriser l'enregistrement/la restauration de SampleCount et ErrorCount à partir de fichiers

Améliorations

  • Ajouter l'option nameSpace à l'extracteur XPath
  • Ajouter l'option de paramètre NULL à l'échantillonneur JDBC
  • Ajouter des liens de documentation pour Rhino et BeanShell aux fonctions ; clarifier les variables et les propriétés
  • Assurez-vous que les exceptions non interceptées sont enregistrées
  • Recherchez user.properties et system.properties dans le répertoire bin de JMeter s'ils ne sont pas trouvés localement

Corrections depuis la 2.3RC3

  • Correction de NPE dans Summariser (bug introduit dans 2.3RC3)
  • Correction de la configuration du port proxy (bug introduit dans 2.3RC3)
  • Correction d'erreurs lors de l'exécution sans interface graphique sur un hôte sans tête (bogue introduite dans 2.3RC3)
  • Bogue 43054 - SSLManager provoque la saturation et le blocage des tests de résistance (bogue introduite dans 2.3RC3)
  • Clarification de l'utilisation par défaut des requêtes HTTP du champ de port
  • Bogue 43006 - NPE si le fichier icon.properties est introuvable
  • Bogue 42918 - L'assertion de taille traite désormais une réponse vide comme ayant une longueur nulle
  • Bogue 43007 - Le test se termine avant le démarrage de tous les groupes de threads
  • Correction possible de NPE dans HTTPSampler2 si 302 n'a pas d'en-tête Location.
  • Bogue 42919 - Message d'échec vide dans la sortie CSV [enregistre désormais le premier message non vide]
  • Ajouter un lien vers l'extension de JMeter PDF
  • Autoriser le jeu de caractères entre guillemets dans l'analyse Content-Type
  • Bogue 39792 - Synchronisation ClientJMeter nécessaire
  • Bogue 43122 - Les modifications de l'interface graphique ne sont pas toujours détectées lorsque des touches de raccourci sont utilisées (bogue introduite dans 2.3RC3)
  • Bogue 42947 - Les modifications de TestBeanGUI ne sont pas détectées lors de l'utilisation de touches de raccourci
  • Ajout de serializer.jar (nécessaire pour la mise à jour vers xalan 2.7.0)
  • Bogue 38687 - Le contrôleur de module ne fonctionne pas en mode non graphique

Améliorations depuis la 2.3RC3

  • Ajouter l'option d'arrêt du thread à l'ensemble de données CSV
  • Mise à jour de commons-httpclient vers 3.1
  • Bogue 28715 - autoriser les valeurs de cookies variables (définissez CookieManager.allow_variable_cookies=false pour désactiver)
  • Bogue 40873 - ajout de l'option de livraison non persistante point à point JMS
  • Bogue 43283 - L'action de sauvegarde ajoute .jmx s'il n'est pas présent ; vérifie le fichier existant sur Enregistrer sous
  • La touche Control  +  A ne fonctionne pas pour Enregistrer tout sous ; changé en Contrôle  +  Maj  +  S
  • Bogue 40991 - Autoriser les assertions à vérifier les en-têtes

Version 2.3RC3

Problèmes/restrictions connus :

Le serveur distant JMeter ne prend pas en charge plusieurs tests simultanés - chaque test distant doit être exécuté sur un serveur distinct. Sinon, les tests peuvent échouer avec des exceptions aléatoires, par exemple ConcurrentModification Exception dans StandardJMeterEngine. Voir bogue 43168 .

L'échantillonneur de requête HTTP par défaut (pas HTTPClient) peut ne pas fonctionner pour les connexions HTTPS via un proxy. Cela semble être dû à un bogue Java, voir Bug 39337 . Pour éviter le problème, essayez une version plus récente de Java ou passez à la version HTTPClient de l'échantillonneur de requête HTTP.

Le mode parent du contrôleur de transaction ne prend pas en charge les contrôleurs de transaction imbriqués. Cela peut provoquer une exception de pointeur nul dans TestCompiler.

Le nombre de threads actifs est toujours égal à zéro dans les fichiers CSV et XML lors de l'exécution de tests à distance.

La propriété file_format.testlog=2.1 est traitée de la même manière que 2.2. Cependant, JMeter respecte les 3 versions du plan de test.

Bogue 22510 - JMeter utilise toujours la première entrée du magasin de clés.

Le mode distant ne fonctionne pas si JMeter est installé dans un répertoire dont le nom du chemin contient des espaces.

Les éléments de test BeanShell fuient la mémoire. Cela peut être réduit en utilisant un fichier au lieu d'inclure le script dans l'élément de test.

Les variables et les fonctions ne fonctionnent pas dans les écouteurs en mode client-serveur (distant) et ne peuvent donc pas être utilisées pour nommer les fichiers journaux en mode client-serveur.

Les variables de jeu de données CSV sont définies une fois le traitement de la configuration terminé, elles ne peuvent donc pas être utilisées pour d'autres éléments de configuration tels que JDBC Config. (voir bogue 40394 )

Résumé des changements (pour plus de détails, voir ci-dessous)

Certaines des principales améliorations sont :

  • Htmlparser 2.0 maintenant utilisé pour l'analyse
  • L'autorisation HTTP prend désormais en charge le domaine et le domaine
  • Les options HttpClient peuvent être spécifiées via le fichier httpclient.parameters
  • HttpClient se comporte désormais de la même manière que Java Http pour les certificats SSL
  • HTTP Mirror Server pour permettre le test local des échantillonneurs HTTP
  • Le proxy HTTP prend en charge l'enregistrement XML-RPC et d'autres améliorations de proxy
  • La fonction __V() permet la prise en charge des références de variables imbriquées
  • L'échantillonneur LDAP Ext analyse éventuellement les ensembles de résultats et prend en charge le mode sécurisé
  • FTP Sampler prend en charge le mode Ascii/Binary et le téléchargement
  • Transaction Controller génère désormais en option un échantillon avec des sous-résultats
  • Les contextes de session HTTPS sont désormais par thread, plutôt que partagés. Cela donne une meilleure émulation de plusieurs utilisateurs
  • Les éléments BeanShell prennent désormais en charge les interfaces ThreadListener et TestListener
  • Icônes colorées dans Tree View Listener et ailleurs pour mieux différencier les échantillons ayant échoué.

Les principales corrections de bogues sont :

  • La gestion HTTPS (SSL) est maintenant bien améliorée
  • Divers bugs du mode Remote corrigés
  • Control  +  C et Control  +  V fonctionnent maintenant dans l'arborescence de test
  • La latence et l'encodage sont désormais disponibles dans la sortie du journal CSV
  • Les éléments de test n'utilisent plus par défaut le contenu précédent ; les éléments de test ne sont plus effacés lors du changement de langue.

Modifications incompatibles (utilisation) :

NB Les propriétés javax.net.ssl ​​ont été déplacées de jmeter.properties vers system.properties et ne fonctionneront plus si elles sont définies dans jmeter.properties.
La nouvelle disposition est plus flexible, car elle permet de définir des propriétés système arbitraires.

Les contextes de session SSL sont désormais créés par thread, au lieu d'être partagés. Cela génère une charge plus réaliste pour les tests HTTPS. Le changement est susceptible de ralentir les tests avec de nombreux threads SSL. Le comportement d'origine peut être activé en définissant la propriété JMeter :

https.sessioncontext.shared=true

L'échantillonneur étendu LDAP utilise désormais le même panneau pour les tests Thread Bind et Single-Bind. Cela signifie que tous les tests utilisant le test Single-bind devront être mis à jour pour définir le nom d'utilisateur et le mot de passe.

Bogue 41140 : le comportement de JMeterThread a été modifié afin que les PostProcessors soient exécutés dans l'ordre avant (tel qu'ils apparaissent dans le plan de test) plutôt que dans l'ordre inverse comme précédemment. Le comportement d'origine peut être restauré en définissant la propriété JMeter suivante :
jmeterthread.reversePostProcessors=true

Le gestionnaire d'autorisations HTTP a maintenant des colonnes supplémentaires pour le domaine et le domaine, de sorte que la solution temporaire consistant à utiliser '\' et '@' dans le nom d'utilisateur pour délimiter le domaine et le domaine a été supprimée.

Control  +  Z n'est plus utilisé pour Remote Start All - cela utilise maintenant Control  +  Shift  +  R

HttpClient utilise désormais l'authentification préemptive. Cela peut être modifié en définissant ce qui suit :

jmeter.properties :
httpclient.parameters.file=httpclient.parameters

httpclient.paramètres :
http.authentication.preemptive$Boolean=false

Le champ de port dans HTTP Request Defaults n'est plus ignoré pour les échantillonneurs https s'il est défini sur 80.

Modifications incompatibles (développement) :

NB La méthode clear() a été définie dans les interfaces suivantes : Clearable, JMeterGUIComponent et TestElement. Les méthodes ont des objectifs différents, c'est pourquoi deux d'entre elles ont été renommées : la méthode Clearable est maintenant clearData() et la méthode JMeterGUIComponent est maintenant clearGui(). Les modules complémentaires tiers peuvent avoir besoin d'être reconstruits.

Les classes Calculator et SamplingStatCalculator ne fournissent plus aucune mise en forme de leurs données. Le formatage doit maintenant être effectué à l'aide des classes jorphan.gui Renderer.

Suppression de la méthode obsolète JMeterUtils.split() - utilisez plutôt la version de JOrphanUtils.

Suppression de la méthode saveUsingJPEGEncoder() de SaveGraphicsService. Il n'était pas utilisé jusqu'à présent et utilisait la seule classe spécifique à Sun dans JMeter.

Nouvelles fonctionnalités/améliorations :

  • Ajouter la prise en charge des domaines et des domaines au gestionnaire d'autorisations HTTP
  • HttpClient se comporte désormais de la même manière que l'échantillonneur http JDK pour les certificats non valides, etc.
  • Ajout de httpclient.parameters.file pour permettre la définition des paramètres HttpClient
  • Bogue 33964 - Les requêtes HTTP peuvent envoyer un fichier en tant que corps de message entier si le nom/type est omis
  • Bogue 41705 - ajout d'une option d'encodage de contenu aux échantillonneurs HTTP pour les requêtes POST
  • Bogue 40933 , Bogue 40945 - Correspondance RE facultative lors de la récupération des URL de ressources intégrées
  • Bogue 27780 - (correctif 19936) crée une requête HTTP multipart/form-data sans télécharger le fichier
  • Bogue 42098 - Utiliser l'encodage spécifié pour les valeurs de paramètre dans HTTP GET
  • Bogue 42506 - Les threads JMeter utilisent désormais des sessions SSL indépendantes
  • Bogue 41707 - Prise en charge XML-RPC du proxy HTTP
  • Bogue 41880 - Ajout d'un filtrage de type de contenu au serveur proxy HTTP
  • Bogue 41876 - Ajouter plus d'options pour contrôler ce que le proxy HTTP génère
  • Bogue 42158 - Amélioration de la prise en charge des requêtes multipart/form-data dans le serveur proxy HTTP
  • Bogue 42173 - Laisser le proxy HTTP gérer l'encodage de la requête et décoder les valeurs des paramètres
  • Bogue 42674 - Autorisation HTTP préemptive par défaut si non spécifié
  • Prise en charge du protocole "fichier" dans les échantillonneurs HTTP
  • Les redirections automatiques HTTP sont désormais activées par défaut lors de la création de nouveaux échantillonneurs
  • Bogue 40103 - diverses améliorations LDAP
  • Bogue 40369 - LDAP : résultats de recherche stables dans l'échantillonneur
  • Bogue 40381 - LDAP : plus de chaînes descriptives
  • Le post-processeur BeanShell n'ignore plus les échantillons avec des données de résultat de longueur nulle
  • Ajout de la propriété beanshell.init.file pour exécuter un script BeanShell au démarrage
  • Bogue 39864 - Les fichiers d'initialisation BeanShell sont désormais trouvés dans le répertoire courant ou bin
  • Les éléments BeanShell prennent désormais en charge les interfaces ThreadListener et TestListener
  • BSF Sampler transmet des variables supplémentaires au script
  • Ajout d'un délai d'attente pour l'échantillonneur WebService (SOAP)
  • Bogue 40825 - Ajout de la prise en charge des instructions préparées JDBC
  • Étendre l'échantillonneur JDBC : Commit, Rollback, AutoCommit
  • Bogue 41457 - Ajouter l'option TCP Sampler pour ne pas réutiliser les connexions
  • Bogue 41522 - Utiliser le nom de l'échantillonneur JUnit dans les exemples de résultats
  • Bogue 42223 - FTP Sampler peut désormais télécharger des fichiers
  • Bogue 40804 - Changer la valeur par défaut du compteur en max = Long.MAX_VALUE
  • Utilisez la propriété jmeter.home (si présente) pour remplacer user.dir lors du démarrage de JMeter
  • Nouvelle option -j pour changer facilement le fichier journal jmeter
  • Élément HTTP Mirror Server Workbench
  • Bogue 41253 - étend XPathExtractor pour qu'il fonctionne avec des expressions XPath non-NodeList
  • Bogue 42088 - Ajouter une assertion XPath pour les booléens
  • Ajout de la fonction de variable __V pour résoudre les noms de variables imbriquées
  • Bogue 40369 - Assertion de réponse égale
  • Bogue 41704 - Autoriser la spécification de l'encodage du jeu de caractères pour le jeu de données CSV
  • Bogue 41259 - Champ de commentaire ajouté à tous les éléments de test
  • Ajouter un écart type au rapport de synthèse
  • Bogue 41873 - Ajouter un nom à AssertionResult et afficher AssertionResult dans ViewResultsFullVisualizer
  • Bogue 36755 - Enregistrer les fichiers de test XML avec l'encodage UTF-8
  • Utiliser le format date-heure ISO pour Tree View Listener (auparavant, l'année n'était pas affichée)
  • Améliorez le chargement des fichiers CSV : si possible, utilisez l'en-tête pour déterminer le format ; devinez le format d'horodatage si ce n'est pas des millisecondes
  • Bogue 41913 - TransactionController crée désormais des échantillons en tant que sous-échantillons de la transaction
  • Bogue 42582 - Jolie impression JSON dans Tree View Listener
  • Bogue 40099 - Activer l'utilisation de la variable d'objet dans ForEachController
  • Bogue 39693 - Afficher le tableau des résultats utilise une icône au lieu d'une case à cocher
  • Bogue 39717 - utiliser des icônes dans l'arborescence des résultats
  • Bogue 42247 - amélioration HCI
  • Autoriser l'utilisateur à annuler la boîte de dialogue Fermer

Améliorations non fonctionnelles :

  • Les appels de foncteurs peuvent maintenant être testés unitairement
  • Remplacer les classes com.sun.net par javax.net
  • Extraire les définitions jar externes dans le fichier build.properties
  • Utilisez des noms de jar spécifiques dans les chemins de classe de construction afin que les erreurs soient détectées plus tôt
  • Appels ORO rangés ; maintenant un seul cache, taille donnée par oro.patterncache.size, 1000 par défaut
  • Bogue 42326 - L'ordre des éléments dans les fichiers .jmx change

Mises à jour du jar externe :

  • Analyseur HTML 2.0-20060923
  • xstream 1.2.1/xpp3_min-1.1.3.4.O
  • Batik 1.6
  • BSF 2.4.0
  • collections-communs 3.2
  • commons-httpclient-3.1-rc1
  • commons-jexl 1.1
  • commons-lang-2.3 (ajouté)
  • JUnit 3.8.2
  • vitesse 1.5
  • commons-io 1.3.1 (ajouté)

Corrections de bogues :

  • Bogue 39773 - NTLM a maintenant besoin d'un nom d'hôte local - corrige un autre appel
  • Bogue 40438 - la définition de "httpclient.localaddress" n'a aucun effet
  • Bug 40419 - Correction de la traduction des messages chinois
  • Bogue 39861 - correction d'une faute de frappe
  • Bogue 40562 - les redirections n'invoquent plus les post-processeurs RE
  • Bogue 40451 - définir l'étiquette si elle n'est pas définie par l'échantillonneur
  • Correction de NPE dans CounterConfig.java en mode distant
  • Bogue 40791 - Calculatrice utilisée par le rapport de synthèse
  • Bogue 40772 - analyse correctement les champs manquants dans les fichiers journaux CSV
  • Bogue 40773 - L'horodatage du fichier journal XML n'est pas analysé correctement
  • Bogue 41029 - JMeter -t ne parvient pas à fermer le fichier JMX d'entrée
  • Bogue 40954 - Le mode statistique dans les tests distribués affiche des résultats erronés
  • Correction de l'exception ClassCast lors de l'utilisation d'un échantillonneur qui renvoie null, par exemple TestAction
  • Bogue 41140 - Les post-processeurs sont exécutés dans l'ordre inverse
  • Bogue 41277 - ajouter la latence et l'encodage à la sortie CSV
  • Bogue 41414 - Mac OS X peut ajouter un élément supplémentaire au chemin de classe -jar
  • Correction de NPE lors de l'enregistrement du nombre de threads dans les tests à distance
  • Bogue 34261 - NPE dans HtmlParser (autoriser les attributs manquants)
  • Bogue 40100 - vérifier le type de FileServer avant d'appeler close
  • Bogue 39887 - jmeter.util.SSLManager : impossible de charger le message d'erreur du magasin de clés
  • Bogue 41543 - exception lorsque le serveur Web renvoie "500 Internal Server Error" et que la longueur du contenu est 0
  • Bogue 41416 - n'utilisez pas d'entrée fragmentée pour l'entrée de zone de texte dans l'échantillonneur SOAP-RPC
  • Bogue 39827 - Longueur du contenu de l'échantillonneur SOAP pour les fichiers
  • Réparer l'exception de cast de classe dans Clear.java
  • Bogue 40383 - ne définissez pas le type de contenu s'il est déjà défini
  • Le bouton de test Mailer Visualiser fonctionne désormais si le plan de test n'a pas encore été enregistré
  • Bogue 36959 - Les raccourcis "ctrl c" et "ctrl v" ne fonctionnent pas sur les éléments de l'arborescence
  • Bogue 40696 - récupérer les ressources intégrées à partir des attributs STYLE URL()
  • Bug 41568 - Problème lors de l'exécution de tests à distance lors de l'utilisation d'un 'Compteur'
  • Correction de diverses classes qui supposaient que les horodatages étaient toujours des horodatages de fin :
    • SamplingStatCalculator
    • JTLData
    • RunningSample
  • Bogue 40325 - autoriser la spécification de proxyuser et proxypassword pour WebServiceSampler
  • Modifier la définition de proxy HttpClient pour utiliser NTCredentials ; ajout de la propriété http.proxyDomain pour cela
  • Bogue 40371 - problème de barre de défilement de l'assertion de réponse "modèle à tester"
  • Bogue 40589 - Entités XML sans échappement dans les URL intégrées
  • Bogue 41902 - NPE dans HTTPSampler lorsque responseCode = -1
  • Bug 41903 - ViewResultsFullVisualizer : la colonne d'état semble mauvaise lorsque vous faites un copier-coller
  • Bogue 41837 - Corruption de la valeur du paramètre dans le proxy
  • Bogue 41905 - Impossible de couper/coller/sélectionner les champs du gestionnaire d'en-tête dans Java 1.6
  • Bogue 41928 - Faire apparaître tous les en-têtes de requête envoyés par l'échantillonneur de requête HTTP dans le résultat de l'échantillon
  • Bogue 41944 - Les sous-résultats ne sont pas gérés de manière récursive par ResultSaver
  • Bogue 42022 - HTTPSampler n'autorise pas plusieurs en-têtes du même nom
  • Bogue 42019 - Type de contenu non stocké dans la requête HTTP redirigée avec sous-résultats
  • Bogue 42057 - la connexion peut être nulle si la méthode est nulle
  • Bogue 41518 - JMeter modifie le type de contenu de l'en-tête HTTP pour la requête POST
  • Bogue 42156 - HTTPRequest HTTPClient incorrectement la valeur du paramètre urlencodes dans POST
  • Bogue 42184 - Nombre d'octets pour les sous-échantillons non ajoutés à l'échantillon lorsque des sous-échantillons sont ajoutés
  • Bogue 42185 - Si un échantillonneur HTTP suit une redirection et est configuré pour télécharger des images, les images sont téléchargées plusieurs fois
  • Bogue 39808 - Une redirection non valide entraîne une heure d'échantillonnage incorrecte
  • Bogue 42267 - Échec de la mise à jour simultanée de l'interface graphique dans l'enregistrement proxy
  • Bug 30120 - Le nom du contrôleur simple est réinitialisé si un nouveau contrôleur simple est ajouté en tant qu'enfant
  • Bogue 41078 - fusionner les résultats lors du changement de nom du plan de test
  • Bogue 40077 - La création de nouveaux éléments copie les valeurs des éléments existants
  • Bogue 42325 - Implémentation de la méthode "clear" pour les LogicControllers
  • Bogue 25441 - Les modifications de TestPlan sont parfois détectées de manière incorrecte (isDirty)
  • Bogue 39734 - Écouteurs partagés après une opération de copier/coller
  • Bogue 40851 - Contrôleur de boucle avec 0 itérations, arrête d'évaluer le champ des itérations
  • Bug 24684 - problèmes de démarrage à distance si des espaces dans le chemin du jmeter
  • Utiliser la configuration de l'écouteur lors du chargement des fichiers de données CSV
  • Les méthodes de fonction setParameters() doivent être synchronisées
  • Correction de l'argument facultatif long de la CLI pour exiger "=" (comme pour les options courtes)
  • Correction de SlowSocket pour qu'il fonctionne correctement avec Httpclient (à la fois http et https)
  • Bogue 41612 - Boucle imbriquée dans Si le contrôleur se comporte de manière erratique
  • Bogue 42232 - le changement de langue efface le contenu UDV
  • La fonction Jexl n'autorisait pas les variables

Variante 2.2

Modifications incompatibles :

L'horodatage est maintenant réglé sur l'heure de début de l'échantillonneur (c'était la fin). Pour revenir au comportement précédent, changez la propriété sampleresult.timestamp.start en false (ou commentez-la)

Le format de sortie JMX a été simplifié et les fichiers ne sont pas rétrocompatibles

Le fichier JMeter.BAT ne change plus de répertoire pour JMeter home, mais s'exécute à partir du répertoire de travail actuel. Les fichiers jmeter-n.bat et jmeter-t.bat changent dans le répertoire contenant le fichier d'entrée.

Les écouteurs sont maintenant démarrés un peu plus tard afin de permettre l'utilisation des noms de variables. Cela peut causer des problèmes ; si c'est le cas, définissez ce qui suit dans jmeter.properties :
jmeterengine.startlistenerslater=false

L'interface graphique développe désormais l'arborescence par défaut lors du chargement d'un plan de test. Cela peut être désactivé en définissant la propriété JMeter onload.expandtree=false

Problèmes connus :

  • Les post-processeurs s'exécutent dans l'ordre inverse (voir Bug 41140 )
  • Le contrôleur de module ne fonctionne pas en mode non graphique
  • Le rapport agrégé et certains autres écouteurs utilisent des quantités croissantes de mémoire à mesure qu'un test progresse
  • Ne gère pas toujours correctement l'encodage autre que celui par défaut
  • Les espaces dans le chemin d'installation causent des problèmes pour le mode client-serveur
  • Le changement de langue ne se propage pas à tous les éléments de test
  • SamplingStatCalculator conserve une liste de tous les échantillons à des fins de calcul ; cela peut entraîner un épuisement de la mémoire dans les tests de longue durée
  • Ne gère pas correctement les certificats de serveur s'ils ont expiré ou ne sont pas installés localement

Nouvelle fonctionnalité :

  • Fonction de rapport
  • Post-processeur d'extraction XPath. Gère les correspondances simples et multiples.
  • Format de fichier JMX plus simple (2.2)
  • Le code BeanshellSampler peut mettre à jour ResponseData directement
  • Bogue 37490 - Autoriser UDV comme délai dans l'assertion de durée
  • Émulation de connexion lente pour HttpClient
  • Amélioration de JUnitSampler afin que, par défaut, les erreurs d'assertion et les exceptions ne soient pas ajoutées au message d'erreur. Les utilisateurs doivent vérifier explicitement l'ajout dans l'échantillonneur
  • Amélioration de la documentation de l'échantillonneur de service Web pour expliquer son fonctionnement avec CSVDataSet
  • Amélioration de la documentation de la fonction javascript pour expliquer la virgule d'échappement
  • Autoriser les noms de fichier d'ensemble de données CSV à être absolus
  • Signaler mieux les erreurs du compilateur d'arborescence
  • Ne réinitialisez pas la variable Regex Extractor si la valeur par défaut est vide
  • propriété includecontroller.prefix ajoutée
  • L'extracteur d'expressions régulières définit le nombre de groupes
  • Peut maintenant enregistrer tout l'écran en tant qu'image, pas seulement le volet de droite
  • Bogue 38901 - Ajout d'un en-tête SOAPAction facultatif à l'échantillonneur SOAP
  • Nouveaux éléments de test BeanShell : Timer, PreProcessor, PostProcessor, Listener
  • La fonction __split() efface maintenant la variable suivante, elle peut donc être utilisée avec ForEach Controller
  • Bogue 38682 - ajout de la fonctionnalité CallableStatement à JDBC Sampler
  • Faciliter le changement de port RMI/Server
  • Ajoutez la propriété jmeter.save.saveservice.xml_pi pour fournir une instruction de traitement XML facultative dans les fichiers JTL
  • Ajouter des octets et une URL aux éléments pouvant être enregistrés dans des exemples de fichiers journaux (XML et CSV)
  • Le post-processeur "Enregistrer les réponses dans un fichier" enregistre désormais le nom du fichier généré avec l'échantillon, et le nom du fichier peut être inclus dans le fichier journal de l'échantillon.
  • Modifiez le script DOS jmeter.bat pour qu'il fonctionne à partir de n'importe quel répertoire
  • Nouvelle option -N pour définir nonProxyHosts à partir de la ligne de commande
  • Nouvelle option -S pour définir les propriétés du système à partir du fichier d'entrée
  • Bogue 26136 - autoriser la configuration de l'adresse locale
  • Développer l'arborescence par défaut lors du chargement d'un plan de test - peut être désactivé en définissant la propriété onload.expandtree=false
  • Bogue 11843 - URL Rewriter peut désormais mettre en cache l'identifiant de session
  • Le préprocesseur de compteur prend désormais en charge les nombres formatés
  • Ajout de la prise en charge des méthodes HEAD PUT OPTIONS TRACE et DELETE
  • Autoriser la modification de l'implémentation HTTP par défaut
  • Enregistrez éventuellement le nombre de threads actifs (groupe et tous) dans les fichiers de résultats
  • Les variables/fonctions peuvent désormais être utilisées dans les noms de fichiers de l'écouteur
  • Nouvelle fonction __time() ; définir les propriétés et les variables START.MS/START.YMD/START.HMS
  • Ajouter un nom de thread aux vues arborescentes et tabulaires
  • Ajouter des fonctions de débogage : Quelle classe, débogage activé, débogage désactivé
  • Calculatrice sans mise en cache - utilisée par Table Visualiser pour réduire l'empreinte mémoire
  • Rapport récapitulatif - similaire au rapport agrégé, mais utilise moins de mémoire
  • Bogue 39580 - option de recyclage pour l'ensemble de données CSV
  • Bogue 37652 - prise en charge du protocole Ajp Tomcat
  • Bogue 39626 - Chargement des requêtes SOAP/XML-RPC à partir du fichier
  • Bogue 39652 - Autoriser la troncature des étiquettes sur AxisGraph
  • Autoriser l'utilisation de l'analyseur html 1.6
  • Bogue 39656 - toujours utiliser l'action SOAP si elle est fournie
  • Inclure automatiquement les propriétés du fichier user.properties
  • Ajouter la fonction __jexl() - évalue les expressions Commons JEXL
  • Chargez éventuellement les propriétés JMeter à partir de user.properties et les propriétés système à partir de system.properties.
  • Bogue 39707 - autoriser la correspondance Regex avec l'URL
  • Ajouter une heure de début au Visualiseur de tableau
  • Les échantillonneurs HTTP peuvent désormais extraire les ressources intégrées pour tous les types de médias requis

Corrections de bogues :

  • Correction de NPE lorsqu'aucun module n'est sélectionné dans Module Controller
  • Correction de NPE dans XStream en l'absence de ResponseData
  • Supprimer le préfixe ?xml lors de l'exécution avec Java 1.5 et sans x-jars
  • Bogue 37117 - La fonction setProperty() doit renvoyer "" ; ajout du retour optionnel du réglage d'origine
  • Correction du format d'heure de sortie CSV
  • Bogue 37140 - mieux gérer l'encodage dans RegexFunction
  • Chargez tous les cookies, pas seulement le premier ; corriger l'exception de cast de classe
  • Corriger le nom du chemin d'accès aux cookies par défaut (supprimer le nom de la page)
  • Nom d'attribut de code de résultat fixe
  • Bogue 36898 - appliquer l'encodage à RegexExtractor
  • Ajouter des propriétés pour enregistrer les sous-résultats, les assertions, la latence, samplerData, responseHeaders, requestHeaders et l'encodage
  • Bogue 37705 - La minuterie de synchronisation fonctionne maintenant correctement après l'arrêt de l'exécution
  • Bogue 37716 - La demande de proxy gère désormais correctement le fichier Post
  • HttpClient Sampler enregistre désormais la latence
  • Correction de NPE lors de l'utilisation de la fonction JavaScript sur le plan de test
  • Correction de l'analyse Base Href dans htmlparser
  • Bogue 38256 - gérer le cookie sans chemin
  • Bogue 38391 - utiliser long lors de l'accumulation de retards de minuterie
  • Bogue 38554 - La fonction aléatoire utilise désormais des nombres longs
  • Bogue 35224 - autoriser les attributs en double pour l'échantillonneur LDAP
  • Bogue 38693 - L'échantillonneur de service Web peut désormais utiliser le protocole https
  • Bogue 38646 - Regex Extractor efface désormais les anciennes variables en cas d'échec de correspondance
  • Bogue 38640 - correction de la mise en pool de WebService Sampler
  • Bogue 38474 - L'analyseur de liens HTML ne suit pas les liens de cadre
  • Bug 36430 - Le compteur utilise maintenant long plutôt que int pour augmenter la portée
  • Bogue 38302 - correction de la fonction XPath
  • Bogue 38748 - JDBC DataSourceElement échoue avec les tests à distance
  • Bogue 38902 - parfois -1 semble être retourné inutilement pour le code de réponse
  • Bogue 38840 - rend l'assertion XML thread-safe
  • Bogue 38681 - Inclure le contrôleur fonctionne désormais en mode non graphique
  • Ajouter l'implémentation d'écriture (OS, IS) à TCPClientImpl
  • Le convertisseur de résultat d'échantillon enregistre le code de réponse sous le nom "rc". Auparavant, il était enregistré sous "rs" mais lu avec "rc" ; il sera désormais également lu avec "rc". Les feuilles de style XSL acceptent également désormais "rc" ou "rs"
  • Correction de la fonction de compteur afin que chaque instance de compteur soit indépendante (auparavant, les compteurs par utilisateur étaient partagés entre les instances de la fonction)
  • Correction des exemples TestBean pour qu'ils fonctionnent
  • Correction de l'analyseur JTidy afin qu'il n'ignore pas les balises de corps avec des images d'arrière-plan
  • Correction de l'analyseur HtmlParser afin qu'il capture toutes les images d'arrière-plan
  • Bogue 39252 définit le résultat de l'échantillon SoapSampler à partir de données XML
  • Bogue 38694 - WebServiceSampler ne définit pas correctement l'encodage des données
  • Result Collector ferme maintenant les fichiers d'entrée lus par les écouteurs
  • Bogue 25505 - Le premier échantillonnage HTTP échoue avec "Nom d'hôte HTTPS incorrect : devrait être 'localhost'"
  • Bogue 25236 - supprimer la double barre de défilement de l'écouteur de résultat d'assertion
  • Bug 38234 - Problème de division par zéro de Graph Listener
  • Bogue 38824 - clarifier le comportement de l'état Ignorer
  • Bogue 38250 - jmeter.properties "langue" prend désormais en charge le suffixe de pays, pour zh_CN et zh_TW, etc.
  • Le fichier jmeter.properties est maintenant fermé après avoir été lu
  • Bogue 39533 - StatCalculator a ajouté des éléments erronés
  • Bogue 39599 - Exception de modification simultanée
  • HTTPSampler2 gère désormais correctement les redirections Auto et Follow
  • Bogue 29481 - correction du rechargement des résultats d'échantillons afin que les sous-résultats ne soient pas comptés deux fois
  • Bogue 30267 - gérer correctement les redirections automatiques
  • Bogue 39677 - autoriser l'espace dans la variable JMETER_BIN
  • Utilisez l'analyse et la gestion des cookies Commons HttpClient. Résoudre divers problèmes de gestion des cookies.
  • Bogue 39773 - NTCredentials a besoin d'un nom d'hôte

Autres changements

  • Mise à jour vers HTTPClient 3.0 (à partir de 2.0)
  • Mise à jour vers les collections communes 3.1
  • Mise en forme améliorée des données de demande dans l'arborescence
  • Documentation utilisateur étendue
  • Ajout du MANIFEST, AVIS et LICENCE à tous les bocaux
  • Extraire l'interface htmlparser dans un fichier jar séparé pour permettre de remplacer l'analyseur
  • Suppression de l'interface graphique de configuration SQL car elle n'est plus nécessaire (ou ne fonctionne plus !)
  • HTTPSampler n'enregistre plus d'avertissement pour la page introuvable (404)
  • StringFromFile désormais appelable en tant que __StringFromFile (ainsi que _StringFromFile)
  • Mise à jour vers Commons Logging 1.1

Variante 2.1.1

Nouvelle fonctionnalité :

  • Le nouveau contrôleur Inclure permet à un plan de test de référencer un fichier jmx externe
  • Nouveau JUnitSampler ajouté pour l'utilisation des classes JUnit Test
  • Le nouvel écouteur Aggregate Graph est capable de représenter graphiquement des statistiques agrégées
  • Peut fournir des entrées de chemin de classe supplémentaires à l'aide de la propriété user.classpath et de l'élément Plan de test

Corrections de bogues :

  • AccessLog Sampler et éléments de test JDBC remplis correctement à partir des plans de test 2.0
  • BSF Sampler remplit maintenant le nom de fichier et les paramètres du plan de test enregistré
  • Bogue 36500 - gérer les données manquantes avec plus de grâce dans WebServiceSampler
  • Bogue 35546 - ajouter une fusion au menu contextuel
  • Bogue 36642 - Le récapitulatif a cessé de fonctionner dans la version 2.1
  • Bogue 36618 - La ligne d'en-tête CSV ne correspondait pas aux données enregistrées
  • JMeter devrait maintenant fonctionner sous JVM 1.3 (mais ne se construit pas avec 1.3)

Variante 2.1

Nouvelle fonctionnalité :

  • Nouveau format de fichier de script de test - plus petit, plus compact, plus lisible
  • Nouveau format de fichier de résultat d'échantillon - plus petit, plus compact
  • Assertion XSchema
  • Affichage de l'arborescence XML
  • Élément de configuration de l'ensemble de données CSV
  • Nouvel élément de configuration du pool de connexions JDBC
  • Minuterie de synchronisation
  • fonction setProperty
  • Enregistrer les données de réponse en cas d'erreur
  • Ant JMeter XSLT affiche désormais éventuellement les réponses ayant échoué et a des liens internes
  • Autoriser l'omission du nom de la variable JavaScript
  • Modification des échantillonneurs suivants pour définir l'étiquette de l'échantillon à partir du nom de l'échantillonneur
  • Tous les éléments de test peuvent être enregistrés sous forme d'image graphique dans un fichier
  • Bogue 35026 - ajout de la correspondance de modèle RE au proxy
  • Bogue 34739 - Amélioration de la minuterie de débit constant
  • Bogue 25052 - utiliser l'encodage de réponse pour créer une chaîne de comparaison dans l'assertion de réponse
  • Nouvelles icônes facultatives
  • Autoriser la définition d'icônes via des fichiers de propriétés
  • Nouvelles feuilles de style pour la sortie de test XML au format 2.1
  • Enregistrer les échantillonneurs, l'élément de configuration et les écouteurs au format PNG
  • Prise en charge améliorée du traitement WSDL
  • Nouvel échantillonneur JMS pour les messages de rubrique et de file d'attente
  • Mode d'emploi pour les échantillonneurs JMS
  • Bug 35525 - Ajout de la localisation espagnole
  • Bogue 30379 - autorise le remplacement de server.rmi.port
  • amélioration de l'écouteur du moniteur pour enregistrer les statistiques calculées
  • Les fonctions et les variables fonctionnent désormais au niveau supérieur du plan de test

Corrections de bogues :

  • Bogue 34586 - XPath restait toujours comme /
  • BeanShellInterpreter ne gérait pas correctement les objets nuls
  • Corriger les noms des groupes de ressources chinois
  • Enregistrez les noms de champ si nécessaire dans des fichiers CSV
  • Assurez-vous que le fichier XML est fermé
  • Icônes correctes maintenant affichées pour les composants TestBean
  • Autoriser les pots facultatifs manquants lors de la création de menus
  • Échantillonneurs modifiés pour définir l'étiquette de l'échantillon à partir du nom de l'échantillonneur, comme c'était le cas pour HTTP
  • Correction de divers échantillonneurs pour éviter les NPE lorsque des données incomplètes sont fournies
  • Correction du gestionnaire de cookies pour utiliser les secondes ; ajouter le débogage
  • Bogue 35067 - configuration du nom de fichier lors de l'utilisation de l'option -t
  • Ne remplacez pas les propriétés TestElement.* par des UDV dans Proxy
  • Bogue 35065 - ne pas enregistrer les anciennes extensions dans File Saver
  • Bug 25413 - n'activez pas le bouton Redémarrer inutilement
  • Bogue 35059 - Le contrôleur d'exécution a cessé de fonctionner
  • Effacez toutes les connexions restantes créées par LDAP Extended Sampler
  • Bogue 23248 - le contrôleur de module ne se souvenait pas des éléments entre l'enregistrement et le rechargement
  • Corriger les paramètres régionaux chinois
  • Bogue 29920 - modifiez les paramètres régionaux par défaut si nécessaire pour vous assurer que les propriétés par défaut sont récupérées lorsque l'anglais est sélectionné.
  • Corrections de bogues pour les sous-titres du moniteur Tomcat
  • Échantillonneur de service Web fixe pour qu'il fonctionne avec des variables définies par l'utilisateur
  • Bordures d'écran fixes pour les éléments de l'interface graphique de configuration LDAP
  • Bogue 31184 - assurez-vous que l'encodage est spécifié dans l'échantillonneur JDBC
  • Échantillonneur TCP - partage uniquement les sockets avec le même hôte : détails du port ; corriger le manuel
  • Extraire l'attribut src pour les balises d'intégration dans les analyseurs JTidy et Html

Variante 2.0.3

Nouvelle fonctionnalité :

  • Assertion XPath et fonction XPath
  • Contrôleur de commutateur
  • ForEach Controller peut désormais parcourir des ensembles de groupes
  • Autoriser la modification du délimiteur CSVRead (voir jmeter.properties)
  • Bogue 33920 - autoriser des fichiers de propriétés supplémentaires
  • Bogue 33845 - autoriser le remplacement direct du répertoire d'accueil

Corrections de bogues :

  • Constante imbriquée Regex Extractor non placée au bon endroit Bogue 32395
  • L'heure de démarrage est réinitialisée à maintenant si nécessaire pour que le délai fonctionne correctement.
  • Les heures de début/fin manquantes dans le planificateur sont supposées être maintenant, pas 1970
  • Bogue 28661 - 304 réponses n'apparaissant pas dans les écouteurs
  • Les scripts DOS gèrent désormais mieux les différents disques
  • Bogue 32345 - HTTP Rewriter ne fonctionne pas avec la requête HTTP par défaut
  • Attrapez les exceptions d'exécution afin qu'une erreur dans un écouteur n'affecte pas les autres
  • Bogue 33467 - __threadNum() extrait le numéro à tort
  • Bogue 29186 , 33299 - correction de l'analyse CLI de "-" dans le deuxième argument
  • Correction du bogue d'analyse CLI : -D arg1=arg2. Enregistrez plus de paramètres de démarrage.
  • Correction des analyseurs JTidy et HTMLParser pour gérer le formulaire src= et le lien rel=stylesheet
  • JMeterThread enregistre désormais les erreurs dans jmeter.log qui apparaissaient sur la console
  • Assurez-vous que la condition WhileController est vérifiée dynamiquement
  • Bug 32790 s'assurer que la condition du contrôleur est réévaluée à chaque fois
  • Bogue 30266 - Document sur l'affichage des réponses d'enregistrement proxy
  • Bogue 33921 ​​- la fusion ne doit pas changer le nom du fichier
  • Fermer le fichier donne maintenant la possibilité d'enregistrer les modifications
  • Bogue 33559 - correctifs du contrôleur d'exécution

Autres changements :

  • Pour aider à l'évaluation des variables, JMeterThread définit "l'échantillonnage a commencé" un peu plus tôt (voir jmeter.properties)
  • Bogue 33796 - supprimer les cookies avec des valeurs nulles/vides
  • Meilleure vérification du nombre de paramètres dans la fonction JavaScript
  • Le groupe de threads est désormais défini par défaut sur 1 boucle au lieu de toujours
  • Tous les accès à Beanshell se font désormais via une seule classe ; n'a besoin que du pot BSH au moment de l'exécution
  • Bogue 32464 - documenter les paramètres Direct Draw dans jmeter.bat
  • Bogue 33919 - augmentation de la taille des champs de compteur
  • Bogue 32252 - ForEach n'initialisait pas les compteurs

Variante 2.0.2

Nouvelle fonctionnalité :

  • Pendant que le contrôleur
  • Scripts d'initialisation BeanShell
  • L'économiseur de résultats peut éventuellement enregistrer uniquement les résultats ayant échoué
  • L'affichage en HTML a l'option de ne pas télécharger les cadres et les images, etc.
  • Plusieurs éléments de l'arbre peuvent maintenant être activés/désactivés/copiés/collés à la fois
  • Fonction __split() ajoutée
  • Le bogue 28699 permet à Assertion de considérer les réponses infructueuses - par exemple 404 - comme réussies
  • Bug 29075 Regex Extractor peut désormais extraire des données de l'en-tête de réponse http ainsi que du corps
  • Les fonctions __log() peuvent maintenant écrire sur stdout et stderr
  • Le modificateur d'URL peut désormais éventuellement ignorer les paramètres de requête

Corrections de bogues :

  • Si le contrôleur fonctionne maintenant après la première condition fausse Bogue 31390
  • Regex GUI perdait la trace de la case à cocher Header/Body Bogue 29853
  • L'affichage au format HTML gère désormais les cadres et les images relatives
  • Clic droit ouvrir remplacé par fusionner
  • Résoudre certains problèmes de glisser-déposer
  • Correction de l'exemple de démonstration foreach pour que cela fonctionne
  • L'invite de mot de passe SSL du bogue 30741 fonctionne à nouveau
  • StringFromFile ferme désormais les fichiers à la fin du test ; commencer et finir maintenant facultatif comme prévu
  • Bogue 31342 Correction du texte des en-têtes SOAP Sampler
  • Le proxy doit maintenant être arrêté avant de pouvoir être supprimé Bogue 25145
  • L' analyseur de liens prend désormais en charge le bogue BASE href 25490
  • Bogue 30917 Classfinder ignore les noms en double
  • Bogue 22820 Autoriser l'effacement de la valeur du compteur
  • Bogue 28230 Correction de NPE dans HTTP Sampler récupérant les ressources intégrées
  • Améliorer la gestion de StopTest ; attraper et enregistrer d'autres erreurs
  • ForEach Controller n'exécute plus d'échantillons si la première variable n'est pas définie
  • Bogue 28663 NPE dans l'exécution JDBC à distance
  • Bogue 30110 Interblocage dans le traitement stopTest
  • Bogue 31696 La durée ne fonctionne pas correctement lors de l'utilisation du planificateur
  • JMeterContext utilise maintenant ThreadLocal - devrait corriger certaines erreurs NPE potentielles

Variante 2.0.1

Version de correction de bogue. À confirmer.

Version 2.0

  • Analyse HTML améliorée ; a maintenant le choix entre 3 analyseurs, et la plupart des éléments intégrés peuvent maintenant être détectés et téléchargés.
  • Les redirections peuvent désormais être déléguées à URLConnection en définissant la propriété JMeter HTTPSamper.delegateRedirects=true (la valeur par défaut est false)
  • Les méthodes Stop Thread et Stop Test ont été ajoutées pour les échantillonneurs et les assertions, etc.
  • Thread Group Gui a maintenant un volet supplémentaire pour spécifier ce qui se passe après une erreur Sampler : Continuer (comme maintenant), Stop Thread ou Stop Test. Cela doit être étendu à un niveau inférieur à un moment donné.
  • Ajout de l'arrêt au menu Exécuter. C'est la même chose que Stop sauf que cela permet aux Threads de se terminer normalement (c'est-à-dire après que l'échantillon suivant soit terminé)
  • Les échantillons distants peuvent être mis en cache jusqu'à la fin d'un test en définissant la propriété hold_samples=true lors de l'exécution du serveur. Plus de travail est nécessaire pour pouvoir contrôler cela à partir de l'interface graphique
  • Le serveur proxy a la possibilité d'ignorer l'enregistrement des en-têtes du navigateur
  • Le redémarrage du proxy fonctionne mieux (l'arrêt attend que le démon se termine)
  • Le planificateur ignore le démarrage s'il est déjà passé
  • Le planificateur a maintenant une fonction de retard
  • ajout de l'élément de test Summariser (principalement pour les tests non graphiques). Cela imprime des statistiques récapitulatives sur System.out et/ou le fichier journal de temps en temps (3 minutes par défaut). Plusieurs résumés peuvent être utilisés ; les échantillons sont accumulés par nom de synthétiseur.
  • Options supplémentaires du serveur proxy : Créer tous les échantillonneurs avec le maintien en vie désactivé Ajouter des marqueurs de séparation entre les ensembles d'échantillons Ajouter une assertion de réponse au premier échantillonneur de chaque ensemble
  • Le plan de test a un champ de commentaire
  • La page d'aide peut maintenant être poussée en arrière-plan
  • Page d'aide de la fonction séparée
  • Fonctions nouvelles / modifiées
    • Fonctions __property() et __P()
    • __log() et __logn() - pour écrire dans le fichier journal
    • _StringFromFile peut maintenant traiter une séquence de fichiers, par exemple dir/file01.txt, dir/file02.txt etc.
    • La fonction _StringFromFile() peut désormais utiliser une variable ou une fonction pour le nom du fichier
  • Assertions nouvelles / modifiées
    • L'assertion de réponse fonctionne désormais pour les URL et gère mieux les données nulles
    • L'assertion de réponse peut désormais correspondre également au code de réponse et au message de réponse
    • Assertion HTML utilisant JTidy pour vérifier le code HTML bien formé
  • Si contrôleur (pas encore entièrement fonctionnel)
  • Contrôleur de transaction (agrège les temps de ses enfants)
  • Nouveaux échantillonneurs
    • Échantillonneur BSF de base (optionnel)
    • BeanShell Sampler (facultatif, doit être téléchargé depuis www.beanshell.org
    • Échantillonneur TCP de base
  • Démarrez éventuellement le serveur BeanShell (permet l'accès à distance aux variables et méthodes JMeter)

Édition 1.9.1

À déterminer

Version 1.9

  • Les exemples de fichiers journaux de résultats peuvent désormais être au format CSV ou XML
  • Nouveau modèle d'événement pour la notification des événements d'itération lors de l'exécution du plan de test
  • Nouvelle fonction Javascript pour exécuter des instructions javascript arbitraires
  • De nombreuses améliorations de l'interface graphique
  • De nouveaux pré-processeurs et post-processeurs remplacent les modificateurs et les modificateurs basés sur les réponses.
  • Compatible avec jdk1.3
  • Les fonctions JMeter sont maintenant entièrement récursives et universelles (peuvent utiliser des fonctions comme paramètres de fonctions)
  • La fenêtre d'aide intégrée prend désormais en charge les liens hypertextes
  • Nouvelle fonction aléatoire
  • Nouvelle assertion XML
  • Nouvel échantillonneur LDAP (code alpha)
  • Nouvelle tâche Ant pour exécuter JMeter (dans le dossier extras)
  • Nouvelle implémentation de test Java Sampler (pour aider les développeurs)
  • Utilisation plus efficace de la mémoire, chargement plus rapide des fichiers .jmx
  • Nouvel échantillonneur SOAP (code alpha)
  • Nouveau calcul de médiane dans le visualiseur de résultats de graphique
  • Élément de configuration par défaut ajouté pour le bénéfice du développeur
  • Diverses améliorations des performances pendant le test
  • Nouvel enregistreur de fichier simple pour une surcharge minimale de l'interface graphique pendant l'exécution du test
  • Nouvelle fonction : StringFromFile - récupère les valeurs d'un fichier
  • Nouvelle fonction : CSVRead - récupère plusieurs valeurs d'un fichier
  • Les fonctions n'ont plus besoin d'être encodées - les valeurs spéciales doivent être échappées avec "\" s'il s'agit de valeurs littérales
  • Nouvelle fonctionnalité couper/copier/coller
  • Les tests SSL devraient fonctionner avec moins d'erreurs de l'utilisateur et en mode non-gui
  • Mailer Model fonctionne en mode non-gui
  • Nouveau contrôleur de débit
  • Nouveau contrôleur de module
  • Les tests peuvent désormais être programmés pour s'exécuter d'une certaine heure à une certaine heure
  • Les serveurs JMeter distants peuvent être démarrés à partir d'un client non-gui. De plus, en mode graphique, tous les serveurs distants peuvent être démarrés en un seul clic
  • Les groupes de threads peuvent désormais être exécutés en série ou en parallèle (par défaut)
  • Nouvelles options de ligne de commande pour remplacer les propriétés
  • Nouvelle affirmation de taille

Édition 1.8.1

  • Version de correction de bogue. De nombreux bugs ont été corrigés.
  • Suppression du nœud "racine" redondant de l'arborescence de test.
  • Icônes réintroduites dans l'arborescence de test.
  • Quelques réorganisations du code pour améliorer le processus de construction.
  • Afficher l'arborescence des résultats a ajouté une option pour afficher les résultats sous forme de document Web (toujours bogué à ce stade).
  • Nouvelle ligne Total dans Aggregate Listener (toujours boguée à ce stade).
  • Améliorations de la possibilité de modifier les paramètres régionaux de JMeter.
  • Améliorations du gestionnaire SSL.

Version 1.8

  • Amélioration des calculs du rapport Aggregate.
  • Journalisation simplifiée des applications.
  • Nouvelle assertion de durée.
  • Correction et amélioration de Mailer Visualizer.
  • Améliorations de la récupération des ressources de HTTP Sampler (sockets et descripteurs de fichiers).
  • Amélioration de la gestion interne de JMeter du démarrage/arrêt des tests.
  • Correction et ajout d'options au comportement des contrôleurs entrelacés et aléatoires.
  • Nouvel élément de configuration du compteur.
  • Nouvel élément de configuration des paramètres utilisateur.
  • Amélioration des performances de l'ouvre-fichier.
  • Les fonctions et autres éléments peuvent accéder aux variables globales.
  • Système d'aide disponible dans l'interface graphique de JMeter.
  • Les éléments de test peuvent être désactivés.
  • La langue/locale peut être modifiée lors de l'exécution de JMeter (principalement).
  • Afficher l'arborescence des résultats peut être configuré pour enregistrer uniquement les erreurs.
  • Diverses corrections de bogues.

Édition 1.7.3

  • Nouvelles fonctions qui offrent plus de possibilité de modifier dynamiquement les demandes pendant les exécutions de test.
  • Nouvelles traductions en japonais et en allemand.
  • Suppression des messages d'erreur Log4J ennuyeux.
  • Prise en charge améliorée du chargement des fichiers de plan de test de la version JMeter 1.7 (fichiers .jmx).
  • JMeter prend désormais en charge les serveurs proxy qui nécessitent une authentification par nom d'utilisateur/mot de passe.
  • La boîte de dialogue indiquant l'arrêt du test ne bloque pas JMeter en cas de problème d'arrêt du test.
  • L'interface graphique peut exécuter plusieurs serveurs JMeter distants (corrige le bogue de l'interface graphique qui empêchait cela).
  • Boîte de dialogue pour aider à créer des appels de fonction dans l'interface graphique.
  • Nouveau commutateur Keep-alive dans les requêtes HTTP pour indiquer que JMeter doit ou ne doit pas utiliser Keep-Alive pour les sockets.
  • Les requêtes HTTP Post peuvent avoir des arguments de style GET dans le champ Path. Proxy les enregistre correctement maintenant.
  • Nouvelles variables statiques à l'échelle du test définies par l'utilisateur.
  • Afficher l'arborescence des résultats affiche désormais plus d'informations, y compris le nom de la demande (correspondant au nom dans l'arborescence de test) et la demande complète et les données POST.
  • Suppression du visualiseur de résultats de vue obsolète (utilisez plutôt l'arborescence de résultats de vue).
  • Améliorations des performances.
  • Améliorations de l'utilisation de la mémoire.
  • Améliorations de l'interface graphique du visualiseur graphique.
  • Mises à jour et correctifs de Mailer Visualizer.

Édition 1.7.2

  • JMeter avertit désormais l'utilisateur lorsque le test a cessé de s'exécuter.
  • Le serveur proxy HTTP enregistre les requêtes HTTP avec la redirection désactivée.
  • Les requêtes HTTP peuvent être invitées à suivre les redirections ou à les ignorer.
  • Diverses améliorations de l'interface graphique.
  • Nouveau contrôleur aléatoire.
  • Nouvel échantillonneur SOAP/XML-RPC.

Édition 1.7.1

  • L'architecture de JMeter a été remaniée pour une séparation plus complète entre le code de l'interface graphique et le code du moteur de test.
  • Utilisation du code Avalon pour enregistrer les plans de test au format XML en tant qu'objets de configuration
  • Tous les auditeurs peuvent enregistrer des données dans un fichier et charger les mêmes données ultérieurement.

Version 1.7Bêta

  • Meilleure prise en charge XML des caractères spéciaux (Tushar Bhatia)
  • Fonctionnement non-GUI et exécution du plan de test non-GUI (Tushar Bhatia)
  • Suppression de la dépendance Swing des classes JMeter de base
  • Internationalisation (Takashi Okamoto)
  • Correction de bogue AllTests (neth6@atozasia.com)
  • Correction du bogue de ClassFinder (neth6@atozasia.com)
  • Nouveau contrôleur de boucle
  • Proxy Server enregistre des échantillons HTTP à partir du navigateur (et documentés dans le manuel de l'utilisateur)
  • Prise en charge des formulaires en plusieurs parties
  • Classe d'en-tête HTTP pour la personnalisation de l'en-tête
  • Extraire les informations d'en-tête HTTP des réponses (Jamie Davidson)
  • Mailer Visualizer rajouté à JMeter
  • JMeter encode maintenant l'URL des noms et des valeurs des paramètres
  • les auditeurs ne donnent plus d'exceptions si leur interface graphique n'a pas été initialisée
  • HTTPS et autorisation travaillant ensemble
  • Nouvel échantillonnage Http qui analyse automatiquement la réponse HTML pour les images à télécharger et inclut le téléchargement de ces images dans le temps total de la demande (Neth neth6@atozasia.com)
  • Les réponses HTTP du serveur peuvent être analysées pour les liens et les formulaires, et les données dynamiques peuvent être extraites et ajoutées aux échantillons de test au moment de l'exécution (documenté)
  • Nouvelle fonctionnalité de montée en puissance (Jonathan O'Keefe)
  • Nouveaux visualiseurs (Neth)
  • Nouvelles assertions pour les tests fonctionnels

Variante 1.6.1

  • Correction de l'enregistrement et du chargement des scripts de test (plus de lignes supplémentaires)
  • Peut enregistrer et charger des caractères spéciaux (tels que "&" et "<").
  • Peut enregistrer et charger des minuteries et des écouteurs.
  • Correction d'un bogue mineur pour les cookies (si la valeur de votre cookie contenait un "=", alors il s'est cassé).
  • Les URL peuvent échantillonner des ports autres que 80 et peuvent tester HTTPS, à condition que vous disposiez des jars nécessaires (JSSE)

Version 1.6 Alpha

  • Nouvelle interface utilisateur
  • Séparation de l'interface graphique et du code logique
  • Nouveau cadre de plug-in pour les nouveaux modules
  • Performance améliorée
  • Superposition de logique de test pour une plus grande flexibilité
  • Ajout de la prise en charge de la sauvegarde des éléments de test
  • Ajout de la prise en charge des tests distribués à l'aide d'un seul client

Variante 1.5.1

  • Correction d'un bogue qui empêchait la lecture des cookies si la casse du nom d'en-tête n'était pas celle attendue.
  • Cloner les entrées avant de les envoyer à l'échantillonneur - empêche les déplacements de gâcher les informations entre les threads
  • Correction d'un bogue mineur dans la boîte de dialogue pratique pour ajouter des paramètres à l'échantillon de test. Un bogue empêchait les entrées de la boîte de dialogue d'apparaître dans l'échantillon de test.
  • Ajout de xerces.jar à la distribution
  • Ajout de junit.jar à la distribution et création de quelques tests.
  • Début des travaux sur le nouveau framework. Nouveaux fichiers dans cvs, mais n'affectent pas encore le programme.
  • Correction d'un bogue qui empêchait HTTPJMeterThread de retarder en fonction de la minuterie choisie.

Variante 1.5

  • Résumé du concept de Sampler, SamplerController et TestSample. Un échantillonneur représente du code qui comprend un protocole (tel que HTTP, ou FTP, RMI, SMTP, etc.). C'est le code qui établit la connexion avec tout ce qui est testé. Un SamplerController représente un code qui comprend comment organiser et exécuter un groupe d'échantillons de test. C'est ce qui relie un échantillonneur et ses échantillons de test et les exécute. Un TestSample représente un code qui comprend comment recueillir des informations auprès de l'utilisateur sur un test particulier. Pour un site Web, il représenterait une URL et toute information à envoyer avec l'URL.
  • L'interface utilisateur a été mise à jour pour faciliter la saisie des échantillons de test.
  • Des groupes de threads ont été ajoutés, permettant à un utilisateur de configurer plusieurs tests à exécuter simultanément et de permettre le partage d'échantillons de test entre ces tests.
  • Il est maintenant possible de sauvegarder et de charger des échantillons de test.
  • … et bien d'autres modifications/améliorations mineures …

Apache JMeter 1.4.1-dev

  • Nettoyage du code URLSampler après des tonnes de correctifs pour une meilleure lisibilité. (SM)
  • JMeter a envoyé un identifiant "user-agent" spécial. (SM)
  • Correction de problèmes de redirection n'envoyant pas de cookies et d'informations d'authentification et suppression d'un avertissement avec la compilation de jikes. Merci à Wesley Tanaka pour les patchs (SM)
  • Correction d'un bogue dans l'URLSampler qui entraînait le saut d'une URL lors du test de listes d'URL et d'un problème de gestion des cookies. Merci à Graham Johnson pour les patchs (SM)
  • Correction d'un problème avec les actions POST. Merci à Stephen Schaub pour le patch (SM)

Apache JMeter 1.4 - 11 juillet 1999

  • Correction d'un problème avec les actions POST. Merci à Brendan Burns pour le patch (SM)
  • Ajout d'un bouton de fermeture à la boîte À propos pour les gestionnaires de fenêtres qui ne le fournissent pas. Merci à Jan-Henrik Haukeland de l'avoir signalé. (SM)
  • Ajout du visualiseur d'échantillons Spline simple (JPN)

Apache JMeter 1.3 - 16 avril 1999

  • Exécutez le Garbage Collector et exécutez la finalisation avant de commencer l'échantillonnage pour garantir le même état à chaque fois (SM)
  • Correction de quelques NullPointerExceptions ici et là (SM)
  • Ajout de capacités d'authentification HTTP (RL)
  • Ajout d'un visualiseur d'échantillons fenêtré (SM)
  • Correction d'un bogue stupide pour les arguments de la ligne de commande. Merci à Jorge Bracer pour l'avoir signalé (SM)

Apache JMeter 1.2 - 17 mars 1999

  • Fonctionnalités de cookies intégrées avec JMeter (SM)
  • Ajout du gestionnaire de cookies et de l'analyseur de fichiers Netscape (SD)
  • Correction d'une erreur de compilation pour JDK 1.1 (SD)

Apache JMeter 1.1 - 24 février 1999

  • Créé la possibilité de créer des alias d'URL à partir du fichier de propriétés ainsi que la possibilité d'associer des alias à des séquences d'URL au lieu d'URL uniques (SM) Merci à Simon Chatfield pour les très belles suggestions et exemples de code.
  • Suppression du TextVisualizer et remplacement par le beaucoup plus utile FileVisualizer (SM)
  • Ajout de la liste des bogues connus (SM)
  • Suppression du logo Java Apache (SM)
  • Correction de quelques fautes de frappe (SM)
  • Ajout du makefile UNIX (SD)

Apache JMeter 1.0.1 - 25 janvier 1999

  • Suppression des problèmes de documentation des problèmes en attente (SM)
  • Correction du script unix (SM)
  • Ajout de la possibilité d'exécuter le JAR directement en utilisant "java -jar ApacheJMeter.jar" avec Java 2 (SM)
  • Quelques petites mises à jour : emplacement Swing fixe après la sortie de Java 2(tm), mise à jour de la licence et petits nettoyages (SM)

Apache JMeter 1.0 - 15 décembre 1998

  • Version initiale. (SM)

Go to top