在Jmeter中,如果我正在使用Rest API并从CSV文件中获取输入,在HTTP请求采样器的正文数据部分中的参数语法是什么?

26

我正在尝试使用REST API在Jmeter中同时创建10个用户。

测试数据即输入来自CSV文件(例如用户名、姓氏、手机号等用户详细信息)。

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

为了添加用户,我使用了“循环控制器”、“HTTP请求采样器”、“HTTP头管理器”和“CSV数据集配置”。

而要跟踪结果,可以使用“查看结果树”和“聚合报告”。

请告诉我,在HTTP请求采样器的“Body Data”部分中传递参数的语法是什么,以便它可以从CSV文件中读取值。

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

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

67

如果您的 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 请求中的变量匹配。

有关详细说明,请参阅使用 CSV 数据集配置指南。

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

  • 名称:Content-Type
  • 值:application/json

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

另外,在实际负载测试运行期间,请不要忘记禁用“查看结果树”侦听器,因为它会消耗大量资源,可能导致 JMeter 发生内存不足错误。


我得到的是相同的字符串,而不是CSV文件中的值,例如${phone}在请求体中与${phone}相同,而不是文件中对应的值。@Dmitri T - vgnsh

3
此外,如果您的表单参数\ Body数据包含多个参数,如下所示: UserName=abc password=abc123, 不必为userName和password创建两列,可以将它们放在单个列中,如下所示: UserName=abc&password=abc123 这样,您就可以循环遍历多个\不同的URL,这些URL需要不同数量的bodydata。
例如:如果URL1只需要用户名作为body data,而URL2需要用户名和密码作为body data,则上述方法将是一个简单的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接