淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
Apache JMeter 用户手册
Version 3.3
译:Webber.Zhang
版权所有©名云科技
盗版必究
2017-10-12
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
目录
1 入门 .............................................................................................................................................. 7
1.1 简介 ........................................................................................................................................... 7
1.1.1 创建测试计划......................................................................................................................... 7
1.1.2 执行压力测试......................................................................................................................... 7
1.1.3 压力测试分析......................................................................................................................... 7
1.1.4 开始 ........................................................................................................................................ 8
1.2 环境要求 ................................................................................................................................... 8
1.2.1 Java 版本 .................................................................................................................................. 8
1.2.2 操作系统 ................................................................................................................................ 8
1.3 可选 ........................................................................................................................................... 9
1.3.1 Java 编译器 .............................................................................................................................. 9
1.3.2 SAX XML 解析器 ...................................................................................................................... 9
1.3.3 邮件支持 ................................................................................................................................ 9
1.3.4 SSL 加密 ................................................................................................................................... 9
1.3.5 JDBC 驱动................................................................................................................................. 9
1.3.6 JMS 客户端 ............................................................................................................................ 10
1.3.7 ActiveMQ JMS 库 ................................................................................................................... 10
1.4 安装 ......................................................................................................................................... 10
1.5 运行 JMeter ............................................................................................................................. 10
1.5.1 JMeter 的 Classpath ............................................................................................................... 11
1.5.2 通过模板创建测试计划 ....................................................................................................... 12
1.5.3 JMeter 中使用代理 ............................................................................................................... 13
1.5.4 非图形化模式....................................................................................................................... 14
1.5.5 服务器模式 .......................................................................................................................... 15
1.5.6 通过命令行覆盖属性文件的设置 ....................................................................................... 15
1.5.7 日志和错误信息................................................................................................................... 16
1.5.8 所有的命令行选项 ............................................................................................................... 19
1.5.9 关闭非图形化模式 ............................................................................................................... 20
1.6 JMeter 配置 .............................................................................................................................. 20
2 创建测试计划 ............................................................................................................................. 23
2.1 添加和删除元件 ...................................................................................................................... 23
2.2 加载和保存元件 ...................................................................................................................... 23
2.3 配置树的元件.......................................................................................................................... 23
2.4 保存测试计划.......................................................................................................................... 23
2.5 运行测试计划.......................................................................................................................... 23
2.6 停止测试 ................................................................................................................................. 24
2.7 错误报告 ................................................................................................................................. 24
3 测试计划中的元件 ..................................................................................................................... 26
3.1 测试计划 ................................................................................................................................. 26
3.2 线程组 ..................................................................................................................................... 26
3.3 控制器 ..................................................................................................................................... 27
3.3.1 取样器 .................................................................................................................................. 27
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
3.3.2 逻辑控制器 .......................................................................................................................... 27
3.3.3 Test Fragment ......................................................................................................................... 28
3.4 监听器 ..................................................................................................................................... 29
3.5 定时器 ..................................................................................................................................... 29
3.6 断言 ......................................................................................................................................... 29
3.7 配置元件 ................................................................................................................................. 30
3.8 前置处理器.............................................................................................................................. 30
3.9 后置处理器.............................................................................................................................. 30
3.10 执行顺序 ............................................................................................................................... 30
3.11 范围规则 ............................................................................................................................... 31
3.12 属性和变量............................................................................................................................ 33
3.13 使用变量做参数化测试 ........................................................................................................ 33
4 创建 Web 测试计划 ................................................................................................................... 35
4.1 添加用户 ................................................................................................................................. 35
4.2 添加默认 HTTP 请求属性 ....................................................................................................... 36
4.3 添加 Cookie 支持 .................................................................................................................... 37
4.4 添加 HTTP 请求 ....................................................................................................................... 37
4.5 添加一个监听器来查看测试结果 .......................................................................................... 38
4.6 登录网站 ................................................................................................................................. 39
5 创建高级 Web 测试计划 ........................................................................................................... 41
5.1 使用 URL 重写处理用户会话 ................................................................................................. 41
5.2 使用 HTTP 信息头管理器 ....................................................................................................... 42
6 创建数据库测试计划 ................................................................................................................. 43
6.1 添加用户 ................................................................................................................................. 43
6.2 添加 JDBC 请求........................................................................................................................ 44
6.3 添加监听器查看/存储测试结果 ............................................................................................ 46
7 创建 FTP 测试计划 ..................................................................................................................... 47
7.1 添加用户 ................................................................................................................................. 47
7.2 添加 FTP 请求缺省值 .............................................................................................................. 48
7.3 添加 FTP 请求 .......................................................................................................................... 48
7.4 添加监听器来显示/存储测试结果 ........................................................................................ 49
8 创建 LDAP 测试计划 .................................................................................................................. 51
8a.1 添加用户 ................................................................................................................................ 51
8a.2 添加登录配置元件 ................................................................................................................ 51
8a.3 添加 LDAP 请求默认值 ......................................................................................................... 52
8a.4 添加 LDAP 请求 ..................................................................................................................... 52
8a.5 添加响应断言 ........................................................................................................................ 53
8a.6 添加监听器来显示/存储测试结果 ...................................................................................... 54
8b 创建扩展 LDAP 测试计划 ........................................................................................................ 55
8b.1 添加用户 ............................................................................................................................... 55
8b.2 添加 LDAP Extended Request Defaults .................................................................................. 56
8b.3 添加 LDAP 请求 ..................................................................................................................... 56
8b.3.1 添加线程绑定请求 ............................................................................................................ 56
8b.3.2 添加搜索请求 .................................................................................................................... 57
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
8b.3.3 添加比较请求 .................................................................................................................... 58
8b.3.4 添加单个绑定/取消绑定 ................................................................................................... 58
8b.3.5 添加添加请求 .................................................................................................................... 59
8b.3.6 添加修改请求 .................................................................................................................... 59
8b.3.7 添加重命名请求(moddn)................................................................................................... 60
8b.3.8 添加删除请求 .................................................................................................................... 61
8b.3.9 添加解除绑定请求 ............................................................................................................ 61
8b.4 添加监听器以查看/存储测试结果 ...................................................................................... 61
9 创建 WebService 测试计划 ....................................................................................................... 63
9.1 创建 WebService 测试计划 .................................................................................................... 63
9.2 添加用户 ................................................................................................................................. 64
9.3 添加监听器以查看/存储测试结果 ........................................................................................ 66
9.4 Rest Webservice ........................................................................................................................ 66
10 创建 JMS 点对点测试计划 ...................................................................................................... 67
10.1 添加线程组............................................................................................................................ 67
10.2 添加 JMS 点对点取样器 ....................................................................................................... 68
10.3 添加监听器以查看/存储测试结果 ...................................................................................... 69
11 创建 JMS 主题测试计划 .......................................................................................................... 71
11.1 添加用户 ............................................................................................................................... 71
11.2 添加 JMS 订阅者和发布者 ................................................................................................... 72
11.3 添加监听器以查看/存储测试结果 ...................................................................................... 74
12 监听器介绍............................................................................................................................... 76
12.1 默认配置 ............................................................................................................................... 76
12.1.1 样本变量 ............................................................................................................................ 79
12.1.2 示例结果保存配置 ............................................................................................................. 79
12.2 非 GUI(批处理)测试运行................................................................................................. 80
12.3 资源使用 ............................................................................................................................... 80
12.4 CSV 日志格式 ......................................................................................................................... 81
12.5 XML 日志格式 2.1 .................................................................................................................. 81
12.6 XML 日志格式 2.2 .................................................................................................................. 84
12.7 样本属性 ............................................................................................................................... 84
12.8 保存响应数据........................................................................................................................ 85
12.9 加载(读取)响应数据 ........................................................................................................ 85
12.10 保存监听器 GUI 数据 ......................................................................................................... 85
13 远程测试................................................................................................................................... 87
13.1 手动操作 ............................................................................................................................... 89
13.2 提示 ....................................................................................................................................... 89
13.3 使用不同的端口 .................................................................................................................... 90
13.4 使用不同的样本发送器 ........................................................................................................ 90
13.5 处理启动失败的节点 ............................................................................................................ 92
14 生成 Dashboard 报表 ............................................................................................................... 93
14.1 概述 ....................................................................................................................................... 93
14.2 配置 Dashboard 生成器 ........................................................................................................ 98
14.2.1 要求 .................................................................................................................................... 98
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
14.2.2 一般设置 .......................................................................................................................... 100
14.2.3 图形设置 .......................................................................................................................... 101
14.2.3.1 一般属性 ....................................................................................................................... 101
14.2.3.2 具体属性 ....................................................................................................................... 102
14.2.4 导出设置 .......................................................................................................................... 102
14.2.4.1 一般属性 ....................................................................................................................... 102
14.2.4.2 指定属性 ....................................................................................................................... 102
14.2.4.3 图形属性 ....................................................................................................................... 103
14.2.4.4 过滤机制 ....................................................................................................................... 103
14.2.5 样品配置 .......................................................................................................................... 105
14.3 生成报告 ............................................................................................................................. 106
14.3.1 从现有样本 CSV 日志文件生成 ...................................................................................... 106
14.3.2 负载测试后生成............................................................................................................... 106
14.4 默认图 ................................................................................................................................. 106
14.5 想改进 Dashboard 报表? .................................................................................................. 108
15 实时结果................................................................................................................................. 109
15.1 指标揭露 ............................................................................................................................. 109
15.1.1 线程/虚拟用户指标 ......................................................................................................... 109
15.1.2 响应时间指标................................................................................................................... 109
15.2 JMeter 配置 .......................................................................................................................... 110
15.3 InfluxDB ................................................................................................................................. 111
15.3.1 InfluxDB Graphite 监听器配置 .......................................................................................... 111
15.3.2 InfluxDB 数据库配置 ......................................................................................................... 111
15.3.3 Grafana 配置 ...................................................................................................................... 111
15.4 Graphite ................................................................................................................................ 112
16 最佳实践................................................................................................................................. 113
16.1 始终使用最新版本的 JMeter ............................................................................................. 113
16.2 使用正确的线程数 .............................................................................................................. 113
16.3 Cookie 管理器的位置 ........................................................................................................... 113
16.4 授权管理器的位置 .............................................................................................................. 113
16.5 使用 HTTP(S)测试脚本录制器 ............................................................................................ 113
16.6 用户变量 ............................................................................................................................. 114
16.7 减少资源需求...................................................................................................................... 114
16.8 BeanShell 服务器 .................................................................................................................. 115
16.9 BeanShell 脚本 ...................................................................................................................... 116
16.9.1 概述 .................................................................................................................................. 116
16.9.2 共享变量 .......................................................................................................................... 117
16.10 在 Groovy 或 Jexl3 等中开发脚本函数 ............................................................................ 117
16.11 参数化测试 ....................................................................................................................... 117
16.12 JSR223 元素 ........................................................................................................................ 118
16.13 在线程和线程组之间共享变量 ........................................................................................ 118
16.14 管理属性 ........................................................................................................................... 118
16.15 不赞成使用的元素 ............................................................................................................ 119
17 帮帮忙!老板要我开展负载测试! ..................................................................................... 120
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
17.1 要问的问题.......................................................................................................................... 120
17.2 资源 ..................................................................................................................................... 120
17.2.1 网络 .................................................................................................................................. 120
17.2.2 申请 .................................................................................................................................. 120
17.3 应该使用什么平台来运行基准测试/负载测试? ............................................................ 120
17.4 工具 ..................................................................................................................................... 121
17.4.1 ping .................................................................................................................................... 121
17.4.2 nslookup/dig ...................................................................................................................... 121
17.4.3 traceroute .......................................................................................................................... 122
17.5 如何提升 JMeter? ............................................................................................................. 122
17.6 为什么选择 Java? .............................................................................................................. 122
18 官方文档中的 BUG ................................................................................................................ 123
18.1 Wrong Total Number ............................................................................................................. 123
18.2 Wrong Figure Number ........................................................................................................... 123
18.3 Wrong Description ................................................................................................................ 123
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
1 入门
1.1 简介
使用 JMeter 通常会有以下步骤:
1.1.1 创建测试计划
首先,运行 JMeter 图形化界面。
然后在文件菜单中选择 Templates…->Recording,通过浏览器录制 Web 程序或者直接录
制本地程序。
当然,你也可以手动创建你的测试计划。确保阅读测试计划中的元件一章来理解大部分
的概念。
你可能需要如下操作来调试:
运行->Start no pauses
运行->启动
线程组中进行验证
和查看结果树 (CSS/JQUERY, JSON, Regexp, XPath)。
你在创建测试计划的时候,请参考最佳实践。
1.1.2 执行压力测试
创建测试计划之后,就可以开始做压力测试了。第一步是配置 JMeter 的运行环境,这
和其他的压力测试工具一样,都包括以下几点:
Java:确保安装了支持当前 JMeter 的最新的 Java 版本
根据需求要求的 CPU,内存和网络
操作系统
正确的 Java 堆大小。JMeter 默认运行的堆大小为 512MB,可能对你的测试计划和
要求的线程数来说不太够。
一切准备就绪后,你需要通过命令行模式来运行压力测试。
不要用 GUI 模式运行压力测试!
使用命令行模式,在压力测试结束后会生成一份 CSV 或者 XML 的结果文件和一份 HTML
报告。JMeter 默认在运行时对压力测试提供一个汇总信息,你可以在测试时使用后台监听
器查看实时运行结果。
1.1.3 压力测试分析
测试结束后,你可以根据 HTML 报告来分析你的压力测试。
淘宝店铺:https://ok11.taobao.com
版权所有:四川名云科技有限责任公司
1.1.4 开始
使用 JMeter 最简单的方式是先下载最新的版本并安装。版本会包含所有你需要创建测
试计划的文件,并且能够做大部分的测试,比如:Web (HTTP/HTTPS), FTP, JDBC, LDAP, Java,
JUnit 等等。
如果你想做 JDBC 方面的测试,首先得需要对应的 JDBC 驱动程序,可以去 JMS 供应商
处下载一份对应的 jar 包。
在 JMeter Classpath 章节会详细描述插件包的安装。
接下来,启动 JMeter 然后去创建一个测试计划章节,熟悉 JMeter 的基础操作(如:添
加或删除元件)。
最后,去对应的章节创建一个指定类型的测试计划。例如,如果你想创建 Web 应用程
序的测试,就去创建 Web 测试计划章节。其他的测试计划章节还有:
Advanced Web Test Plan
JDBC
FTP
JMS Point-to-Point
JMS Topic
LDAP
LDAP Extended
WebServices (SOAP)
当你熟悉了如何创建和运行 JMeter 测试计划后,你就可以研究一下各种各样的配置元
件(定时器,监听器,断言等等),让你可以在测试计划上做更多操作。
1.2 环境要求
JMeter 需要你的计算机环境达到一定的要求。
1.2.1 Java 版本
JMeter 要求 JVM 8,建议你安装最新的 JVM8 版本。JMeter3.2 没有在 Java9 上面做过完
整的测试。
由于 JMeter 需要使用标准的 Java API,因此,如果是由于 JRE 的问题导致运行 JMeter
失败,请不要向我们报告问题。
1.2.2 操作系统
JMeter 是一个 100%的纯 Java 应用程序,能够在任何包含 Java 编译器的系统上正确运行。
被测试过的操作系统可以在 JMeter wiki 上找到。
即使你的操作系统在 JMeter wiki 上找不到,只要安装了 JVM,JMeter 也能够运行。