【问题标题】:Jmeter:- How to Send multiple request concurrently/Sequentially in "Jmeter" with different set of values for each request?Jmeter:-如何在“Jmeter”中同时/顺序发送多个请求,每个请求具有不同的值集?
【发布时间】:2018-05-27 12:37:10
【问题描述】:

例如,下面是在数据库中“添加设备”的 JSON 请求数据。例如,我想将 10000 台具有不同 IMEI 号码和不同电话号码的设备添加到服务器进行测试。那么,如何一次发送请求。我准备手动创建 10000 个具有不同值的设备数据。现在只能一个一个发送,但是如何一次发送所有请求呢?

{ "device_name":"34793812453274392", "imei_num":"36xxxxxxxxxxxx5", "phone_num":"8666606451", "device_city":"Chennai", "device_state":"泰米尔纳德邦", }

由于我是 Jmeter 新手,因此需要详细信息。提前致谢。

【问题讨论】:

    标签: rest api jmeter web-api-testing


    【解决方案1】:

    您应该将多个“线程组”添加到“测试计划”中。在“测试计划”内取消选择“连续运行线程组”。

    在每个“线程组”中配置“线程数(用户)”为“1”,“Ramp-Up Period”为“0”,“循环计数”为“1”。

    现在,将“HTTP 请求”添加到每个“线程组”中。每个“HTTP 请求”您都可以添加您的“JSON 文件”并配置“URL”。 按照这个配置所有的“HTTP Request”。

    现在将“查看结果树”作为侦听器添加到“测试计划”中。 现在运行测试计划。

    【讨论】:

      【解决方案2】:

      但是,JMeter 能够使用Thread Groups 模拟多个并发用户。然后,您可以将 CSV Dataset config 与您的 Http 请求采样器结合起来,如 Multiple Login with JMeter 中所述。

      CSV 应包含 IMEI 号码。每个并发线程组将从 CSV 值中选择一个不同的值并将其发送到 HTTP Sampler。

      请记住,线程组内的 Http 请求只能按顺序播放。

      【讨论】:

        【解决方案3】:
        1. 您可以使用__Random() function 生成不同的phone_num 和imei_num 值,例如:

          {
              "device_name": "34793812453274392",
              "imei_num": "${__Random(111111111111111,999999999999999,)}",
              "phone_num": "${__Random(8666606451,9999999999,)}",
              "device_city": "Chennai",
              "device_state": "Tamil Nadu",
          
          }
          
        2. 为了配置 JMeter 在同一时刻发送所有 10 000 个请求:

          • 将Thread Group配置为拥有不少于10000个线程(虚拟用户)
          • 将Synchronizing Timer 添加为将设备添加到数据库的请求的子项,并将Number of Simultaneous Users to Group by 设置为10000

        请注意,10 000 是相当多的虚拟用户,因此请确保您在脚本中关注 JMeter Best Practices。

        【讨论】:

          【解决方案4】:
          1. 首先在你的plan下创建一个线程池,添加Sampler -> HTTP Request(右键TestPlan创建线程组,再次右键线程组创建sampler)
          2. 使用您的 post 方法数据和 API 配置您的 HTTP 请求。
          3. 使用不同的数据重复第 1 步和第 2 步
          4. 最后为您的计划创建一个监听器并运行

          注意:取消选择连续运行线程组(即一次一个)。下面是整体架构的屏幕截图:每个线程组都有一个具有不同主体的 post 方法

          还有一种不同的方式可以通过 CSV 文件传递​​您的输入。你可以在这里查看: https://www.blazemeter.com/blog/jmeter-parameterization-the-complete-guide

          【讨论】:

            猜你喜欢
            • 2018-05-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-06-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多