【2】Jmeter获取token,模拟多用户并发及token存储文本文件

news/2024/10/31 1:32:42/

按以下步骤来,以下各种处理程序的放置位置很重要!!不然会出现各种问题

1、setup线程组

  • 前置获取token的接口(login,以下都用login表示获取token接口)请求,获取类似token等后续需要用的参数,并写入文本文件

2、获取上层接口返参

  • login接口配置JSON提取器,json表达式可以通过结果树,选择请求的显示格式为json path tester,通过右侧JSON Path Expression来提取参数变量 (https://www.cnblogs.com/laumcc/p/12319612.html)

  • 这一步也可以用“后置处理器-正则提取器”来提取参数

  • PS:【JSON提取器】放在login层级下方

3、接口参数写入文件,用于后续使用

  • JSR223后置处理程序,用java语言将参数写入文本文件,若文件内含<EOF>,则存入前过滤下,或者后续接口请求时过滤

     以下是在存储前过滤

    //请求login接口返回token,Json或正则提取后,存储
    FileOutputStream fps1 = new FileOutputStream("/file_path/token.txt",true);OutputStreamWriter osw1 = new OutputStreamWriter(fps1);
    BufferedWriter bw1 =new BufferedWriter(osw1);if("${token}"=="<EOF>"){return ;}
    bw1.append("${token}\n"); if(bw1!=null){bw1.close();}
    if(osw1!=null){osw1.close();}
    if(fps1!=null){fps1.close();}
  • 若文本文件存入的数据条数多于线程数,同一个token重复写入,1、JSR223后置处理器放到login接口层级下方,Json提取器后面【不能放到测试计划层级下,不能与线程组同一层级

4、后续token为入参/header的接口请求

  • 【CSV数据文件设置】用于提取本地文件的数据,放在测试计划层级下,与线程组同一层级
  •  后续接口http信息头管理器(header)的token值 ${token} ,即可引用

仍存在个别疑惑,如果有老铁知道原因,求解惑,感激不尽

1、setUp线程组拿到token参数,但值为空,尝试增加【调试取样器】,token值就拿到了(JSON Path 表达式没有写错!!)


http://www.ppmy.cn/news/88900.html

相关文章

ROS学习笔记(九):MoveIt!与机械臂控制

ROS学习笔记&#xff08;九&#xff09;&#xff1a;MoveIt&#xff01;与机械臂控制 MoveIt&#xff01;简介MoveIt&#xff01;系统架构MoveIt&#xff01;编程与机械臂控制关节空间规划工作空间规划笛卡尔运动规划避障规划 Pick and Place示例 MoveIt&#xff01;简介 Move…

ChatGPT在智能外呼机器人领域的应用

随着人工智能技术的不断发展&#xff0c;自然语言处理(NLP)技术也逐渐成为各行各业的热门技术。其中&#xff0c;ChatGPT技术是近年来备受关注的技术之一。ChatGPT技术是一种基于自然语言处理和深度学习的人工智能技术&#xff0c;它可以处理自然语言文本&#xff0c;实现自动化…

02_stack栈

1. Stack 栈是什么&#xff1f; 栈也叫栈内存&#xff0c;主管Java程序的运行&#xff0c;是在线程创建时创建&#xff0c;它的生命期是跟随线程的生命期&#xff0c;线程结束栈内存也就释放&#xff0c;对于栈来说不存在垃圾回收问题&#xff0c;只要线程一结束该栈就Over&…

【04】Nginx之静态资源优化配置语法

Nginx静态资源压缩实战 在Nginx的配置文件中可以通过配置gzip来对静态资源进行压缩&#xff0c;相关的指令可以配置在http块、server块和location块中&#xff0c;Nginx可以通过一下指令进行解析和处理 ngx_http_gzip_module模块 ngx_http_gzip_static_module模块 ngx_http_g…

关于 C/C++ 中的 switch 语句,您可能不知道

关于 C/C 中的 switch 语句&#xff0c;您可能不知道 关于如何通过VC中的逆向工程执行开关/案例的讨论 介绍 许多编程语言&#xff0c;如 C/C、C#、Java 和 Pascal 都提供了让我们实现选择逻辑的语句。在某些情况下&#xff0c;它是 的良好替代方法&#xff0c;使代码更清晰、…

AirPlay视频SDK集成

1定义 表1描述了本文档中使用的术语 表1:术语定义 术语定义AirPlay苹果的协议,用于通过网络将苹果设备上的内容共享给支持的配件。AirPlay可以在几种不同的模式下使用,如表2所示。支持所有模式是必需的。AirPlay 接收支持AirPlay协议的配件,可以从苹果设备上无线播放内容。例…

BigDecimal 保留2为小数 四舍五入 和舍弃

amount.divide(BigDecimal.valueOf(monthDays),2,BigDecimal.ROUND_HALF_UP);System.out.println("ROUND_HALF_UP"ROUND_HALF_UP); //6.67amount.divide(BigDecimal.valueOf(monthDays),2,BigDecimal.ROUND_DOWN); //6.66 BUG解决 FeeAmountt().divide(LoanAmount()…

c# 事件与委托

//在C#中&#xff0c;事件是一种特殊的委托&#xff0c;它允许对象通知其他对象发生了某个特定的事件。 //事件通常用于GUI应用程序中&#xff0c;例如当用户单击按钮时&#xff0c;按钮控件会引发Click事件&#xff0c; //然后其他对象可以订阅该事件并执行相应的操作。 //以…