Jmeter: - 如何在" Jmeter"中同时/顺序发送多个请求每个请求使用不同的值集?

时间:2017-12-13 14:59:58

标签: rest api jmeter web-api-testing

例如,下面是JSON请求数据到"添加设备"在DB中。例如,我想将具有不同IMEI号和不同电话号码的10000个设备添加到服务器以进行测试。那么,如何立即发送请求。我已准备好手动创建具有不同值的10000个设备数据。现在我只能逐个发送。但是如何立即发送所有请求?

{" device_name":" 34793812453274392"," imei_num":" 36xxxxxxxxxxxx5"," phone_num":& #34; 8666606451"," device_city":" Chennai"," device_state":" Tamil Nadu",}

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

4 个答案:

答案 0 :(得分:1)

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

在每个“线程组”中,将“线程数(用户)”配置为“ 1”,将“启动周期”配置为“ 0”,将“循环计数”配置为“ 1”。

现在,将“ HTTP请求”添加到每个“线程组”中。您可以在每个“ HTTP请求”中添加“ JSON文件”并配置“ URL”。 根据此配置所有“ HTTP请求”。

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

  1. 您可以使用__Random() function生成不同的phone_numimei_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配置为具有不少于10 000个线程(虚拟用户)
    • 添加Synchronizing Timer作为请求的子项,将设备添加到数据库并将Number of Simultaneous Users to Group by设置为10000
  3. 请注意,10 000个虚拟用户数量非常多,因此请确保您在脚本中关注JMeter Best Practices

答案 3 :(得分:0)

  1. 首先在你的计划下创建一个线程池并添加Sampler -> HTTP Request(右键单击TestPlan并创建一个线程组。再次右键单击线程组以创建采样器)
  2. 使用您的发布方法数据和 API 配置您的 HTTP 请求。
  3. 使用不同的数据重复第 1 步和第 2 步
  4. 最后为您的计划创建一个监听器并运行

注意:取消选择Run Thread Groups Consecutively(即一次一个)。下面是整体架构的截图:每个线程组有一个具有不同主体的post方法

Here is a screenshot for overall architecture: Each thread group have one post method with a different body

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