Jmeter-实战案例(随机上传文件,接口依赖调用)

前置知识

1 两个接口
1-1 readData需要上传文件

  • 参数
// formData类型
sdbh:""
file: "上传一个压缩包"
  • 响应
{
    "code": 1000,
    "status": "success",
    "message": "操作成功",
    "data":
    {
        "name": "脱敏.gdb.zip",
        "layers":
        [
            "czkfbjtztb_lx",
            "dzxm_lx",
            "gdtztb_lx",
            "jsydtztb_lx",
            "lsldtztb_lx",
            "sdqy_lx",
            "xzxm_lx",
            "yjjbnttztb_lx",
            "zzdy_lx",
            "gbznttztb_lx",
            "mzxm_lx",
            "edqydltb_lx",
            "edqylxdw_lx",
            "edqyxzdw_lx",
            "edqyzzhdltb_lx",
            "edqyzzhlxdw_lx",
            "edqyzzhxzdw_lx",
            "sdqydltb_lx",
            "sdqyzzhdltb_lx"
        ]
    }
}

1-2 appendData 需要依赖于第一个接口的返回结果
layerName和fieldContent里面的name都依赖于第一个接口的返回结果。

  • 参数
param: "{"layerNames":"czkfbjtztb_lx,dzxm_lx,gdtztb_lx,jsydtztb_lx,lsldtztb_lx,sdqy_lx,xzxm_lx,yjjbnttztb_lx,zzdy_lx,gbznttztb_lx,mzxm_lx,edqydltb_lx,edqylxdw_lx,edqyxzdw_lx,edqyzzhdltb_lx,edqyzzhlxdw_lx,edqyzzhxzdw_lx,sdqydltb_lx,sdqyzzhdltb_lx","updateData":[{"fieldContent":"{\"xmbh\":\"脱敏\",\"bsm\":\"\",\"sdmc\":\"脱敏05042023\",\"xmc\":\"脱敏\",\"xdm\":\"脱敏\"}"}],"bh":"3308252023289","name":"脱敏.gdb.zip","isUpdate":true}"

实操

1 首先对于第一个接口生成一个csv文件每次从文件中拿一个bh作为第一个参数(sdbh)的值
在这里插入图片描述
csv文件内容如下:
需要注意csv的表头字段就可以被我们当做环境变量进行使用了
在这里插入图片描述
2 新建一个前置处理脚本随机一个文件
在这里插入图片描述

#我们在这个目录下放我们需要的文件
File folder = new File("E:\\data\\test");
File[] audioFiles = folder.listFiles();
Random rnd = new Random();
#随机生成一个路径放入环境变量中
vars.put("CURRENT_FILE", audioFiles[rnd.nextInt(audioFiles.length)].getAbsolutePath());
log.info("CURRENT_FILE: " + vars.get("CURRENT_FILE"));

3 readData调用
在这里插入图片描述
在这里插入图片描述
这样我们已经随机拿了一个bh和随机了一个文件传入了接口readData
4 下一步就是拿到readData的返回结果进行后置处理
在这里插入图片描述

#我们对返回结果进行处理并且按照第二个接口的参数形式进行组织放入环境变量中
import org.json.JSONObject;
import org.json.JSONArray;
String response = prev.getResponseDataAsString(); 
String sdbh = vars.get("sdbh");
JSONObject jsonObject = new JSONObject(response);
JSONArray layersArray = jsonObject.getJSONObject("data").getJSONArray("layers");
String gdbName = jsonObject.getJSONObject("data").getString("name");
String layersString = String.join(",", layersArray.toList());
JSONObject paramObject = new JSONObject();
paramObject.put("layerNames", layersString);
JSONArray updateDataArray = new JSONArray();
JSONObject fieldContentObject = new JSONObject();
fieldContentObject.put("xmbh", sdbh);
fieldContentObject.put("bsm", "");
fieldContentObject.put("sdmc", "脱敏");
fieldContentObject.put("xmc", "脱敏");
fieldContentObject.put("xdm", "330825");
JSONObject updateDataObject = new JSONObject();
updateDataObject.put("fieldContent", fieldContentObject.toString());
updateDataArray.put(updateDataObject);
paramObject.put("updateData", updateDataArray);
paramObject.put("bh", sdbh);
paramObject.put("name", gdbName);
paramObject.put("isUpdate", true);
vars.put("param", paramObject.toString());
// 进行调试
log.info("param: " + vars.get("param"));

5 调用接口appendData
在这里插入图片描述

总结:整个流程第一是通过csv获得编号,第二是需要对第一个接口的返回值进行处理并存入环境变量,便于直接使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/466150.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

es索引操作命令

索引操作 index 创建索引 put 方法创建索引 使用 put 创建索引时必须指明文档id,否则报错 # PUT 创建命令 # test1 索引名称 # type1 类型名称,默认为_doc,已经被废弃 # 1 文档id PUT /test1/type1/1 {"name":"zhangsan&…

第三门课:结构化机器学习项目-机器学习策略

文章目录 1 机器学习策略一1.1 为什么是ML策略?1.2 正交化1.3 单一数字评估指标1.4 满足和优化指标1.5 训练、开发及测试集划分1.6 开发集和测试集的大小1.7 什么时候改变开发、测试集和指标?1.8 为什么是人的表现?1.9 可避免偏差1.10 理解人…

贪心算法(算法竞赛、蓝桥杯)--线段覆盖

1、B站视频链接&#xff1a;A29 贪心算法 P1803 线段覆盖_哔哩哔哩_bilibili 题目链接&#xff1a;凌乱的yyy / 线段覆盖 - 洛谷 #include <bits/stdc.h> using namespace std;struct line{int l,r;bool operator<(line &b){return r<b.r;//重载小于号,按右端…

FreeRTOS的列表和列表项

这个章节的内容是非常重要的&#xff0c;因为 FreeRTOS 的源码实现离不开列表&#xff0c;所以说大家如果想要看懂 FreeRTOS 的源码&#xff0c;看它是如何实现的&#xff0c;那么这个列表你必须要掌握。 1. 列表和列表项 1.1 列表和列表项的简介 列表 是 FreeRTOS 中的一个…

【递归专题】【蓝桥杯备考训练】:有序分数、正则问题、带分数、约数之和、分形之城【已更新完成】

目录 1、有序分数&#xff08;usaco training 2.1&#xff09; 2、正则问题&#xff08;第八届蓝桥杯省赛C A组 & Java A组&#xff09; 3、带分数&#xff08;第四届蓝桥杯省赛Java A组/B组 & C B组/C组&#xff09; 4、约数之和&#xff08;《算法竞赛进阶指南》…

面试笔记——Redis(使用场景、面临问题、缓存穿透)

Redis的使用场景 Redis&#xff08;Remote Dictionary Server&#xff09;是一个内存数据结构存储系统&#xff0c;它以快速、高效的特性闻名&#xff0c;并且它支持多种数据结构&#xff0c;包括字符串、哈希表、列表、集合、有序集合等。它主要用于以下场景&#xff1a; 缓…

虹科技术|PCAN系列网关内部存储空间解析:EEPROM与Flash的集成应用

导读&#xff1a;网关设备是确保数据流畅通信的关键。虹科PCAN系列网关凭借卓越性能和创新技术&#xff0c;为众多应用提供了高效稳定的解决方案。本文将深入探讨虹科PCAN系列网关内部存储空间&#xff0c;特别是EEPROM和SPI Flash的配置与利用&#xff0c;并解析如何通过C编程…

每日一题——LeetCode1694.重新格式化电话号码

方法一 模拟&#xff1a; 首先去除number里面的破折号和空格&#xff0c;取出纯数字组成的字符串str。 对于str每三个数分成一组&#xff0c;加一个破折号&#xff0c;当str的长度小于等于4时再分情况讨论&#xff0c;如果等于4就分为22形式&#xff0c;如果小于4&#xff0c…

flask之ssti [WesternCTF2018]shrine1

打开题目 整理一下&#xff0c;代码: import flask import osapp flask.Flask(__name__) app.config[FLAG] os.environ.pop(FLAG) app.route(/)def index():return open(__file__).read()app.route(/shrine/)def shrine(shrine):def safe_jinja(s):s s.replace((, ).replac…

基于springboot+vue的乡政府管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

奇数乘积(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 1;int j 3;//循环运算&#xff1b;while (j < 12){//运算&#xff1b;i i * j;//改变数值&#xff1b;j 2…

多线程服务器适用场合

前提 进程”指的是fork(2)系统调用的产物 线程”指的是pthread_create()的产物,因此是宝贵的那种原生线程。而且Pthreads是NPTL的,每个线程由clone(2)产生,对应一个内核的task_struct。 Pthreads是一组线程操作的标准&#xff0c;NPTL是 Native POSIX Thread Library 的缩写&…

成都规模最大的直播基地在哪里

天府锋巢直播产业基地&#xff0c;位于成都这座历史文化与现代气息交织的城市&#xff0c;不仅是成都规模最大的直播产业园&#xff0c;更是西南地区乃至全国范围内具有影响力的直播产业聚集地。在这里&#xff0c;直播产业与科技创新、文化创意、教育培训等多个领域深度融合&a…

工业AMR机器人如何实现规模化的柔性生产

在当下高度复杂的工业生产环境中&#xff0c;机器人如何实现规模化的柔性生产&#xff0c;已成为业界关注的焦点。特别是在追求高效率、高质量的生产过程中&#xff0c;团队协作的重要性愈发凸显。富唯智能一体化AMR控制系统&#xff0c;作为机器人的核心指挥部&#xff0c;犹如…

Android基础开发-读写短信

1、利用ContentObserver监听短信 内容观察器ContentObserver给目标内容注册一个观察器&#xff0c;目标内容的数据一旦发生改变&#xff0c;观察器规定好的动作马上触发&#xff0c;从而执行开发者预定义的代码。 参数原理&#xff1a; notifyForDescendents 通知子孙后代 …

C++ 万物起源:类与对象(一)

目录 一、C与C语言的区别 1.1类的引入 二、C类 2.1类的概念与定义 2.2类的访问限定符与封装 2.2.1C中struct和class的区别 2.3封装 2.4类的作用域与实例化 三、类对象模型 3.1类对象的存储模式 3.2结构体内存对齐规则 一、C与C语言的区别 C语言是面向过程的&#xf…

毕设学习进展周报

文章目录 3.11-3.18 3.11-3.18 1.阅读ACL文献并记录 2.查找相关资料学习在阿里云部署ChatGLM3-6B 参考&#xff1a;https://blog.csdn.net/H66778899/article/details/135630030 # 运行 streamlit run /mnt/workspace/ChatGLM3/conposite_demo/main.py可以得到&#xff1a;…

jscpd对项目进行查重(支持150+类语言)

jscpd jscpd 查重时能够跳过标记为忽略的块和新行以及空符号和注释&#xff08;不支持尖括号注释<!-- --&#xff01;>&#xff09;&#xff0c;重复率判定依据为一定长度标识符的MD5值是否相同。 安装 npm install -g jscpd配置参数(查看更多) OptionTypeDefaultDes…

Windows系统安装GeoServe结合内网穿透实现公网访问本地位置信息服务

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

抖音视频批量下载工具|无水印视频提取软件

抖音视频批量下载工具安装教程 一&#xff1a;双击安装包 二&#xff1a;进入安装主界面 然后点击接收Q:290615413 三&#xff1a;接受后进入安装模式 设置好安装路径 系统默认的是D盘然后点击解压 四&#xff1a;点击解压后安装等待安装 安装成功后桌面会有 抖音视频批量提取工…