循环次数。如果线程数为 10,循环次数为 10,那么每个线程发送 10 次请求。总请求数为 10*10 =
100。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止。
第 3 步:添加取样器
取样器 是 JMeter 测试的核心组件,它模拟了用户执行的操作。测试人员需要添加一个或多个取样器,并设置它们的属性。常见的取样器类型包括 HTTP 请求、TCP 请求、FTP 请求、JDBC 请求等。
这边以添加 HTTP 请求为例。添加 HTTP 请求,右击线程组并选择:添加 > 取样器 > HTTP 请求。
填写 HTTP 的调用信息。
传过去的数据是 json 格式的,因此要添加头信息:Content-Type:application/json。右击 HTTP 请求并选择:添加 > 配置元件 > HTTP 信息头管理。
添加头信息:Content-Type:application/json。
第 4 步:添加断言
断言是 JMeter 测试中的重要组件,它用于验证服务器的响应是否符合预期。测试人员需要添加一个或多个断言,并设置它们的属性。
常见的断言类型包括响应断言 和 JSON 断言:
响应断言包括:文本、响应代码、响应头、响应时间等。
JSON 断言允许用户指定 JSON 路径表达式并验证 JSON 响应是否符合该表达式。
响应断言
添加响应断言: 右击接口 > 添加 > 断言 > 响应断言。
对 响应文本中 包含字符串 “Apple” 做断言:
对 HTTP 的响应码 做断言:
JSON 断言
添加 JSON 断言: 右击接口 > 添加 > 断言 > JSON断言。
对接口返回的 total 做断言:
对接口返回的 data 的第 1 项 name 做断言:
上面的 JSON Path 指的是 JSON 路径表达式。表达式由一系列的属性名和数组索引组成:以 “$.” 开头,用“.”和“[]”分隔。例如,以下 JSON 响应:
{
"name": "John",
"age": 30,
"cars": [
{
"name": "Ford",
"models": [
"Fiesta",
"Focus",
"Mustang"
]
},
{
"name": "BMW",
"models": [
"320",
"X3",
"X5"
]
}
]
}
可以使用以下表达式获取相应的值:
$.name:获取 “John”。
$.cars[0].name:获取 “Ford”。
$.cars[1].models[2]:获取 “X5”。
断言结果
运行用例。如果 响应符合断言,则什么都不会发生。否则,在 结果树监听器 中会看到报错信息。
第 5 步:添加监听器
监听器是 JMeter 测试中的另一个重要组件,它用于收集测试结果并生成报告。测试人员需要添加一个或多个监听器,并设置它们的属性。以下是一些常用的 JMeter 监听器:
聚合报告:提供有关事务响应时间、吞吐量和错误率的信息。
查看结果树:显示每个请求的响应,包括请求头、请求正文和响应正文。
监听器图形结果:将测试结果可视化,以便更轻松地分析性能问题。
断言结果:验证响应是否满足特定条件。
分布式负载测试图:显示不同服务器上的负载情况。
添加监听器:请右键单击线程组(或取样器) > 添加 > 监视器 > 具体的监视器。这里以最常用的 “查看结果树” 为例。
第 6 步:运行测试计划,查看报告
测试人员完成测试计划的配置后,可以运行测试计划并收集测试结果。测试人员可以通过监听器生成报告,并根据结果调整测试计划的配置。
等用例运行结束,可以在配置不同的监视器中看到对应的结果。
查看结果树:
汇总报告:
图形结果:
以上是JMeter测试脚本编写的基本步骤。测试人员需要根据具体需求和场景,灵活运用JMeter的各种功能和组件,编写高效、准确的测试脚本。
试试比 JMeter 更好用的 API 工具:Apifox
用 Apifox 做测试脚本更容易。以下是用 Apifox 做测试脚本的方法。
创建接口
调用接口
直接点击 “发送” 按钮就可以看到接口的返回。
添加断言
创建测试用例
编辑测试步骤,配置压测参数。
运行测试用例,查看报告
JMeter 可以用来做性能测试,但在日常工作中,我们还有更多的内容要做: API 设计,API 调试,API Mock 等。我们可能会使用多个工具,但在多个工具之间频繁切换(API 设计工具 Swagger、API 测试工具 JMeter)经常会导致数据不一致和团队协作低效率。
Apifox 是一款更加智能化的 API 设计/开发/测试工具,相较于 JMeter 软件,Apifox 有以下优势:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
[外链图片转存中…(img-M1j5d9Fv-1719228076187)]
[外链图片转存中…(img-1Ee1lfdR-1719228076188)]
[外链图片转存中…(img-PL5LTtwx-1719228076189)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!