目录
前言必读
支持作者👇
一、jmeter介绍
版本与下载
本文操作的jmeter版本是3.2的版本,如果还没有下载可以点击下面这个下载一下
https://blog.csdn.net/m0_52861000/article/details/144696204?
Apache JMeter 是一款非常流行的开源性能测试工具,广泛应用于 负载测试、性能测试 和 接口测试。它最初是为性能测试和负载测试设计的,但后来发展成为一个功能丰富的测试工具,能够进行 Web应用测试、数据库测试、接口自动化测试、服务端性能测试 等多种测试类型。
在接口测试方面,JMeter 支持 HTTP 请求、SOAP、RESTful 等多种接口类型的测试。
JMeter接口测试的基本概念
-
接口测试:指对 API(应用程序编程接口)进行功能、性能等方面的测试。它主要关注接口的正确性、可靠性、性能(如响应时间、吞吐量等)和稳定性。
-
JMeter 在接口测试中的应用:JMeter 可以模拟大量的 HTTP 请求来测试 Web API、Web 服务(SOAP、REST)、数据库接口等的性能、可靠性和负载承受能力。它不仅可以进行性能测试,还可以执行接口的 功能测试 和 集成测试。
JMeter进行接口测试的流程
1. 安装 JMeter
JMeter 是一个 Java 程序,因此需要先安装 Java 环境,然后下载 JMeter(JMeter 官网:Apache JMeter - Apache JMeter™)。
2. 创建测试计划
- 测试计划是 JMeter 中的最顶层元素,它定义了整个测试的结构。
- 一个测试计划通常包含多个 线程组,线程组包含不同的 采样器 和 监听器。
3. 添加线程组
线程组(Thread Group)是 JMeter 中的执行单元,定义了 虚拟用户数(用户数)、循环次数(测试次数)等内容。每个线程组可以模拟多个并发用户。
- 在测试计划下右键选择 添加 -> 线程(用户) -> 线程组。
在线程组中,你可以设置以下几个参数:
- 线程数:即模拟的用户数。
- Ramp-up 期:线程启动的延时。
- 循环次数:每个线程执行的次数。
4. 添加 HTTP 请求
对于接口测试,常用的采样器是 HTTP请求(HTTP Request)。你可以使用 HTTP 请求来模拟对目标接口的调用。
- 在 线程组 下,右键选择 添加 -> 取样器 -> HTTP 请求。
在 HTTP 请求 采样器中,你需要填写以下信息:
- 服务器名称或IP:要测试的接口所在的服务器地址(例如,
www.example.com
)。 - 端口号:接口的端口号(默认为 80)。
- 协议:协议类型(如 HTTP、HTTPS)。
- 方法:请求的方法(GET、POST、PUT、DELETE等)。
- 路径:接口的路径(如
/api/login
)。 - 参数:如果是POST请求,填写请求参数(如
username
和password
)。
5. 添加断言
断言用于验证接口的响应是否符合预期,常用的断言包括:
- 响应断言:检查返回的响应数据是否包含某些内容。
- JSON断言:检查响应数据是否符合 JSON 格式,并验证 JSON 内容。
- 大小断言:检查返回数据的大小。
例如:
- 添加 响应断言,验证返回内容是否包含特定字符串,如
success
。
6. 添加监听器
监听器用于查看测试结果,JMeter 提供了多种监听器,可以查看接口测试的详细报告。常用的监听器有:
- 查看结果树:显示请求和响应的详细信息。
- 聚合报告:查看接口的总体统计数据。
- 图形结果:查看响应时间的趋势图。
- 响应时间分布:显示不同响应时间区间内的请求分布。
7. 执行测试
完成配置后,可以点击 启动 按钮,JMeter 就会开始模拟多个用户请求目标接口,并记录测试结果。
8. 查看结果
测试完成后,可以通过添加的监听器查看测试的 响应时间、吞吐量、错误率 等指标。
JMeter进行接口测试的关键特性
- 支持多协议:JMeter 支持多种协议的接口测试,包括 HTTP、HTTPS、SOAP、RESTful、JDBC、FTP、JMS 等。
- 并发用户模拟:JMeter 可以模拟数百甚至数千个虚拟用户进行并发访问,适用于性能和负载测试。
- 强大的断言功能:通过断言验证接口的响应数据,确保接口的功能正确。
- 灵活的测试计划配置:可以设置不同的线程组、请求、循环次数等来模拟不同的测试场景。
- 结果分析与报告生成:JMeter 提供了丰富的 图形报告 和 统计报告,便于分析测试结果。
JMeter接口测试的常见应用场景
-
功能测试:
- 通过模拟 HTTP 请求,检查 API 的功能是否符合预期。
- 验证接口是否返回正确的状态码、数据内容和响应时间。
-
性能测试:
- 负载测试:模拟多个并发用户访问接口,评估系统的吞吐量和响应时间。
- 压力测试:通过增加并发用户数量,测试接口在高负载下的稳定性和响应能力。
- 耐久性测试:长时间对接口进行访问,检查其是否会出现性能下降或崩溃。
-
集成测试:
- 在多个接口之间进行集成测试,确保数据在各接口间流动无误,且整体系统能正常工作。
-
回归测试:
- 在接口有更新或修改后,通过 JMeter 进行回归测试,确保接口更新没有引入新的问题。
JMeter接口测试的优势
- 易于使用:JMeter 提供了图形化的界面,用户可以通过拖拽、配置轻松完成测试脚本的编写。
- 支持多种协议:不仅可以进行 Web 接口测试,还可以进行数据库、FTP、JMS、WebSocket 等多种类型的接口测试。
- 高度可扩展性:通过插件支持,JMeter 可以添加额外的功能,例如对 NoSQL 数据库、消息队列等的支持。
- 分布式测试:JMeter 支持分布式测试,可以在多个机器上分担负载,从而进行大规模的性能测试。
总结
- JMeter 是一款强大的性能测试和接口测试工具,支持多种协议,能够模拟大量并发请求,评估接口的 性能 和 功能。
- 它提供了丰富的功能,如断言、监听器、结果分析等,帮助我们全面地进行接口的 自动化测试 和 性能测试。
- JMeter 适用于 API 接口的 功能测试、负载测试、压力测试 和 回归测试 等多种场景,是接口自动化测试的理想选择。
二、具体操作步骤
(一)打开jmeter
1.快捷键win+r使用cmd命令窗口输入jemeter,然后回车
或者
在jmeter的bin目录下打开jmeter.bat这个文件
(二)创建单接口请求测试
2.点击测试计划--右键添加--Threads(Users)--线程组
3.这些默认值做接口测试的话可以不用改
post接口请求
新建HTTP请求
4.点击线程组--添加--Sampler-HTTP请求
添加请求信息
5.填入接口的请求数据,然后点击运行
添加察看结果树
6.点击接口请求--添加--监听器--察看结果树
查看结果树运行结果
7.查看结果树运行结果
到这里post请求的构建就基本完成了
get接口请求
新建HTTP请求
1.点击线程组--右键添加--sampler--HTTP请求
添加请求信息
2.在页面中填入请求的信息,如果有携带参数可以在路径的后面加一个?然后接上参数
添加察看结果树
3.点击对应的端口--右键添加---监听器---察看结果树
查看结果树运行结果
4.点击对应的结果树---点击运行---点击运行出来的接口---可以查看这个接口的运行结果了
添加断言
创建响应断言
1.在要断言的接口点击添加--断言--响应断言
ps:这里举例子用post接口来示例
设置断言的数据
2.设置断言数据
创建断言结果
3.在要断言的接口中添加--监听器--断言结果
查看断言结果
4.断言结果里面点击运行,查看断言结果
断言成功会返回断言的这个名称
如果出现failed说明断言失败
(三)创建关联接口
关联接口就是以第一个接口的响应结果作为第二个接口的入参
简单流程例子
流程:
接口A(登录接口):
- 请求:
POST /login
- 响应:
{"token": "abc123"}
接口B(获取用户信息接口):
- 请求:
GET /user_info?token=abc123
- 响应:
{"userId": 1, "name": "John Doe"}
应用例子:比如 登录-查询-支付 等一系列接口的调用。
实操讲解:
要查询城市就要先查询出上一个接口,也就是对应的是省份才可以。
创建线程组
ps:可以用原有的线程组或者创建一个新的来完成这个例子都可以,我这里选择创建一个新的线程组
1.jmeter里面创建一个线程组
ps:上面单接口有讲过,就不那么详细说明了
2.设置线程参数名称,其他参数我默认。有需要的伙伴也可以自己更改线程数这些
接口一
创建一个HTTP请求
3.线程组下面创建一个HTTP请求
填写接口一(省份)的请求参数
4.填写接口请求参数
省份请求链接
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince
协议:http
ip:www.webxml.com.cn
路径:/WebServices/WeatherWebService.asmx/getSupportProvince
ps:有空格或者填错运行结果树时候会报错
添加省份察看结果树
5.接口添加结果树查看接口的运行结果
6.运行结果树,可以在点开接口运行接口查看运行的响应数据
添加正则提取器
在后置处理器中创建正则提取器
7.添加正则表达提取器,为了把接口一的响应数据提取出来
设置正则提取器参数
8.设置引用名和正则提起接口一的响应结果的方式,还有模板这些,点击运行使其生效
接口二
新创建一个HTTP请求
9.为城市的接口创建一个http请求
添加接口二(城市)请求信息--添加正则提取出来的值
城市请求链接
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity
10.里面填入对应的请求参数
浏览器上面查看显示请求时候需要传入byProvinceName这个参数,那么一会请求参数设置的时候要传入这个参数
添加城市察看结果树
11.城市接口请求添加一个察看结果树可以查看运行结果了
12.查看结果树的运行结果,可以看到城市接口已经请求成功了
有什么问题都可以评论区留言,看见都会回复的
如果你觉得本篇文章对你有所帮助的,把“文章有帮助的”打在评论区
多多支持吧!!!
点赞收藏评论,当然也可以点击文章底部的红包或者👇订阅里面付费文章创作支持一下了。抱拳了!