【问题标题】:In Jmeter, What would be syntax of parameters in Body Data section of HTTP Request Sampler, if I am using Rest APIs and taking input from CSV files?在 Jmeter 中,如果我使用 Rest API 并从 CSV 文件中获取输入,HTTP Request Sampler 的 Body Data 部分中的参数语法是什么?
【发布时间】:2015-02-22 10:52:01
【问题描述】:

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

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

为此我添加了一个线程组,用户定义变量,HTTP Header Manager,HTTP Request Sampler(执行成功登录到 Web 应用程序),JSON PATH EXTRACTOR(提取身份验证令牌,将在添加用户时使用)

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    如果您的 CSV 文件如下所示:

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

    配置应如下:

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

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

    您的 HTTP 请求应如下所示:

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

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

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

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

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

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

    【讨论】:

    • 我得到的是相同的字符串而不是 csv 文件值,例如 ${phone} 的请求正文与 ${phone} 相同,如果文件中存在相应的值。 @Dmitri T
    【解决方案2】:

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

    UserName=abc password=abc123,

    不用为用户名和密码创建两列,而是可以像这样在单列中给出:

    UserName=abc&password=abc123

    通过这种方式,您可以遍历多个不同的 URL,这些 URL 采用不同数量的 bodydata

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多