首页 > 解决方案 > JMeter - 将文件转换为字符串到数组

问题描述

我需要执行以下操作:

  1. 将 .csv 文件读入变量。Csv 文件只有一行,其中包含类似 (110,111,112,113,114) 的字符串
  2. 使用此 String 变量,根据逗号“,”拆分内容。

我做了什么:

  1. 我添加了一个线程组

2a. 添加了用户定义的变量“配置元素”。

2b。添加了一个名为“issueIds”的变量,其值为 ${__FileToString(D:\TestCasesId.csv,,issueIds)}

3a。现在我添加了一个带有以下代码的 JSR223 采样器:

String lineItems1 = ${issueIds};
log.info(lineItems1);

3b。执行此操作会出现以下错误:

Response code:500
Response message:javax.script.ScriptException: In file: inline evaluation of: ``String lineItems1 = 114660,114661,114662,114663; log.info(lineItems1); ;'' Encountered "114661" at line 1, column 28.
 in inline evaluation of: ``String lineItems1 = 114660,114661,114662,114663; log.info(lineItems1); ;'' at line number 1

4a。使用以下脚本添加了 BeanShell 采样器:

String lineItems2 = ${issueIds};
String[] lineItems2Arr = lineItems2.split(",");
log.info(lineItems2);
log.info(lineItems2Arr[0]);

4b。执行此操作会出现以下错误:

Response code:500
Response message:org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval   In file: inline evaluation of: ``String lineItems2 = 114660,114661,114662,114663; String[] lineItems2Arr = lineIt . . . '' Encountered "114661" at line 1, column 28.

我究竟做错了什么?

标签: arraysstringcsvjmeter

解决方案


如果所有使用的 csv 文件的逗号分隔字段数量相同,您可以考虑使用“CSV 数据集配置”而不是手动拆分。在这种情况下,您将为 csv 中的每一列提供一个单独的变量,例如

id1,id2,id3,id4,id5
110,111,112,113,114

推荐阅读