jmeter负载测试中2个连贯请求之间的定时器行为

时间:2018-02-05 10:42:26

标签: multithreading load-testing

我有一个带有2个http采样器的线程组(注册和提交按钮)。 我有一个场景,如用户必须转到注册页面并填写表格中的数据,然后单击提交按钮。 我使用http代理服务器记录了相同的脚本,并使用常量计时器(5秒)等待时间。 当我尝试使用单个用户时,sceanario工作正常,即用户注册等待5秒,然后单击提交。 但是当我尝试对10个用户进行负载测试时,请求没有按顺序执行,即一些注册正在执行,然后根据viewresultstree监听器的观察结果提交请求执行等。

如何为多用户执行此方案?

1 个答案:

答案 0 :(得分:0)

这是预期的行为,因为JMeter线程(虚拟用户)完全相互独立。

JMeter的行为如下:

  1. 启动在加速期限<{3}}内定义的线程
  2. 主题开始执行Thread Group颠倒(或根据Samplers
  3. 当没有更多的采样器要执行和/或循环迭代时 - 线程正在关闭。
  4. 所以每个线程将首先执行注册然后提交。根据您的加速周期值,当某些用户执行“注册”并且某些用户正在执行“提交”会导致结果混乱时,您可能会遇到这种情况。

    您可以执行以下操作之一:

    1. Logic Controllers函数添加到您的采样器名称中。至少你不会对订单感到困惑

      __threadNum()

    2. 玩你的加速期,这样只有2个最大在线用户
    3. JMeter execution order添加到您的请求中。这样,所有10个用户将同时执行计时器范围内的所有请求。