跳到主要内容

提示和技巧

本节是 JMeter 用户列表中各种问题所建议的各种提示和技巧的集合。如果你在此处未找到所需内容,请查看 JMeter Wiki 。另外,尝试搜索 JMeter 用户列表;有人可能已经提供了解决方案。

22.1 在线程之间传递变量

JMeter 变量具有线程范围。这是经过深思熟虑的,以便线程可以独立运行。然而,有时需要在不同线程之间、相同或不同线程组中传递变量。

一种方法是改用属性。属性在所有 JMeter 线程之间共享,因此如果一个线程 设置了一个属性 ,另一个线程可以 读取 更新后的值。

如果有很多信息需要在线程之间传递,那么考虑使用文件。例如,你可以 在一个线程中使用对文件侦听器或 BeanShell PostProcessor 的 保存响应,并使用 HTTP 采样器“ file: ”协议读取文件,并使用 PostProcessor 或 BeanShell 元素提取信息。

如果你可以在开始测试之前导出数据,那么最好将其存储在一个文件中,使用 CSV 数据集读取它。

22.2 启用调试日志

大多数测试元素包括调试日志记录。如果从 GUI 运行测试计划,请选择测试元素并使用帮助菜单启用或禁用日志记录。帮助菜单还具有显示 GUI 和测试元素类名称的选项。你可以使用这些来确定正确的属性设置以更改日志记录级别。

有时查看日志消息对调试 JMeter 中使用的 BeanShell 或 Apache Groovy 等动态脚本语言非常有用。你可以直接在 JMeter GUI 中查看日志消息,这样做:

  • 使用菜单,界面下方会出现一个日志控制台
  • 或者点击 GUI 右上角的警告图标

默认情况下,此日志控制台被禁用,你可以通过更改 jmeter.properties 来启用它:

jmeter.loggerpanel.display=true

为避免使用过多内存,此组件限制了此面板使用的字符数:

jmeter.loggerpanel.maxlength=80000

22.3 搜索

有时很难在测试计划树和使用变量或包含特定 URL 或参数的元素中找到。自 2.6 起现在提供了一项新功能,您可以在菜单搜索中访问它。它提供了以下选项的搜索:

区分大小写

使搜索区分大小写

常规经验。

是搜索正则表达式的文本,如果是,则将在组件树中搜索正则表达式,例如“ \btest\b ”将匹配在组件的可搜索元素中包含测试的任何组件

图 1 - 在 TreeView 中搜索原始文本

图 1 - 在 TreeView 中搜索原始文本

图 2 - TreeView 中的结果

图 2 - TreeView 中的结果

图 3 - 在 TreeView 中搜索 Regexp(在此示例中,我们搜索整个单词)

图 3 - 在 TreeView 中搜索 Regexp(在此示例中,我们搜索整个单词)

图 4 - TreeView 中的结果

图 4 - TreeView 中的结果

22.4 在 Linux 或 Windows 上带有 HiDPI 屏幕的 JMeter

Linux、MacOS 或 Windows 上的 Java 中的 Swing API 目前不支持 HiDPI 模式。因此,使用 HiDPI 屏幕(小图标和字符)可能很难阅读 JMeter。

你可以通过更改一些属性来改进 JMeter 在 HiDPI 屏幕上的显示:

jmeter.hidpi.mode

设置为 true 以激活“”-hidpi 模式,允许增加某些 UI 元素的大小

jmeter.hidpi.scale.factor

设置为 2.0 以缩放某些 UI 元素的大小

jmeter.toolbar.icons.size

使用这些值:22x22(默认大小)、32x32 或 48x48(HiDPI 的建议值)

jmeter.tree.icons.size

使用这些值:19x19(默认大小)、24x24、32x32 (HiDPI 的建议值)或 48x48

此外,你可以通过更改这些属性来增加某些元素(如 JSR223 采样器)中文本区域的字体大小:

jsyntaxtextarea.font.family

设置为 Hack 以激活并更改字体及其大小

jsyntaxtextarea.font.size

设置为更大的值,例如 28(HiDPI 的建议值)

这不是完整的 HiDPI 支持,只会影响

  • JMeter 树节点
  • 工具栏中的图标
  • 表格内容
  • 文本区域的字体大小

22.5 自动保存进程配置

从 JMeter 3.0 开始,JMeter 自动为每个保存的 jmx 文件保存多达十个备份。启用后,就在保存 jmx 文件之前,它将备份到${JMETER_HOME}/backups 子文件夹。备份文件以保存的 jmx 文件命名,并分配一个自动递增的版本号,例如:test-plan-000001.jmx、test-plan-000002.jmx、test-plan-000003.jmx 等。 -backup,将以下属性添加到 user.properties。

backup_on_save

要启用/禁用自动备份,请将以下属性设置为 true / false(默认为 true):

jmeter.gui.action.save.backup_on_save=false

备份目录

备份目录也可以设置到不同的位置。将 jmeter.gui.action.save.backup_directory 属性设置为所需目录的路径将导致备份文件存储在其中而不是${JMETER_HOME}/backups文件夹中。如果指定的目录不存在,它将被创建。未设置此属性将导致使用${JMETER_HOME}/backups 文件夹。

jmeter.gui.action.save.backup_directory=/path/to/backups/dir

keep_backup_max_hours

你还可以配置自最近保存时间以来备份文件应保留的最长时间(以小时为单位)。默认情况下,设置零过期时间,指示 JMeter 永久保留备份文件。使用以下属性来控制最长保存时间:

jmeter.gui.action.save.keep_backup_max_hours=0

keep_backup_max_count

你可以设置应保留的最大备份文件数。默认情况下,将保留 10 个备份。将此设置为零将导致备份永远不会被删除(除非 keep_backup_max_hours 设置为非空值)在时间到期选择处理最大备份文件选择,因此即使你将到期时间设置为一年,也只有 keep_backup_max_count 最最近的备份文件将被保留。

jmeter.gui.action.save.keep_backup_max_count=10

22.6 使用热键添加元素

当你使用 JMeter 编写密集的脚本时,有一种方法可以使用键盘快捷键快速添加元素以测试计划。默认绑定是:

Ctrl  +  0

线程组

Ctrl  +  1

HTTP 请求

Ctrl  +  2

正则表达式提取器

Ctrl  +  3

响应断言

Ctrl  +  4

恒定定时器

Ctrl  +  5

测试动作

Ctrl  +  6

JSR223 后处理器

Ctrl  +  7

JSR223 预处理器

Ctrl  +  8

调试采样器

Ctrl  +  9

查看结果树

上面的绑定是为 Windows QWERTY 键盘制作的。对于其他平台和键盘,请确保你调整这些值。

要更改这些绑定,请在 jmeter.properties 文件中找到“ gui.quick_* ”属性作为示例,建议将它们覆盖到 user.properties 文件中。

22.7 浏览器渲染器未显示在查看结果树中

如果你使用的是高于 8 的 OpenJDK 或 Oracle Java 版本,你会注意到未显示 Browser Renderer。这是因为没有嵌入 JavaFX。为了拥有此元素,你需要遵循以下过程。

  • 按照本 文档 为你的操作系统和 Java 版本安装 Java FX。
    如果你不想阅读它,以下是必要的步骤:

    • 转到 Gluon 网站 并下载适用于你的 Java 版本和操作系统的运行时

    • 解压

    • 然后配置一个指向 lib 文件夹的变量:
      Linux/MacOSX:

      export PATH_TO_FX=path/to/javafx-sdk-XX/lib

      Windows:

      set PATH_TO_FX=path/to/javafx-sdk-XX/lib
  • 然后打开 Linux/MacOSX 的 bin/jmeter 文件,Windows 的 bin/jmeter.bat,找到 JAVA9_OPTS 变量并添加:
    Linux/MacOSX:

    --module-path $PATH_TO_FX --add-modules javafx.web,javafx.swing

    Windows:

    --module-path %PATH_TO_FX% --add-modules javafx.web,javafx.swing