JMeter不会从CSV文件中读取引用的CSV列表

时间:2016-10-26 20:42:41

标签: jmeter

使用JMeter支持功能API测试,并遇到从CSV文件读取数据的问题。该文件中的数据用于构建POST数据主体,其中包含以下内容:

EntityFramework

"wibbles" : ${wibble-var}, 从CSV文件中读取,格式为:

${wibble-var}

...列表中有超过1000个wibble值。

如果["wibble1","wibble2","wibble3"] 被硬编码到POST正文中,那么JMeter很高兴,构建POST请求并开展业务,但事实证明,即使是上面的3值示例也无法创建CSV文件, JMeter将解析。 JMeter跳过包含'CSV read'的线程而不构建POST请求或发送它,因此没有检查响应,并且类似地跳过Debug Sampler。我听说有传言说加倍引用可以起作用,但却找不到合适的语法。任何人都可以对这个问题有所了解吗?感谢

3 个答案:

答案 0 :(得分:1)

如果你能得到"wibble1,wibble2,wibble3"&如果您在Allow quoted data

中将true设置为CSV data set config

您可以获取此值,然后使用beanshell预处理器转换为"wibble1","wibble2","wibble3"格式。

如果您想直接使用此格式"wibble1","wibble2","wibble3",可以使用\t作为分隔符&相应地修改CSV文件中的数据。

答案 1 :(得分:0)

我会选择以下选项:

  1. 如果你的" wibbles"是一个字符串,您需要传递一个JSON Array,通过__StringFromFile() or __FileToString() functions访问它们可能要容易得多:

    "wibbles" : ${_StringFromFile(/path/to/file/containing/wibbles,,,)},
    
  2. 如果您需要访问个人" wibbles"并且您的CSV文件基本上是一个JSON文件:

    • HTTP Request采样器添加到您的测试计划中(在发送这些" wibbles"之前)并按如下方式对其进行配置:

      • 协议:file
      • 路径:c:/testdata/yourfile.csv
    • 添加JSON Path PostProcessor并使用JSON Path查询来存储" wibbles"进入JMeter变量

答案 2 :(得分:0)

试验和错误导致以下解决方案。

我需要解析的单个数据变量的格式是[“value1”,“value2”,“value3”](即一个JSON数组。),这正是CSV文件所包含的(标题名称为当然是第一行),包括[和]括号。

我将参数化的POST主体修改为:

“wibbles”:[$ {wibble-var}], - 也就是说,我将方括号移出CSV文件,以便CSV文件现在只包含数组的引用元素:

“value1”,“value2”,“value3”等

然后我将CSV数据集配置中的分隔符设置为| 并允许引用数据为假。 < ---这有点反直觉但没有它JMeter不会将整个逗号分隔的2000个引用字符串列表作为单个变量读取。

通过这些更改,脚本可以正确执行。

再次感谢您的回复,我一定会看看提到的__String函数。