如何在JMeter中提取JSON指定键值并导出到XLSX文件供后续使用
JMeter提取JSON指定键并导出XLSX实操步骤
1. 前置依赖准备
- 下载匹配版本的Apache POI组件包,将以下jar文件放入JMeter安装目录的
lib/ext文件夹,重启JMeter后生效:- poi-x.x.x.jar
- poi-ooxml-x.x.x.jar
- poi-ooxml-schemas-x.x.x.jar
- commons-compress-x.x.jar
- xmlbeans-x.x.x.jar
2. 提取目标JSON键
方法1:JSON JMESPath Extractor(适配接口返回JSON场景)
- 在返回目标JSON的请求下添加JSON JMESPath Extractor
- 按以下配置参数:
- Names of created variables: 自定义变量名,示例填
allTopKeys - JMESPath expressions: 填
keys(@),该表达式会直接返回JSON所有顶级键的数组 - Match No.: 填
0(取全部匹配结果)
- Names of created variables: 自定义变量名,示例填
- 如果JSON包含其他无关键,后续逻辑过滤保留
hi、hi2、hi3即可。
方法2:JSR223 PostProcessor(通用场景,支持本地JSON文件读取)
- 添加JSR223 PostProcessor,脚本语言选择
groovy - 参考代码如下:
// 读取本地JSON文件用这行代码,替换为你的文件路径 // def jsonText = new File("D:/test/test.json").text // 读取接口响应JSON用这行代码 def jsonText = prev.getResponseDataAsString() def json = new groovy.json.JsonSlurper().parseText(jsonText) // 提取指定三个键存入列表 def targetKeys = ["hi", "hi2", "hi3"].collect { json.containsKey(it) ? it : "" } // 存入JMeter变量供导出逻辑调用 vars.putObject("targetKeyList", targetKeys)
3. 导出为XLSX文件
新增JSR223 Sampler/PostProcessor,脚本语言选择groovy,参考代码如下:
import org.apache.poi.xssf.usermodel.XSSFWorkbook import java.io.FileOutputStream // 取出之前存储的键列表 def keyList = vars.getObject("targetKeyList") // 创建工作簿和工作表 def workbook = new XSSFWorkbook() def sheet = workbook.createSheet("提取结果") // 写入表头 def headerRow = sheet.createRow(0) headerRow.createCell(0).setCellValue("提取的键名") // 循环写入三个键 keyList.eachWithIndex { key, index -> def dataRow = sheet.createRow(index + 1) dataRow.createCell(0).setCellValue(key) } // 导出到指定路径,替换为你自己的存储路径 def outputPath = "D:/export/提取结果.xlsx" def outputStream = new FileOutputStream(outputPath) workbook.write(outputStream) outputStream.close() workbook.close()
补充说明
- 如果需要同时提取
hi、hi2、hi3对应的内部值,只需修改提取逻辑为json.hi、json.hi2,写入XLSX时新增对应列即可。 - 导出路径如果填相对路径,默认会保存在JMeter的bin目录下。
- JSR223+Groovy的组合执行效率远高于BeanShell,复杂逻辑优先选择该方案。
内容的提问来源于stack exchange,提问作者Kshitija Patil
相关产品推荐
相关产品推荐

