首页 > 其他分享 >如何在jmeter中把响应中的数据提取出来并引用

如何在jmeter中把响应中的数据提取出来并引用

时间:2023-04-26 20:55:13浏览次数:48  
标签:__ property 提取 接口 响应 token 线程 jmeter

 

jmeter做接口测试过程中,经常遇到请求需要用到token的时候,我们可以把返回token的接口用后置处理器提取出来,但是在这种情况下,只能适用于当前的线程组,其他线程组无法引用到提取的token变量值,所以必须要生成全局变量让测试计划下的所有线程组都可以引用变量。

同一个线程组下提取token并引用

1、执行获取token接口(登录接口),在查看结果树这里,使用$符号提取token值

$.根节点$.data.token 表示提取根节点下的data节点下的token节点的值

image.png

2、使用json提取器,提取登录接口响应结果中的access_token,保存在变量token中

变量路径就是把在结果树提取的路径写上

image.png

3、可以使用调试取样器查看提取的token值是否正确

image.png

4、下一个接口(列表查询接口)中,需要使用上个登录接口返回的token值,使用${token}引用

image.png

不同线程组下提取token并引用

1、使用json提取器提取登录接口响应结果中的access_token,保存在变量token中,操作与上文提到的一样。

2、使用函数助手对话框的setProperty函数,有两个输入框要填写(属性名称和Value of property),属性名称填写一个全局变量名,Value of property填写json提取器提取的access_token(json提取器提取到的access_token赋值给了变量token,此处引用变量${token}得到) image.png

3、在json提取器下添加一个后置处理器BeanShell PostProcessor;

image.png

4、把生成的setProperty函数(${__setProperty(new_token,${token},)})复制到BeanShell PostProcessor中,此时已经把接口需要用到的access_token生成了并保存在全局变量new_token中。

image.png

5、引用该全局变量有两种方式

(1)使用函数助手中的property函数,只填写属性名称对应的输入框:全局变量名new_token

image.png

把生成的结果填写到列表查询接口需要引用的地方

image.png

(2)使用函数助手中的P函数,只填写属性名称对应的输入框:全局变量名new_token image.png

把生成的结果填写到列表查询接口需要引用的地方

image.png

总结

${__setProperty()}${__property()}/${__P()}一起配合使用,setProptety等于把值拿出来, __property/__P 对值进行使用

__P__property函数的简化版,举个例子:${__P(prop1)}会返回属性prop1的值;${__P(prop1,123)} 会返回属性prop1的值,如果prop1未定义值,则返回123;

__property__P之间的区别:用法上__property函数仅仅是比__P函数多了一个可以存值的变量,举个__property用法例子:${__property(pro,var,abcd)}会返回pro的值,如果pro未定义值则会返回abcd,同时会将pro的值存到变量var中

注意事项

如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置

image.png

原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误

 我是测试要用手,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!!

标签:__,property,提取,接口,响应,token,线程,jmeter
From: https://www.cnblogs.com/ccssx/p/17357261.html

相关文章

  • 我要提取text4文本中的邮箱号 正则应该怎么写?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【膨胀西瓜汁】问了一个Python正则表达式的问题,这里拿出来给大家分享下。代码如下:二、实现过程这里【甯同学】给了一个思路,如下图所示:直接使用字符串+列表推导式搞定了,太强了!不过粉丝正好在学习正则表达式,所以还是希望......
  • # yyds干货盘点 # 我要提取text4文本中的邮箱号 正则应该怎么写?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【膨胀西瓜汁】问了一个Python正则表达式的问题,这里拿出来给大家分享下。代码如下:二、实现过程这里【甯同学】给了一个思路,如下图所示:直接使用字符串+列表推导式搞定了,太强了!不过粉丝正好在学习正则表达式,所以还是希望能够用正则......
  • linux 中 批量提取指定的列
     001、(py38)root@DESKTOP-IDT9S0E:/home/test#lsa.txtindex.txtrecord.sh(py38)root@DESKTOP-IDT9S0E:/home/test#cata.txt##测试数据0102030405060708091011121314151617181920212223242526272829303132333435363......
  • Jmeter分部式部署(windows)
    1、前提条件关闭调度机和执行机的防火墙所有客户端在同一个子网各个机器在相同的目录下安装相同版本的Jmeter各个机器在相同的目录下安装相同版本的JDK如果脚本涉及读取外部参数化文件,如CSV文件,需要将文件上传到每个执行机2、调度机(master)配置2.1配置jmet......
  • spring mvc3.2 请求及响应过程
    doFilter-->doFilterInternal-->filterChain.doFilter-->HttpServletservice(request,response)-->doGet(req,resp)-->DispatcherServletservice(ServletRequestreq,ServletResponseres)-->FrameworkServlet.processRequest-->doDispatch(request......
  • 苹果Mac电脑安装AutoCAD 2024卡死无响应解决方法
    期待已久的AutoCAD2024已经更新了,许多朋友第一时间卸载电脑上的AutoCAD2023,转手下载了最新版的AutoCAD2024,但是安装的时候发现双击包内的InstallAutodeskAutoCAD2024 安装程序后总是会出现程序卡死无响应的情况,不管是重启电脑,还是重新从官网下载安装包都不行。AutoCAD2024......
  • 达梦读写分离分发测试(Jmeter 压测)
    1. 测试目的本次测试目的主要是验证达梦读写分离集群是否生效,查询负载请求是否会自动分发给备库执行2. 达梦读写分离部署(一写一读,过程忽略)配置ip地址实例名端口号数据库版本主库192.168.145.66DM6652364-2-98-21.12.16-153423-10040-SEC......
  • 易基因:ChIP-seq等揭示热休克转录因子A1b调控植物高温胁迫响应的分子机制|应激反应
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 在拟南芥中,热休克转录因子A1b(HEATSHOCKTRANSCRIPTIONFACTORA1b,HSFA1b)通过影响种子产量来调控对环境胁迫的抗性。HSFA1b是生殖适应性的决定性因素,这种调控机制怎么形成的呢?2018年,英国生物-植物科学类期刊Journa......
  • HTTP---响应数据格式
       ......
  • 性能测试-全栈性能测试修炼宝典jmeter实战【杭州多测师_王sir】【杭州多测师】
    全栈性能测试修炼宝典jmeter实战中关于tps计算和并发线程数的计算、以及性能场景的设计 ......