如何通过在JMeter中从CSV读取值来执行HTTP PUT请求?

问题描述

如何在JMeter中为HTTP PUT方法设置HTTP请求采样器,以便它可以使用CSV数据集配置从CSV文件读取数据? 在我的方案中,我使用具有以下参数的并发线程组

  • 目标并发:50
  • 加速时间时间):10
  • 升级步骤计数:5
  • 保持目标。.():10

这是我的 CSV数据集配置设置:

enter image description here

(Java)变量名称的类型是: bookId:标题字符串,价格: double ,金额: int ,作者:设置,类别: Set ,已删除布尔值

这是我的 HTTP请求采样器设置:

enter image description here

...这是我的 bookCollection10Items.csv 文件内容,其中引用的值是字符串,而尖括号中的 [] 是数组 值(当我更新与类别/作者具有多对多关系的书时):

1,“哈利·波特与魔法石”,39.99,2500,[4],7,11,假
2,“东方快车谋杀案”,[19.98,500500],1,9,false
3,“ Roger Ackroyd的谋杀案”,19.99,1500,1,[7,9],false
4,“哈利·波特与密室”,24.99,4,[7,9],真实
5,“哈利·波特与阿兹卡班的囚徒”,17.99,1200,4,7,false
6,“达芬奇密码”,29.99,700,8,10,false
7,“ Inferno”,22.50,950,10,false
11,“战争与和平”,31.99,300,5,8,false
14,“审判”,27.99,450,6,9,false
15,“ IT”,16.50,2,5,true

我要实现的是每个线程(即用户以循环方式从“ bookCollection10Items.csv”文件中选择一个项并对其进行更新使用“所有线程”作为共享模式选项的给定bookId。
任何建议/建议都将不胜感激。

解决方法

JMeter的内置CSV数据集配置从顺序读取CSV文件中的行,以便每个用户在每次迭代时都可以得到下一行。

如果您需要读取随机行(但是我认为这不是一个好主意,因为我认为测试必须为repeatable),则需要使用一些插件,例如:

  1. Random CSV Data Set Config
  2. HTTP Simple Table Server

两者都可以使用JMeter Plugins Manager

安装 ,

我设法找到了解决问题的方法->我通过以下方式犯了一个错误:

1),而不是使用LibreOffice Calc在单元格中完成工作,而是在 gEdit (Linux相当于Windows Notepad)中创建CSV文件。因此,这种方式(在 gEdit LibreOffice Calc 中):

3,“罗杰·阿克罗伊德谋杀案”,19.99,1500,1,[7,9],假

...不可以。

2)从列表中删除尖括号 [] ,以便数组不包含数组。例如。如果有尖括号,我会得到:

{
   // some other fields
   "authors" : [[7,9]]
}

3)必须正确设置小数点后的数字格式,以包含,而不是逗号(区域设置问题)。例如。正确的格式是19.99,错误的格式是19,99