JMeter won't read list of quoted, CSVs from a CSV file
使用JMeter支持功能性API测试,并且遇到了从CSV文件读取数据的问题。 来自文件的数据用于构建POST数据主体,其中包含以下内容:
1 | "wibbles" : ${wibble-var}, |
从CSV文件读取
1 | ["wibble1","wibble2","wibble3"] |
...列表中有超过1000个摆动值。
如果
如果可以得到
您可以获取此值,然后使用beanshell预处理程序将其转换为格式
如果要直接使用
反复试验导致以下解决方案。
我需要解析的单个数据变量的格式为[" value1"," value2"," value3"](即JSON数组。),这正是CSV文件所包含的内容(当然,标头名称位于第一行),包括[和]括号。
我将参数化的POST正文修改为:
"摆动":[$ {wibble-var}],
-也就是说,我将方括号移出了CSV文件,因此CSV文件现在仅包含数组中带引号的元素:
" value1"," value2"," value3"等
然后,在CSV数据集配置中将定界符设置为|。
并允许引用数据为FALSE。 <---这有点直观,但没有它,JMeter不会将逗号分隔的2000个带引号的字符串的完整列表作为单个变量读取。
完成这些更改后,脚本将正确执行。
再次感谢您的答复,我肯定会看看所提到的__String函数。
我会选择以下选项:
如果您的"摆动"是一个字符串,您需要传递一个JSON数组,那么通过__StringFromFile()或__FileToString()函数访问它们可能会容易得多:
1 | "wibbles" : ${_StringFromFile(/path/to/file/containing/wibbles,,,)}, |
如果您需要访问单个"摆动",并且您的CSV文件基本上是JSON文件:
-
将HTTP Request Sampler添加到您的测试计划中(在发送这些"摆动"的计划之前)并按以下方式进行配置:
-
协议:
file -
路径:
c:/testdata/yourfile.csv
-
协议:
- 添加JSON Path PostProcessor并使用JSON Path查询将"摆动"存储到JMeter变量中