Jmeter: 参数动态赋值

本文为原创,码字不易,转载请注明,谢谢!


问题

在用Jmeter做接口测试时,需要传递登用户录后的token——通过请求头部传递,希望在一个线程中,通过动态修改token的值来验证不同的用户下,接口返回的信息是否正确。

前提
  • setUp Thread Group调用了两次登录接口,分别将user_1和user_2的token保存为全局变量User_1_token和User_2_token(用全局变量为了方便多线程组调用)
  • Jmeter版本为3.2
动态传递token
  1. 新建一个变量user_token,为了方便给了一个默认值1(根据实际来吧,也可以不给)
    定义变量
  2. 创建线程组,添加 HTTP信息头管理器,调用user_token变量
    添加HTTP信息头管理器
  3. 添加要测试的接口(http请求)
  4. 添加前置处理器Bean Shell PreProcessor,修改user_token的值为已获取的user_1_token
    添加前置处理器
    在这个地方踩了坑,参考了网上的资料,开始是这样写的:
      String token = ${__P(user_1_token,)};
      vars.put("user_token", token);
    结果请求中传的值是我设置的默认值,折腾了好久,把第一行换成 
      String token = bsh.args[0]; 
    就OK了(不要问我为什么,我也还没搞明白^~~^)
      ```
    
  5. 一个用户的调通了,接下来需要将user_token的值修改为user_2_token,再调用测试接口。开始的思路是重复步骤4,将user_1_token改为user_2_token后,请求接口,结构是这样的:
    user_1_token to user_token
    HTTP请求
    user_2_token to user_token
    HTTP请求
    

运行后,发现两次http请求都是调用的user_2_token,显然这不是我想要的。于是想到了if控制器,当user_token==user_1_token时,将user_1_token传给user_token
添加if控制器
  1. 最后做了下优化,结构如下:
    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,120评论 19 139
  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 9,656评论 0 16
  • 1 Jmeter安装配置 使用Jmeter前首先要安装JDK,配置JDK环境变量。Jmeter不需要安装,下载后...
    茶小汐阅读 8,134评论 0 8
  • 下午听了1小时达江的课 总算是找回一点学习的感觉了 拿起手机准备去吃饭 发现心心念念的书到了 以至于吃饭时的心...
    29号下午的光阅读 1,351评论 0 0
  • 在阅读之中发现美,是一件相当苦难的事! 阅读与文字有关,但同时也与时间和阅历有关。当一段文字和一本书在眼中绽放出奇...
    Andylee阅读 4,719评论 1 2

友情链接更多精彩内容