本文共 902 字,大约阅读时间需要 3 分钟。
在接口测试中,很多接口都需要用户先登录才能访问。虽然登录是前置操作,但我们的测试关注点始终是目标接口。对于 Python 的 unittest 和 pytest 框架,前置操作通过 setUp 概念实现,而 JMeter 中也有 setUp 线程组可以完成前置准备工作。
我们需要测试的是查询用户个人信息接口 /api/v1/userinfo,但该接口需要用户登录的 token 才有权限访问。因此,前置操作就是先执行登录,获取 token。
在测试计划中,新增 setUp 线程组。首先,在 setUp 线程组前面添加 HTTP 请求默认值,配置环境信息。接着,在 HTTP 信息头管理器中添加 POST 接口,设置 Content-Type: application/json(具体参考前文文章)。然后,新增 HTTP 请求,添加登录接口的相关信息。
运行后可在结果树中观察到登录成功,返回的完整 JSON 内容如下:
{ "code": 0, "msg": "login success!", "username": "test", "token": "b6b3545d53881d5e95430572bb43a5c995e462ce"} 接下来,添加后置处理器 JSON 提取器,将 token 提取出来,并设置变量名称为 token。提取的变量仅在当前线程组可引用,因此需要将其设置为系统的全局变量。为此,添加 BeanShell 后置处理程序,将提取的 ${token} 参数设置为全局属性,属性名称为 token_global。
使用 ${__setProperty(token_global,${token},)}$ 语句实现这一点。
然后,新增一个测试线程组,在头部管理器中添加 token 引用属性,使用 ${__P(token_global,)}$ 表示引用全局属性。
接着添加需要测试的个人信息接口访问路径,运行后可在请求头中查看是否已成功关联。
最后,建议在测试完成后添加 tearDown 线程组,进行数据清理操作。
转载地址:http://brlbz.baihongyu.com/