尝试在Jmeter上使用XSSF时出错

时间:2016-11-08 08:26:20

标签: jmeter apache-poi beanshell xssf hssf

尝试使用Jmeter创建 xlsx 文件时出错。实际上我已经尝试使用 HSSF (对于.xls)并且它运行正常。但是当我尝试使用 xlsx 更改它时,我收到错误。我已经在jmeter lib 文件中复制了 poi poi-ooxml 的jar文件。这是我的简单脚本:

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
import java.lang.String;
import java.lang.Object;

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sample sheet");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("HENCIN");

try {
    FileOutputStream out = new FileOutputStream(new File("D:\\Jmeter\\testhencin.xlsx"));
    workbook.write(out);
    out.close();
    System.out.println("Excel written successfully..");
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

实际上当我试图找到错误时,问题就出在这一行:

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sample sheet");

请有人帮我弄清楚。它适用于 HSSF ,但在 XSSF 上无效。我收到错误:响应代码:500

Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  org/apache/xmlbeans/XmlObject

1 个答案:

答案 0 :(得分:1)

我建议:

  1. 捕获所有可能的异常并将stacktrace打印到jmeter.log文件
  2. 重新抛出异常以确保您不会得到假阳性采样结果,例如:

    } catch (Throwable e) {
        e.printStackTrace();
        log.info("Error in Beanshell", e);
        throw e;
    } 
    
  3. 关于您的问题,很可能是因为XMLBeans中缺少JMeter classpath jar。我建议如下:

    • 获取最新JMeter版本的“干净”安装
    • 下载最新版本的tika-app.jar并将其放到JMeter的“lib”文件夹
    • 重新启动JMeter以选择罐子

    使用Tika,您将获得捆绑的所有必需库,此外,JMeter将在View Results Tree侦听器中显示二进制文件的内容。有关详细信息,请参阅How to Extract Data From Files With JMeter文章。