【问题标题】:Excel handling in jmeter to add multiple dynamic rowsjmeter中的Excel处理以添加多个动态行
【发布时间】:2021-06-05 19:31:38
【问题描述】:

我需要为 jmeter 中的上传场景创建一个 excel 文件。 excel 有 3 列,行数是来自参数文件的动态值。 不同excel的行值不能有相同的数据。所以我使用随机字符串来创建数据。通过对行数进行硬编码,我可以使用 apache poi 创建具有以下代码的文件,但面临处理动态行数的问题。有人可以提供解决方案吗?

下面是创建 5 行的代码。

def path = FileServer.getFileServer().getBaseDir;
def separator = File.separator;
def sourceFileName = "CreateDynamicExcel";

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet("Billing");

Object[] dataTypes = [
["Column1Header","Column2Header","Column3Header"],
["${__RandomString(10,abcdefghij,)}","${__Random(100000000,199999999,)}","${__RandomString(10,abcdefghijklmnopqrst,)}"],
["${__RandomString(10,abcdefghij,)}","${__Random(100000000,199999999,)}","${__RandomString(10,abcdefghijklmnopqrst,)}"],
["${__RandomString(10,abcdefghij,)}","${__Random(100000000,199999999,)}","${__RandomString(10,abcdefghijklmnopqrst,)}"],
["${__RandomString(10,abcdefghij,)}","${__Random(100000000,199999999,)}","${__RandomString(10,abcdefghijklmnopqrst,)}"]];


int rowNum = 0;

for (Object[] datatype:datatypes)

HSSFRow = sheet.createRow(rowNum++);
int colNum = 0;
for(Object filed:datatype){
HSSFCell cell = row.createCell(colNumn+=);
if(filed.instanceof(String){
cell.setCellValue((String) filed);
}
if(filed.instanceof(Integer){
cell.setCellValue((Integer) filed);
}
}

try{

FileOutputStream out = new FileOutputStream(new File(path+separator+sourceFileName+".xls"));
workbook.write(out);
out.close();
}
catch(FileNotFoundException e){
e.printStacktrace();
}

【问题讨论】:

  • @dmitri 你能建议一下吗

标签: excel dynamic jmeter apache-poi


【解决方案1】:

我认为您不应该在 Groovy 脚本中内联 JMeter Functions or Variables,因为:

  1. 它与 Groovy 冲突 GString Template Engine syntax
  2. Only first occurrence will be cached and used for subsequent iterations

因此,您可以改用以下表达式:

  • org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric(10)
  • org.apache.commons.lang3.RandomUtils.nextInt(100000000, 199999999)

如果有任何问题 - 看看jmeter.log file,如果有任何问题,你应该找到根本原因或至少在那里找到线索

【讨论】:

  • 如果我复制粘贴随机字符串函数所需的次数,代码工作正常。我想要实现的不是复制粘贴,而是我想使用循环来动态创建行数的数据,因为行的预期上传大小约为随机数 1K。我是 groovy 新手,无法提出解决方案。
猜你喜欢
  • 2017-06-07
  • 2023-03-30
  • 2014-05-04
  • 1970-01-01
  • 2016-02-18
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多