You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JSR223/BeanShell Sampler在JMeter中创建工作簿?报错求助

问题解决:JMeter创建XLSX工作簿报错NoClassDefFoundError

问题根源

你遇到的NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook错误,是因为tika-app.jar并非用于创建Excel工作簿的工具,它没有完整包含Apache POI的XSSF核心类,无法支持XLSX文件的创建与写入操作。

解决方案

1. 替换依赖包

移除tika-app.jar,下载Apache POI的完整依赖包(版本建议统一,比如5.2.3),将以下jar包放入JMeter的lib/ext目录,随后重启JMeter:

  • poi-xssf-5.2.3.jar
  • poi-5.2.3.jar
  • commons-codec-1.15.jar
  • commons-collections4-4.4.jar
  • commons-math3-3.6.1.jar
  • poi-ooxml-5.2.3.jar
  • poi-ooxml-schemas-4.1.2.jar
  • xmlbeans-5.1.1.jar
  • curvesapi-1.06.jar

2. 修改JSR223 Sampler代码

使用Groovy语言编写正确的XLSX创建与写入逻辑,示例代码如下:

import org.apache.poi.xssf.usermodel.XSSFWorkbook
import org.apache.poi.ss.usermodel.Sheet
import org.apache.poi.ss.usermodel.Row
import org.apache.poi.ss.usermodel.Cell
import java.io.FileOutputStream

// 初始化工作簿和工作表
def workbook = new XSSFWorkbook()
def sheet = workbook.createSheet("测试数据")

// 第一行第一列写入测试内容
Row row = sheet.createRow(0)
Cell cell = row.createCell(0)
cell.setCellValue("JMeter生成的测试数据")

// 写入本地文件,注意修改为有写入权限的路径
FileOutputStream outputStream = new FileOutputStream("D:/jmeter_output.xlsx")
workbook.write(outputStream)

// 关闭资源
outputStream.close()
workbook.close()

3. 关键注意事项

  • 确保文件路径有写入权限,避免因权限不足导致写入失败
  • JSR223 Sampler的语言选择Groovy,相比其他语言性能更优且语法更简洁

内容的提问来源于stack exchange,提问作者Vaibhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:50:29