当前位置: 首页 > article >正文

jmeter脚本-请求体设置变量and请求体太长的处理

目录

1、查询接口

1.1 准备组织列表的TXT文件,如下:

1.2 添加 CSV数据文件设置 ,如下:

1.3 接口请求体设置变量,如下:

2、创建接口

2.1 见1.1

2.2 见1.2

2.3 准备创建接口的请求体TXT文件,如下:

2.4 添加 JSR223预处理程序 ,如下:

2.5 接口请求体设置变量,如下:


 

我们本次压2个接口,查询接口和创建接口:

查询接口压测时,系统中有很多组织,要求接口每次查询的组织不一样,需要把请求体的组织参数化,用到了CSV数据文件设置;

创建接口压测时,系统中有很多组织,要求接口每次创建的组织不一样,需要把请求体的组织参数化,用到了CSV数据文件设置;

另外由于创建接口的请求体太长了,直接粘贴到jmeter--http请求--消息体数据,会导致jmeter界面卡死,运行时也无法准确获取请求体,所以直接把请求体保存在一个TXT文件中,运行时从TXT文件获取请求体;本来想用CSV数据文件设置这个TXT,但是每次获取到的请求体还需要组织参数化,所以用JSR223预处理程序对请求体进行处理;

1、查询接口

查询接口压测时,系统中有很多组织,要求接口每次查询的组织不一样,需要把请求体的组织参数化,用到了CSV数据文件设置;

1.1 准备组织列表的TXT文件,如下:

114eca7067dc4122bcbb8ee9085907a3.png

1.2 添加 CSV数据文件设置 ,如下:

此处引用1.1中的文件;

定义变量名称,分别对应TXT文件中的3行数据;(后面请求体会用到这个变量名称)

如果TXT中有标题,则忽略首行,没有标题,则不忽略首行;

e35990bf7867460ebd6e0c964ca2795e.png

1.3 接口请求体设置变量,如下:

先在界面上选中某一个组织,进行查询操作,F12先获取此次查询的请求体;

在请求体中,找到组织参数,如下所示,确定为"value1",把此处value1的参数值改为"${stockOrgId}" (stockOrgId为1.2中定义的变量,脚本运行时就会循环从组织列表TXT中获取对应那一列的组织数据)

2ab4077118dd4d9da12a705225305296.png

2、创建接口

创建接口压测时,系统中有很多组织,要求接口每次创建的组织不一样,需要把请求体的组织参数化,用到了CSV数据文件设置;

另外由于创建接口的请求体太长了,直接粘贴到jmeter--http请求--消息体数据,会导致jmeter界面卡死,运行时也无法准确获取请求体,所以直接把请求体保存在一个TXT文件中,运行时从TXT文件获取请求体;本来想用CSV数据文件设置这个TXT,但是每次获取到的请求体还需要组织参数化,所以用JSR223预处理程序对请求体进行处理;

2.1 见1.1

2.2 见1.2

2.3 准备创建接口的请求体TXT文件,如下:

7e930efc8b7b4e9e905b6654ac438c48.png

2.4 添加 JSR223预处理程序 ,如下:

a622d2ead33047e587052028311ecbde.png

读取变量:stockOrgIdstockOrgId_name 是从外部变量(CSV)中获取的,确保这两列存在。

内容替换:通过replace方法,将文本中的占位符stockOrgABIdstockOrgIdABname替换为相应的变量值。

存储替换内容:替换后的内容存入vars对象的savedata变量中,以便后续使用。

2.5 接口请求体设置变量,如下:

b31d30f926b7477f9e6998a6992f9b81.png

 

 

 


http://www.kler.cn/a/380842.html

相关文章:

  • 注意力机制的实现
  • Logstash 安装与部署(无坑版)
  • 【6G 需求与定义】ITU(国际电联)对全球6G标准的愿景
  • docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法
  • 基于大语言模型(LLM)自主Agent 智能体综述
  • 为什么我们调用 start()方法时会执行 run()方法 ,为什么我们不能 直接调用 run()方法?
  • Webpack入门教程:从基本概念到优化技巧
  • Vision - 开源视觉分割算法框架 Grounded SAM2 视频推理 教程 (2)
  • K8S简单部署,以及UI界面配置
  • Vue指令:v-else、v-else-if
  • 展示+分享|美创科技@2024年数据安全关键技术研究及产业应用成果大会
  • 【云备份】httplib库
  • 信息安全工程师(77)常见网络安全应急事件场景与处理流程
  • 拓展学习-golang的基础语法和常用开发工具
  • 【LeetCode】【算法】234.回文链表
  • Spring Data Redis的基本使用
  • Spring Boot 与 Vue 共铸卓越采购管理新平台
  • OpenID Connect 和 OAuth 2.0 有什么不同?
  • 揭秘rust中默认参数类型不为人知的秘密,你确定不来了解下吗?
  • Java 基于SpringBoot+Vue 的公交智能化系统,附源码、文档
  • Django Form 实现多层(嵌套)模型表单
  • 深度学习模块创作(缝合)教程|适合1-360月小宝宝食用,干货满满
  • 深度学习基础知识-损失函数
  • 【C/C++】memcpy函数的模拟实现
  • Mac OS 配置Docker+Mysql
  • C++中的继承——第一篇