Jmeter 接口测试实践之 token 传参
什么是JMeter?
JMeter 是一个纯 Java 的开源测试工具。通过模拟浏览器行为,它向 Web 或应用程序服务器发送请求以请求不同的负载。
JMeter 最初是为测试 Web 应用程序而设计的,但后来扩展到测试其他功能,例如基于各种技术的功能测试,性能测试,回归测试,压力测试,数据库服务器测试。
本篇主要讲如何用 Jmeter 做接口测试,还是挺多公司用它做接口测试,因为它很方便。一般包括的操作有 http 脚本编辑(发 get/post 请求、cookie 设置、header 设置、权限认证)、参数化、断言、关联和数据驱动等等。
使用JMeter的优缺点
优点:
- 快速API测试
- 快速执行范围测试
- 支持负载测试
- 支持压力测试
- 生成测试数据
- 开源工具
- 很多插件和扩展
- 跨平台
- 能够使用各种编程语言(Java / JS / PHP)
缺点:
- 占用大量系统资源
- 不适用于大量请求(超过10,000个)
- 表格和图形中的测试结果数量有限
如何用
1、安装
去官网直接下载安装包就可以,配置和安装过程可以百度一下。
下载地址:https://jmeter.apache.org/download_jmeter.cgi
2、启动
双击安装目录 bin 文件夹下的 jmeter.bat
打开了之后长这样:
注:运行的时候,不要关闭 jmeter.bat 文件
3、编写接口用例
下面我以最常见的 登录授权接口 (OAuth API)为例,用 Jmeter 编写接口用例。
主要涉及两个主要步骤:
1.请求 token;
2.在后续 API 中将该 token 用作 Header 中的 Bearer Token。
步骤1:请求 token
a)右键单击“测试计划”,然后添加一个新的线程组。将其命名为“Demo Group”
b)右键单击“线程组”->添加->取样器-> HTTP 请求
c)添加请求详细信息并“保存”
注:红色标注内容是必填的,我这里是将协议和 Host 等配置信息放到了参数里,方便之后复用。
d)添加“察看结果树”和“JSON提取器”
e)在提取器中添加 JSON Path Expression,先从“察看结果树”->“响应数据”找到 token
这是我在“察看结果树”中 JSON 格式的返回结果。
{
"code": 2000,
"message": "success",
"body": {
"access_token": "2b4e2930-eda1-4a30-8cd2-53fc8040895d",
"refresh_token": "b50f65d7-5e19-40c7-bc5a-8c6201defb81",
"scope": "all",
"token_type": "bearer",
"expires_in": 86399
}
}
这里,我加了 $..access_token,用于提取上面返回结果中的 access_token 给变量 access_token,token_type也是一样的操作。
步骤2:将该 token 传递给后续 API
a)按照上述相同步骤创建 HTTP请求 并添加第二个API
b)添加“ HTTP消息头”和“查看结果树”
c)现在将你在步骤 1- e 中获得的 token 值添加为 $ {access_token}
对其余的API遵循类似的步骤。
如果需要设置为全局变量,需要添加后置处理器的 “BeanShell PostProcessor”,如图
获得的 token 值也要对应修改,添加为 ${__property(access_token)}
最后点击运行,就可以在结果树里看结果了。
以上,我们实现了一个常用的登录提取 Token 接口脚本的编写,JMeter 是功能很强大的测试工具,比如有计时器、数据库连接、Jenkins集成等功能,它非常灵活,你可以根据自己的项目自行配置。另外,不要忘记 JMeter 是开源的,还具有许多扩展。