使用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。我听说有传言说加倍引用可以起作用,但却找不到合适的语法。任何人都可以对这个问题有所了解吗?感谢
答案 0 :(得分:1)
如果你能得到"wibble1,wibble2,wibble3"
&如果您在Allow quoted data
true
设置为CSV data set config
您可以获取此值,然后使用beanshell预处理器转换为"wibble1","wibble2","wibble3"
格式。
如果您想直接使用此格式"wibble1","wibble2","wibble3"
,可以使用\t
作为分隔符&相应地修改CSV文件中的数据。
答案 1 :(得分:0)
我会选择以下选项:
如果你的" wibbles"是一个字符串,您需要传递一个JSON Array,通过__StringFromFile() or __FileToString() functions访问它们可能要容易得多:
"wibbles" : ${_StringFromFile(/path/to/file/containing/wibbles,,,)},
如果您需要访问个人" wibbles"并且您的CSV文件基本上是一个JSON文件:
将HTTP Request采样器添加到您的测试计划中(在发送这些" wibbles"之前)并按如下方式对其进行配置:
file
c:/testdata/yourfile.csv
答案 2 :(得分:0)
试验和错误导致以下解决方案。
我需要解析的单个数据变量的格式是[“value1”,“value2”,“value3”](即一个JSON数组。),这正是CSV文件所包含的(标题名称为当然是第一行),包括[和]括号。
我将参数化的POST主体修改为:
“wibbles”:[$ {wibble-var}], - 也就是说,我将方括号移出CSV文件,以便CSV文件现在只包含数组的引用元素:
“value1”,“value2”,“value3”等
然后我将CSV数据集配置中的分隔符设置为| 并允许引用数据为假。 < ---这有点反直觉但没有它JMeter不会将整个逗号分隔的2000个引用字符串列表作为单个变量读取。
通过这些更改,脚本可以正确执行。
再次感谢您的回复,我一定会看看提到的__String函数。