结构图

背景:
需要写一个JMeter脚本配合jenkins来进行自动化测试,主要是通过调用接口,要对响应的数据进行处理,包括不限于错误信息的输出。
1.SSE(摘录)
SSE(Server-Sent Events)是一种基于HTTP协议、允许服务器主动向客户端推送实时更新的技术。它特别适用于单向数据流的实时场景,例如消息通知、AI对话流式响应等,通过保持长连接实现持续数据传输。
2.实现思路(只处理简单json格式)
2.1 用户自定义变量组件
主要是用来统一更换和维护环境变量的,比如线上、线下环境host的切换
2.2 HTTP信息头管理
设置https请求的信息头,比如token,数据格式等等

2.3 CSV 数据文件设置
参数如下图设置

变量名称:appId,query,appName,needFiles,file
对应vars中的变量,变量值是根据分隔带JMeter自动处理的,变量名称 数量和分隔后的变量值 数量不对应也没影响,两者缺少的值会忽略或者设置为空值
2.4 HTTP请求组件
需要设置消息体数据,请求url等

下面三个插件,归类到HTTP请求的子目录下:如图

2.4.1 JSR223 预处理程序
主要来处理一下请求中消息体数据中的一个参数,fileParam
根据csv文件中的标记来确定fileParam的具体值,如下代码
import org.json.JSONObject;
import org.json.JSONArray;
import java.util.ArrayList;
//判断是否需要 files 参数
private Boolean needFiles(String str) {
if("1".equals(str)) {
return true;
}else {
return false;
}
}
//设置 files 参数
private void setFiles(String fileParams) {
try{
//将fileParams转为json格式
JSONObject jsonResponse = new JSONObject(fileParams);
// 提取各个参数
String filename = jsonResponse.optString("xxx", "");
String fileHash = jsonResponse.optString("xxx", "");
Integer filesize = jsonResponse.optInt("xxx", 0); // Integer类型
String extension = jsonResponse.optString("xxx", "");
String mimeType = jsonResponse.optString("xxx", "");
// 创建 JSON 对象数组(List<Map> 格式)
JSONArray fileParamsArray = new JSONArray();
JSONObject fileObj = new JSONObject();
fileObj.put("xxx", xxx);
fileObj


1343

被折叠的 条评论
为什么被折叠?



