Concurrency 如何在Jmeter中生成并发用户负载

Concurrency 如何在Jmeter中生成并发用户负载,concurrency,jmeter,load-testing,Concurrency,Jmeter,Load Testing,我有一个测试,用户将登录并在搜索字段中输入搜索关键字,然后将得到结果。终于注销了 现在我想使用Jmeter测试并发性。这就是我想到的 Test plan Thread group + Login request + Synchronizing Controller + Search string + Synchronizing Controller + Logout 我增加了10个线程。我在同步控制器中添加了5个。那么,当我运行测试时,我将获得5个用户的并发

我有一个测试,用户将登录并在搜索字段中输入搜索关键字,然后将得到结果。终于注销了

现在我想使用Jmeter测试并发性。这就是我想到的

Test plan
  Thread group
  + Login request
    + Synchronizing Controller
  + Search string 
    + Synchronizing Controller
  + Logout 
我增加了10个线程。我在同步控制器中添加了5个。那么,当我运行测试时,我将获得5个用户的并发性?其余5个用户将同时使用

此外,我还依赖于登录页面加载时的请求。因此,为了实现登录时的并发性,我在事务控制器中添加了所有请求,并将同步控制器作为子级添加到事务控制器中。请让我知道我是否做对了


另外,请告诉我是否有其他方法可以实现特定操作的并发性(例如:5个用户同时点击登录按钮)。

首先,您应该尝试区分“并发”和“同时”。它们通常是非常相似的术语,但在负载测试中它们有不同的含义。同时表示同时有两个或多个请求。并发是两个或多个并行运行的线程(脚本)

所以,您所说的是尝试配置JMeter以模拟多个同时请求。但实际上,有一个比这更好的方法。您应该将测试设置为您希望应用程序支持的负载类型的真实表示,而不是集中精力在同一时间尝试命中相同的请求(这在JMeter中非常复杂)。如果您做得很好,使用随机等待时间、吞吐量控制器和实际数量的线程,那么您将自动测试并发性,同时运行真正的、有效的和有用的性能测试

因此,基本上,放弃同步计时器,改用恒定吞吐量计时器,配置等待时间,然后计算正确的线程数以生成所需的负载


这种方法的额外好处是,你不太可能提出错误的否定。例如,如果您同时向服务器发送5个登录请求,那么您可能会发现此调用是单线程的,响应时间会增加。但也许这并不重要,也许同时进行两次登录调用的可能性太小,不值得花时间更改代码。在负载测试中,这是一个非常非常重要的概念—也许是最重要的—您必须有现实的目标,如果没有这些目标,您可能会运行测试,发现错误,通常会永远浪费时间。

感谢您的精彩解释。但我的情况却没有什么不同。我只想看看当5个用户同时点击登录和搜索按钮时,我的服务器如何响应。这就是我使用同步控制器的原因。当我用synchronization controller运行我的测试时,我得到的结果几乎没有什么不同。我提到了线程组中的10个线程和同步中的5个线程。所以我认为它将作为5个并发用户和5个并发用户运行。但这不是它的运行方式。测试分两批发送登录和搜索请求。每个批包含5个用户。同样,您需要了解并发和并发之间的区别。他们是不同的。一个同步计时器会给你同时性,多个线程会给你并发性。谢谢你的建议!我得到了解决方案。非常有用@奥利弗洛伊德,你能帮我解决这个问题吗?求你了,我真的需要帮助