2016-10-26 81 views
1

使用JMeter支持功能API测试,并且遇到从CSV文件读取数据的问题。JMeter不会从CSV文件读取带引号的CSV列表

"wibbles" : ${wibble-var}, 

${wibble-var}从CSV文件中读取的格式为:从文件中的数据在构建POST数据体包含这样的使用

["wibble1","wibble2","wibble3"] 

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

如果"wibbles" : ["wibble1","wibble2","wibble3"]...被硬编码到POST主体中,那么JMeter会很高兴,建立POST请求并执行业务,但事实证明不可能创建一个甚至是上面的3值示例的CSV文件,JMeter会解析。 JMeter跳过包含'CSV读取'的线程而无需构建POST请求或发送它,所以没有响应来检查,并且同样跳过了一个Debug Sampler。我听说有传言说双引号可以起作用,但一直没能找到正确的语法。任何人都可以对这个问题有所了解吗?由于

回答

1

双引号将工作,如果你能得到"wibble1,wibble2,wibble3" &如果您在CSV data set config

设置Allow quoted datatrue你可以得到这个值,然后使用BeanShell的预处理器转换的格式"wibble1","wibble2","wibble3"

如果你想在这个格式"wibble1","wibble2","wibble3"得到直接,你可以使用\t作为分隔符&修改的CSV数据文件相应。

0

我会去以下选项:

  1. 如果你的“wibbles”都是你需要通过AA 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变量(s)
+0

感谢Dmitri和@Vins的回应。我一定会看看__StringFromFile和__FileToString函数供将来使用。与此同时,我确实设法通过反复试验来解决问题,我将在下面发布 – Geoff

0

试错导致以下解决方案。

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

我修改了参数化POST身体:

“wibbles”:[$ {维布勒-VAR}], - 也就是我感动的方括号出来的CSV文件,以便CSV文件现在只是包含在数组的元素引用:

“值1”,“值2”,“值3”等

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

执行这些更改后脚本正确执行。

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