在Jmeter中,如果我使用Rest API并从CSV文件中获取输入,那么HTTP Request Sampler的Body Data部分中的参数语法是什么?

时间:2014-12-24 09:49:58

标签: json rest jmeter performance-testing load-testing

我正在尝试使用REST API在Jmeter中同时创建10个用户。 测试数据,即输入来自CSV文件(用户的详细信息,如用户名,姓氏,移动设备)

为此,我添加了一个线程组,用户定义变量,HTTP标头管理器,HTTP请求采样器(成功登录到Web应用程序),JSON PATH EXTRACTOR(提取auth标记,将在添加用户时使用)

要添加用户,我使用了一个"循环控制器" - " HTTP请求采样器" - HTTP标头管理器,CSV数据集配置。

并跟踪结果,查看结果树和汇总报告。

请告诉我我传入的参数的语法是什么" Body Data" HTTP请求采样器的一部分,以便它可以从csv文件中读取值。

以下是我现在用来添加单个用户的语法。

{
  "phoneNo": "9998885551",
  "lastName": "john25",
  "email": "azp25@gmail.com",
  "firstName": "ricky25",
  "mobileNo": "9820420420"
}

2 个答案:

答案 0 :(得分:45)

如果您的CSV文件如下:

9998885551,john25,azp25@gmail.com,ricky25,9820420420
9998885552,john26,azp26@gmail.com,ricky26,9820420421
....

配置应如下:

  • 文件名:源.csv文件的完整路径
  • 变量名称:phone,lastname,email,firstname,mobile
  • 分隔符:,

根据您的测试场景填充其他值,即您是否希望测试停止在.csv文件结束或重新旋转等等。

CSV Config

您的HTTP请求应如下所示:

Using CSV Variables in HTTP Request

重点是CSV数据集配置中定义的变量需要与HTTP请求中的变量匹配。

有关详细说明,请参阅Using CSV DATA SET CONFIG指南。

我还建议将以下条目添加到HTTP标头管理器:

  • 姓名:Content-Type
  • 价值:application/json

否则,您的请求将被视为纯文本,可能会失败。

另外,请不要忘记禁用View Results Tree侦听器以进行实际的负载测试运行,因为它会消耗大量资源并可能导致JMeter端出现内存不足错误。

答案 1 :(得分:2)

另外,如果你的formparam \ Body数据包含多个这样的参数:

UserName=abc password=abc123,

不是为userName和password创建两列,而是可以在单列中给出,如下所示:

UserName=abc&password=abc123

这样你就可以遍历多个不同的URL,这些URL需要不同数量的bodydata

例如:如果URL1仅使用用户名作为正文数据而URL2采用用户名&密码作为正文数据,上面将是一个简单的解决方案。