Jmeter中配置token全局变量与实现接口之间实现参数传递
前言:在使用jmeter做接口测试时,会经常遇到两个问题**:1)配置全局token,业务接口需要在登录后才能操作;2)不同接口之间的参数传递,通常完成一个业务功能需要调用多个接口,并且接口参数是相互关联的。**这里主要分享下上述两种操作如何在jmeter中使用和实现
一、配置变量token全局变量
通常情况下,用户在成功登录后,会在登录接口中会返回token,返回的token信息会放在后续业务接口的请求头中,用来验证用户是否已登录
如下图:调用登录接口后返回token
step1:在登录接口下添加Json提取器(也可以用正则表达式提取器)
说明:
(1)变量名称一般与接口响应字段保存一致(看个人习惯)
(2)json提取表达式为$.result.token
,根据响应体的json层级进行填写,以下是接口返回的嵌套层级结构,供参考
{
"message": "success",
"result": {
"needChangePassword": false,
"expires": 3600000,
"firstLogin": false,
"userId": "1199596756811550720",
"token": "7d24ff6bb87b3e246ad1fa73a0d87c2b"
},
"status": 200,
"timestamp": 1723790358551
}
step2:添加BeanShell 后置处理程序,设置全局变量
说明:
全局变量函数: ${__setProperty(全局变量名,变量值,)};
其中${token}
为之前在json提取器中提取的token值;accessToken
为全局变量名,后续在请求头中会进行引用
step3:在接口请求头中有引用token全局变量
说明:
引用全局变量: ${__property(全局变量)};
accessToken
为全局变量名,此处就能引用到step2中通过json提取器提取的token值
最后在查看结果树中,可以看到请求头中引用的token,如下图:
二、接口之间实现参数传递
实现过程与上面设置全局token基本一致
接口场景逻辑:需要先调用图片上传接口,然后提取返回信息中的图片url,之后url会作为新建设备接口的一个参数进行传入,从而实现新建设备时完成设备图片的上传
如下图,调用上传文件接口后返回了图片访问url
step1:在接口下添加Json提取器,提取接口返回值
step2:在接口请求参数中引入变量
说明:
(2)json提取表达式为$.result.token
,根据响应体的json层级进行填写,以下是接口返回的嵌套层级结构,供参考
{
"message": "success",
"result": {
"id": "UZFZ6XjA_Afh1xW1OgAMkzzRhhq71tyq",
"name": "p1.png",
"extension": "png",
"length": 1072968,
"md5": "ebfb464b5f10e738ce742876e46cd349",
"sha256": "a13e54947f8b0e9acdb262082a0875f6a31bb67f3a309e8640e9f8afb9ffc196",
"createTime": 1723790358837,
"creatorId": "1199596756811550720",
"options": [
],
"others": {
"accessKey": "566d4420227764a8089deb68a8f634c2"
},
"accessUrl": "http://192.168.32.159:5173/api/file/UZFZ6XjA_Afh1xW1OgAMkzzRhhq71tyq.png?accessKey=566d4420227764a8089deb68a8f634c2"
},
"status": 200,
"timestamp": 1723790358870
}
结束!!!
今天分享到这儿,存在不足的地方还请大家多多指教!!!