Jmeter 5.5版本发布说明

目录

新的和值得注意的

改进

非功能性变化

Bug修复

谢谢

已知问题和解决方法


新的和值得注意的

JMeter 现在支持 Java 17

JMeter 5.5 附带 log4j2 2.17.2

开放模型线程组

新组件:开放模型线程组 允许创建具有可变负载的负载配置文件。

例如,如果您需要在一分钟内将负载从0/sec逐渐增加到10/sec , 您可以以前使用Thread Group + Timer组合。但是,您需要计算预期的线程数,确保仅在需要时创建它们,等等。

使用开放模型线程组,您可以配置与rate(0/sec) random_arrivals(1 minute) rate(10/sec)相同的负载配置文件。线程组将根据需要生成线程来驱动配置的负载。负载配置文件可以使用属性,因此您可以启动具有略微不同负载级别的相同脚本,但是,在测试运行时无法更新配置文件。

新线程组在 JMeter 5.5 中是实验性的,所以请随时提交您的反馈。

Jmeter 5.5版本发布说明_第1张图片

开放模型线程组示例

准备弃用 Oro Regex 用法

JMeter 5.5 中的另一个实验特性是能够将基于 Oro 的 Regex 实现替换为基于 Java 的内置实现。要选择基于 Java 的,请将 JMeter 属性jmeter.regex.engine 设置为值java

核心改进

Kotlin 语言现在用于一些核心类和测试(例如 Open Model Thread Group)。JMeter 使用apiTarget=1.5编译,并附带kotlin-stdlib 1.6。

添加了lets-plot-kotlin图表库,因此将来在UI中改进和创建新图表会更容易。

改进

线程组

  • 新组件:开放模型线程组

HTTP 采样器和测试脚本记录器

  • 错误 65027 - 将文件添加到 HTTP 采样器时自动检测文件的 mime 类型
  • 错误 65020 - HTTP 采样器/文件上传选项卡 - 添加缺少的按钮
  • 拉取请求 #650 - 捕获异常时的 HTTP 采样器时间戳修复。由 Konstantin Kalinin 供稿(konstantin at kkalinin.pro)
  • 错误 65328 - 拉取请求 #666 - 不支持 HTTP 308 永久重定向。由 Baptiste Gaillard 供稿(baptiste.gaillard at gmail.com)

其他采样器

  • 错误 65149 - 拉取请求 #644 - 在 SMTP 采样器中编码电子邮件地址的个人部分
  • 拉取请求 #638 - 螺栓采样器的各种添加。添加了事务超时、 Neo4j 4.x 所需的数据库 选项(支持多数据库)和访问模式选项,允许针对 Neo4j 企业因果集群运行。由 David Pecollet 提供(gmail.com 上的 david.pecollet)

控制器

  • 拉取请求 #665 - 增加IfControllerWhileController中可见的代码行。基于 David Getzlaff 的想法(t-systems.com> 上的 david.getzlaff)。

听众

  • 错误 64988 - 以人类预期的顺序对 DebugPostProcessor 和 DebugSampler 的属性和变量进行排序
  • 错误 63061 - 以人类预期的顺序对表中的视图结果进行排序
  • 拉取请求 #706 - 尝试在显示大文本结果时保持 UI 响应。可以使用新属性 view.results.tree.simple_view_limit进行配置

计时器、断言、配置、前处理器和后处理器

  • 拉取请求 #638 - 螺栓连接配置:添加了ConnectionPoolMaxSize参数。由 David Pecollet 提供(gmail.com 上的 david.pecollet)
  • 错误 65515 - 允许在 JDBC 中汇集准备好的语句
  • 错误 65299 - JSONPathAssertion 属性乱序/比较 JSON 对象而不是它们的字符串表示。

报告/仪表板

  • 错误 65353 - 使用于计算仪表板上百分位数的估算器可配置

一般的

  • 错误 61805 - 拉取请求 #663 - 添加简单的 HTTP 请求模板。由 Ori Marko 提供(gmail.com 上的orimarko)
  • 错误 65611 - 拉取请求 #673 - 在指定远程工作节点时添加对 IPv6 地址的支持。基于 Peter Wong 的补丁(csexperts.com 上的 peter.wong)
  • 减少日志面板的内存消耗(禁用它的撤消事件)
  • 错误 63620 - 拉取请求 #694 - 在查看带有长换行符的响应正文时修复 GUI 冻结
  • 拉取请求 #699 - 添加 Graphite 后端侦听器的文档。由 Ji Hun 供稿(jihunkimkw at gmail.com)
  • 错误 57672 - 拉取请求 #700 - 添加一个开关 ( jmeter.regex.engine ) 以用内置的 Java 替换 Oro Regex 实现。

非功能性变化

  • 为 JMeter 引擎实现添加了 Kotlin 1.6.21 (apiVersion=1.5)。JSR 223 语言集是完整的。
  • 错误 65128 - 拉取请求 #643 - 在线程组的每次迭代中添加有关同一用户的 缺失文档。由 njkuzas 提供。
  • 拉取请求 #648 - 将 xmlgraphics-commons 更新为 2.6(从 2.3 开始)。由 Stefan Seide 提供(trilobyte-se.de 上的 stefan)
  • 拉取请求 #655, 拉取请求 #667, 拉取请求 #675, 拉取请求 #698 - 将 x-stream 更新到 1.4.19(从 1.4.15)。由 Stefan Seide 提供(trilobyte-se.de 上的 stefan)
  • 拉取请求 #656, 拉取请求 #668 - 更新 json-smart 到 2.4.8(从 2.3),accessors-smart 到 2.4.8(从 1.2)和 asm 9.3(从 9.0)。由 Stefan Seide 提供(trilobyte-se.de 上的 stefan)
  • 错误 64831 - 在调试级别为记录器org.apache.jmeter.util.keystore.JmeterKeyStore记录信任库条目
  • 错误 65232 - 显示错误时隐藏启动屏幕,因为无法解析测试计划。
  • 将 Groovy 更新到 3.0.11(从 3.0.7)。
  • 将 Darklaf 更新到 2.7.3(从 2.5.4)。
  • 将 Apache ActiveMQ 更新到 15.6.4(从 15.6.0)。
  • 将 Asm 更新到 9.2(从 9.1)。
  • 将 Bouncycastle 更新至 1.70(从 1.67)。
  • 将咖啡因更新到 2.9.3(从 2.8.8)。
  • 将 Apache commons-dbcp2 更新到 2.9.0(从 2.8.0)。
  • 将 Apache commons-io 更新到 2.11.0(从 2.8.0)。
  • 将 Apache commons-lang3 更新到 3.12.0(从 3.11)。
  • 将 Apache commons-net 更新到 3.8.0(从 3.7.2)。
  • 将 Apache commons-pool2 更新到 2.11.1(从 2.9.0)。
  • 将 equalsverifier 更新到 3.10(从 3.4.2)。
  • 将 Apache Freemarker 更新到 2.3.31(从 2.3.30)。
  • 将 hsqldb 更新到 2.5.2(从 2.5.0)。
  • 将 Apache HttpClient 更新到 4.5.13(从 4.5.12)。
  • 将 Apache HttpCore 更新到 4.4.15(从 4.4.13)。
  • 将 jacoco 更新到 0.8.7(从 0.8.5)。
  • 将 json-path 更新到 2.7.0(从 2.4.0)。
  • 将 jsoup 更新到 1.15.1(从 1.13.1)。
  • 将 JUnit 更新到 4.13.2 和 5.8.2(从 4.13.1 和 5.7.0)。
  • 将 Apache log4j2 更新到 2.17.2(从 2.13.3)。
  • 将 Miglayout 更新到 5.3(从 5.2)。
  • 将 Neo4j Java 驱动程序更新到 4.4.6(从 4.2.0)。
  • 将 Objenesis 更新到 3.2(从 2.6)。
  • 将 ktlint 更新为 0.40.0
  • 将 PH CSS 和 PH commons 更新到 6.5.4 和 10.1.6(从 6.2.3 和 9.5.1)。
  • 将 RSyntaxTextArea 更新到 3.2.0(从 3.1.1)。
  • 将 SLF4J 更新到 1.7.36(从 1.7.30)。
  • 将 SvgSalamander 更新到 1.1.2.4(从 1.1.2.1)。
  • 拉取请求 #698 - 将 Apache Tika 更新到 1.28.3(从 1.26)。
  • 将 WireMock-JRE8 更新到 2.30.0(从 2.24.1)。
  • 更新了 com.github.vlsi.vlsi-release-plugins 1.76(来自 1.74)。
  • 将杰克逊更新到 2.13.3(从 2.10.5)
  • 将 jmespath 更新为 0.5.1
  • 将 Saxon-HE 更新到 11.2(从 9.9.1-8)
  • 将 Apache xmlgraphics commons 更新到 2.7(从 2.6)
  • 拉取请求 #671 - 将属性jmeter.reportgenerator.statistic_window的 示例定义移动 到user.properties,因为它是从该位置读取的。由 Rithvik Patibandla 提供(rithvikp98 at gmail.com)
  • 错误 65456 - 将 commons-jexl 3 更新到 3.2.1(从 3.1)。由 Ori Marko 供稿(orimarko at gmail.com>)
  • 拉取请求 #654 - 尝试在加载密钥库时提供更好的反馈
  • 拉取请求 #672 - 为 timeShift 函数的文档添加更多详细信息。由 Mariusz 提供(gmail.com 上的 mawasak)
  • 将 Gradle 更新到 7.3(从 7.2)
  • 拉取请求 #689 - StringFromFile 中的代码清理。由 Sampath Kumar Krishnasamy 提供(aexp.com 上的 sampathkumar.krishnasamykuppusamy)
  • 拉取请求 #690 - 重构一些单元测试。由 Sampath Kumar Krishnasamy 提供(aexp.com 上的 sampathkumar.krishnasamykuppusamy)
  • 拉取请求 #692> - 修复 Gradle 的一些弃用警告。由 Sampath Kumar Krishnasamy 提供(aexp.com 上的 sampathkumar.krishnasamykuppusamy)
  • 拉取请求 #697> - Junit 5 测试使用来自 Junit 5 API 的断言。由 Sampath Kumar Krishnasamy 提供(aexp.com 上的 sampathkumar.krishnasamykuppusamy)
  • 错误 65983 - 拉取请求 #707 - 将当前屏幕截图用于文档中的保存到文件侦听器。基于 NaveenKumar Namachivayam 的补丁(catch.nkn at gmail.com)
  • 拉取请求 #708 - 让容易出错的人更快乐。基于 Wilson Kurniawan 的补丁(visenze.com 上的 wilson)>
  • 将 Rhino JavaScript 更新到 1.7.14(从 1.7.13)

Bug修复

HTTP 采样器和测试脚本记录器

  • 错误 65310 - 不要让用户覆盖HC4 采样器中的multipart/form-data 内容类型 标头。
  • 错误 65363 - 当来自远程的401响应和httpclient4.auth.preemptive=falseHTTPHC4Impl$ManagedCredentialsProvider.getAuthorizationForAuthScope中的NullPointerException
  • 错误 65692 - HTTP(s) 测试脚本记录器:在 SSLContext 上启用设置启用的密码套件和启用的协议/在 Java 和 HC4 实现之间对齐 SSL 属性
  • 错误 65108 - 支持GraphQL HTTP 请求中的 JMeter 变量
  • 错误 65864 -记录测试计划时从 JSoup捕获NullPointerException

其他采样器

  • 错误 65152 - 操作系统进程采样器 - 无法从剪贴板命令参数添加
  • 拉取请求 #638 - 螺栓采样器:修复了启用“记录查询结果”时显示结果的错误。由 David Pecollet 提供(gmail.com 上的 david.pecollet)

控制器

听众

  • 错误 64962 - 从查看结果树中递归保存 CSV 子结果
  • 错误 65784 - 聚合报告/响应时间图表中未显示图表
  • 错误 65884 - GUI 不显示手动编码的多部分请求的响应

计时器、断言、配置、前处理器和后处理器

  • 错误 65257 - 如果 JMESPath 过滤器返回空结果,JMESPathExtractor 会写入错误日志条目
  • 错误 65259 - 需要JMESPathExtractor 属性匹配号
  • 错误 65269 - JSON Extractor 和 JSON JMESPath Extractor 忽略子样本
  • 错误 65352 - 当边界提取器未找到任何匹配项时记录警告
  • 错误 65681 - 使用JSONPostProcessor 提取时使用空值的默认值
  • 允许 ConstantThroughputTimer 中的设置器在运行时更新值
  • 错误 65782 - 在 HTMLAssertion 中为 MessageFormat 使用正确的消息格式
  • 错误 65794 - JSON 断言始终成功,路径不定

功能

I18N

报告/仪表板

文档

  • 拉取请求 #658 - 改进 javadoc。由 Ori Marko 提供(gmail.com 上的orimarko)

一般的

  • 错误 64318 - DNS 缓存管理器 - 默认情况下自定义 DNS 解析器不使用系统解析器
  • 拉取请求 #641, 拉取请求 #698 - 将 xercesImpl 更新到 2.12.2(从 2.12.0)。基于 Stefan Seide 的补丁(stefan at trilobyte-se.de)。
  • 拉取请求 #645 - 在AbstractInfluxdbMetricsSender 中为新行添加转义。由 David Getzlaff 提供(t-systems.com 上的 david.getzlaff>)
  • 错误 65198 - 无法从 FunctionHelper 复制生成的函数
  • 拉取请求 #661 - 修复文档中的措辞。由 BugKing 供稿(fit2cloud.com 的wangzhen)
  • 拉取请求 #664 - 允许路径中有空格。由 Till Neunast (github.com/tilln) 提供
  • 错误 65270 - 从 Postman 生成的 POST application/x-www-form-urlencoded cURL 代码未正确导入
  • Linux下启动时缺少Arial字体的静音警告
  • 错误 65300 - 使用 Java 16 打开文件对话框时出现IllegalAccessError
  • 错误 65336 - 不同元素具有相同名称时的空白标签
  • 错误 65522 - 当参数包含空格时,重新启动不起作用
  • 错误 63914 - 简化:src:dist:clean配置,确保/lib/junit/test.jar在 clean 时被删除
  • 拉取请求 #696 - 保留 JSyntaxTextArea 文本值以在无头模式下使用。由 Peter Paul Bakker 供稿(stokpop.nl 的 peter.paul.bakker)

谢谢

我们感谢上述错误和改进部分中提到的所有贡献者:

  • Stefan Seide (stefan at trilobyte-se.de)
  • njzukas (github.com/njzukas)
  • David Getzlaff(t-systems.com 上的 david.getzlaff>)
  • 康斯坦丁·加里宁 (konstantin at kkalinin.pro)
  • David Pecollet(gmail.com 上的 david.pecollet)
  • Ori Marko(gmail.com 上的orimarko)
  • BugKing(fit2cloud.com 上的wangzhen)
  • 直到 Neunast (github.com/tilln)
  • 巴蒂斯特·盖拉德 (baptiste.gaillard at gmail.com)
  • Rithvik Patibandla (rithvikp98 at gmail.com)
  • Mariusz(gmail.com 上的 mawasak)
  • [email protected]
  • Woonsan Ko (woonsan.ko at bloomreach.com)
  • Chromico Rek (atech5122 at gmail.com)
  • Magnus Spångdal (magnus.spangdal as avanza.se)
  • Piotr Smietana (Piotrsmietana1998 at gmail.com)
  • Sampath Kumar Krishnasamy(aexp.com 上的 sampathkumar.krishnasamykuppusamy)
  • 纪勋 (jihunkimkw at gmail.com)
  • 彼得保罗巴克 (peter.paul.bakker at stokpop.nl)
  • NaveenKumar Namachivayam (catch.nkn at gmail.com)
  • Wilson Kurniawan(visenze.com 上的 wilson)

我们还要感谢帮助我们改进 JMeter 的错误报告者。

  • Nikola Aleksic(gmail.com 上的 nalexic)
  • Vladimir Rosu(gmail.com 上的 rosuvladimir)

如果我们遗漏了其他任何人,我们深表歉意。

已知问题和解决方法

  • Once Only 控制器在线程组或循环控制器下的行为正确,但除此之外它的行为不一致(或明确指定)。
  • 绿框左边出现的数字是活动线程数/总线程数,总线程数只适用于本地运行的测试,否则显示为0(见 Bug 55510)。
  • 请注意,在某些 Windows 系统下,您可能会收到以下警告:
    java.util.prefs.WindowsPreferences
    WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
    x80000002. Windows RegCreateKeyEx(…) returned error code 5.
    修复方法是以管理员身份运行 JMeter,它将为您创建注册表项,然后您可以以普通用户身份重新启动 JMeter,您将不再有警告。
  • 您可能会遇到以下错误:
    java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
    
    如果您在具有 SSL 证书(其本身或其信任链中的 SSL 证书之一)的网站上运行 HTTPS 请求,该证书具有使用 MD2 的签名算法(如md2WithRSAEncryption)或大小低于 1024 位的 SSL 证书。此错误与 Java 8+ 中增加的安全性有关。
    为了允许您执行 HTTPS 请求,您可以通过编辑 Java jdk.certpath.disabledAlgorithms属性来降低 Java 安装的安全性。根据您的情况,删除 MD2 值或大小限制。
    此属性在此文件中:
    JAVA_HOME/jre/lib/security/java.security
    
    有关详细信息,请参阅 错误 56357。
  • 在 Mac OSX 下,聚合图会由于数字的镜像效应而显示错误的值。这是由于一个已知的 Java 错误,请参阅错误JDK-8065373 修复是使用 JDK8_u45 或更高版本。
  • 查看结果树可能无法在 HTML 渲染器下显示某些 HTML 代码,请参阅 错误 54586。这是由于一个已知的 Java 错误导致无法解析行/列属性中的“ px ”单位。请参阅错误JDK-8031109 修复是使用 JDK9 b65 或更高版本。
  • 带有键盘的 JTable 选择(SHIFT  +  up/down)在 Mac OSX 上的 Java 7 中完全不可用。这是由于一个已知的 Java 错误JDK-8025126 修复是使用 JDK 8 b132 或更高版本。
  • 自 Java 11 起,JavaScript 实现Nashorn 已被弃用。如果您使用基于 Nashorn 的 JavaScript,Java 将发出以下弃用警告。
    Warning: Nashorn engine is planned to be removed from a future JDK release
    
    要使这些警告静音,请将-Dnashorn.args=--no-deprecation-warning添加到您的 Java 参数中。这可以通过设置环境变量JVM_ARGS来实现
    export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
    
  • 在 Java 15 中,JavaScript 实现Nashorn 已被删除。要重新添加兼容 JSR-223 的 JavaScript 引擎,您有两种选择:

    使用 Mozilla Rhino

    将rhino-engine-1.7.14.jar复制到$JMETER_HOME/lib/ext中。

    使用 OpenJDK Nashorn

    OpenJDK Nashorn 实现作为一个模块提供。要使用它,您必须下载它并将其添加到模块路径中。下载版本 15.0(或更高版本)及其依赖项并设置模块路径的 hacky 方法概述如下:
    mkdir lib/modules
    pushd lib/modules
    wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.2/asm-commons-9.2.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar
    wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar
    popd
    export JVM_ARGS="--module-path $PWD/lib/modules"
    ./bin/jmeter

你可能感兴趣的:(Jmeter,jmeter)