Jmeter 接口测试实践之 token 传参

什么是JMeter?

JMeter 是一个纯 Java 的开源测试工具。通过模拟浏览器行为,它向 Web 或应用程序服务器发送请求以请求不同的负载。

JMeter 最初是为测试 Web 应用程序而设计的,但后来扩展到测试其他功能,例如基于各种技术的功能测试,性能测试,回归测试,压力测试,数据库服务器测试。

本篇主要讲如何用 Jmeter 做接口测试,还是挺多公司用它做接口测试,因为它很方便。一般包括的操作有 http 脚本编辑(发 get/post 请求、cookie 设置、header 设置、权限认证)、参数化、断言、关联和数据驱动等等。

Jmeter 接口测试实践之 token 传参

 

使用JMeter的优缺点

优点:

  • 快速API测试
  • 快速执行范围测试
  • 支持负载测试
  • 支持压力测试
  • 生成测试数据
  • 开源工具
  • 很多插件和扩展
  • 跨平台
  • 能够使用各种编程语言(Java / JS / PHP)

缺点:

  • 占用大量系统资源
  • 不适用于大量请求(超过10,000个)
  • 表格和图形中的测试结果数量有限

 

如何用

1、安装

去官网直接下载安装包就可以,配置和安装过程可以百度一下。

下载地址:https://jmeter.apache.org/download_jmeter.cgi

2、启动

双击安装目录 bin 文件夹下的 jmeter.bat

Jmeter 接口测试实践之 token 传参

 

打开了之后长这样:

Jmeter 接口测试实践之 token 传参

注:运行的时候,不要关闭 jmeter.bat 文件

 

3、编写接口用例

下面我以最常见的 登录授权接口 (OAuth API)为例,用 Jmeter 编写接口用例。

主要涉及两个主要步骤:

1.请求 token;

2.在后续 API 中将该 token 用作 Header 中的 Bearer Token。

 

步骤1:请求 token

a)右键单击“测试计划”,然后添加一个新的线程组。将其命名为“Demo Group”

Jmeter 接口测试实践之 token 传参

 

b)右键单击“线程组”->添加->取样器-> HTTP 请求

Jmeter 接口测试实践之 token 传参

c)添加请求详细信息并“保存”

Jmeter 接口测试实践之 token 传参

注:红色标注内容是必填的,我这里是将协议和 Host 等配置信息放到了参数里,方便之后复用。

 

d)添加“察看结果树”和“JSON提取器”

Jmeter 接口测试实践之 token 传参

Jmeter 接口测试实践之 token 传参

 

e)在提取器中添加 JSON Path Expression,先从“察看结果树”->“响应数据”找到 token

Jmeter 接口测试实践之 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也是一样的操作。

Jmeter 接口测试实践之 token 传参

 

 

步骤2:将该 token 传递给后续 API

a)按照上述相同步骤创建 HTTP请求 并添加第二个API

 

b)添加“ HTTP消息头”和“查看结果树”

Jmeter 接口测试实践之 token 传参

c)现在将你在步骤 1- e 中获得的 token 值添加为 $ {access_token}

Jmeter 接口测试实践之 token 传参

对其余的API遵循类似的步骤。

 

如果需要设置为全局变量,需要添加后置处理器的 “BeanShell PostProcessor”,如图

Jmeter 接口测试实践之 token 传参

获得的 token 值也要对应修改,添加为 ${__property(access_token)}

Jmeter 接口测试实践之 token 传参

最后点击运行,就可以在结果树里看结果了。

 

以上,我们实现了一个常用的登录提取 Token 接口脚本的编写,JMeter 是功能很强大的测试工具,比如有计时器、数据库连接、Jenkins集成等功能,它非常灵活,你可以根据自己的项目自行配置。另外,不要忘记 JMeter 是开源的,还具有许多扩展。