Jmeter-token获取方法

本文介绍了在JMeter中如何从一个接口的响应中提取token,并将其用于后续接口请求的方法。包括使用JSONExtractor、正则表达式提取器和BeanshellPostProcessor。详细讲解了每个后置处理器的使用步骤和代码示例,帮助读者理解如何在接口测试中实现参数的跨请求传递。
摘要由CSDN通过智能技术生成

上一个接口返回的token要作为下一个接口的入参,需要获取实时token,这里列举三种方法。

1、后置处理器-JSON Extractor
2、后置处理器-正则表达式提取器
3、后置处理器-Beanshell PostProcessor

案例场景
有一个登陆接口A,登陆成功后返回一个token值,另有接口B,必须要先登录后传登录的token才能访问
A接口返回报文如下
在这里插入图片描述
1、后置处理器-JSON Extractor
在请求1中,添加后置处理器-Json提取器,从返回的结果中提取token值
在这里插入图片描述
关联请求,在HTTP信息头管理器,引用token参数${token},如下:
在这里插入图片描述
2、后置处理器-正则表达式提取器
在请求1中,添加后置处理器-正则表达式提取器,从返回的结果中提取token值
在这里插入图片描述
关联请求引用方式和JSON Extractor一致
ps:

JSON Extractor和正则表达式提取的区别:

json提取器只能提取json格式的数据,正则可以匹配任意的返回。

3、后置处理器-Beanshell PostProcessor
BeanShell是一个嵌套在jmeter中的一个免费的、小型的处理器,采用Java编写的。
接口间的关联参数数据需要传递参数值。故可通过Beanshell PostProcessor来处理,在请求1中添加后置处理器 -> BeanShell PostProcessor
在Beanshell PostProcessor中的Script中输入以下代码

//先引入jar包
import org.json.*;

//获取请求返回值。赋予字符串String 变量
String reponseresult_user = prev.getResponseDataAsString();

//将string的值转换成 jsonobject 对象
JSONObject json_user=new JSONObject(reponseresult_user);
JSONObject obj_user = json_user.getJSONObject("data");

//获取json中token的值
String access_token=obj_user.getString("token");

//将获取到的token值赋予变量
vars.put("Token",access_token)

后续的接口调用(${变量名称})将token对应的值加进去就可以,如这个为 ${Token}

Beanshell PostProcessor提取的优点
可以跨线程引用提取到的参数。引用方式为: ${__P(变量名称,)},如 ${__P(Token,)}

若jmeter中没有org.json的jar包,需要下载导入,
导入方式为:在测试计划中,通过浏览按钮,将需要导入的jar包引入
在这里插入图片描述

JMeter获取token时,如果提示token非法,可能有以下几个原因。首先,可能是在提取token的正则表达式中出现了错误,导致无法正确提取token。请确保正则表达式的模式与实际的token格式匹配,并且提取器的引用名称与使用时的引用名称一致。其次,可能是在请求中没有正确设置token的参数或者请求头。请确保在后续的请求中正确地使用了${token}或者${引用名称}来引用之前提取到的token。另外,还需要注意token的有效期,如果token在一定时间内过期了,那么在使用时就会提示非法。如果以上方法都没有解决问题,建议检查服务器端的token生成和验证逻辑,确保服务器端和JMetertoken生成和验证方式一致。 #### 引用[.reference_title] - *1* [Jmeter获取token值](https://blog.csdn.net/Aaron_meng188/article/details/123094037)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Jmeter登陆获取token](https://blog.csdn.net/qq_30774825/article/details/126706491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值