如何使用JMeter Flexible file writer将请求体保存到CSV单个单元格
JMeter Flexible File Writer 保存JSON请求体到CSV单个单元格解决方案
JSON请求体出现多行拆分的核心原因是JSON中包含的换行符、逗号、双引号属于CSV默认的分隔/转义控制字符,会被CSV解析器识别为列分割或行结束标记,触发内容拆分,按以下步骤操作即可解决:
1. 预处理请求体,转义特殊字符
在对应请求取样器后添加JSR223 PostProcessor,写入以下代码处理请求体的特殊字符:
// 按需调整原始请求体的获取方式 // 若请求体为Body Data格式,用下行获取 def rawBody = sampler.getArguments().getArgument(0).getValue() // 若请求体为表单格式,替换为 def rawBody = sampler.getQueryString() // 移除所有换行符,将JSON内部的双引号转义为CSV规则要求的双写双引号 def processedBody = rawBody.replaceAll("\\r|\\n", "").replace("\"", "\"\"") // 处理后的内容存入变量,供Flexible File Writer调用 vars.put("processed_request_body", processedBody)
2. 配置Flexible File Writer输出规则
打开Flexible File Writer配置界面,在Record each sample as输入框中,将处理后的请求体变量整体用双引号包裹,示例配置参考:
%d{yyyy-MM-dd HH:mm:ss},%{samplerName},%{responseCode},"${processed_request_body}"%n
双引号包裹的内容会被CSV解析器识别为单个单元格的完整内容,不受内部逗号的影响。
3. 可选:调整CSV打开规则
如果使用Excel打开CSV仍然出现拆分,不要直接双击打开文件,通过Excel「数据」选项卡的「自文本/CSV」功能导入,导入时指定文本限定符为双引号,分隔符为你配置的字段分隔符(一般为逗号),即可正常显示完整JSON内容。
注意事项
- 若JSON内本身包含双引号,必须转义为连续两个双引号,否则会破坏CSV的边界识别
- 必须移除JSON内的所有换行符,否则会被识别为行结束标记触发拆分
内容的提问来源于stack exchange,提问作者Lucky
相关产品推荐
相关产品推荐

