Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JMeter-登录所有用户,然后执行其他步骤_Jmeter_Load Testing_Jmeter 3.2 - Fatal编程技术网

JMeter-登录所有用户,然后执行其他步骤

JMeter-登录所有用户,然后执行其他步骤,jmeter,load-testing,jmeter-3.2,Jmeter,Load Testing,Jmeter 3.2,我正在对注册系统进行负载测试。我目前有一个JMeter脚本,它从CSV文件(CSV数据集配置)中提取用户信息,我的线程组有以下步骤: 联系CAS服务器,获取登录票证 登录到CAS 在注册系统中执行任务 注销CAS JMeter作为一个单独的线程运行这些步骤中的每一步,脚本可以正常工作 问题是,与现实生活中用户的行为相比,我们的测试并不十分准确。正如我所提到的,这是一个注册系统,我们的最终用户在实际开始敲打实际系统(注册在午夜打开,闸门打开)前几分钟登录并验证(通过CAS) 在现实生活中,我们的C

我正在对注册系统进行负载测试。我目前有一个JMeter脚本,它从CSV文件(CSV数据集配置)中提取用户信息,我的线程组有以下步骤:

  • 联系CAS服务器,获取登录票证
  • 登录到CAS
  • 在注册系统中执行任务
  • 注销CAS
  • JMeter作为一个单独的线程运行这些步骤中的每一步,脚本可以正常工作

    问题是,与现实生活中用户的行为相比,我们的测试并不十分准确。正如我所提到的,这是一个注册系统,我们的最终用户在实际开始敲打实际系统(注册在午夜打开,闸门打开)前几分钟登录并验证(通过CAS)

    在现实生活中,我们的CAS认证系统从来没有问题,因为我们没有成千上万的用户同时进行认证。当我们使用JMeter进行负载测试时,前两个步骤是通过CAS进行身份验证,这使得CAS成为瓶颈,当我们在10秒内对500个用户进行负载测试时,CAS开始失败。因此,我们的负载测试事务无法访问实际的注册系统,JMeter负载测试也无效

    是否有一种方法可以更新JMeter脚本以首先记录所有用户(循环执行前两个步骤并维护所有用户的CAS会话信息),然后执行其余步骤

    斯特林

    请使用JMeter的“”元素,该元素将等待所有用户登录,然后进入下一步(注册系统)

    您可以在以下结构中创建脚本:

    • HTTP请求联系CAS服务器,获取登录票证
    • 登录到CAS的HTTP请求
    • 同步计时器[将“要分组的模拟用户数”设置为0,并根据您的要求超时[建议设置的值为“300000”,即5分钟]。不要将超时设置为“0”,否则,如果任何用户在上一步中失败,您的测试将永远处于运行状态]
    • 注册系统中执行任务的HTTP请求
    • HTTP请求注销CAS
    当测试完成“登录到CAS的HTTP请求”步骤时,它将等待所有用户在该步骤到达,然后再转到“注册系统中执行任务的HTTP请求”步骤

    如果您需要与其他JMeter元素相关的信息,那么您可以参考以在一个位置获取所有关键信息


    如果您有任何问题,请告诉我。

    你好,拉维,非常感谢您提供此信息。这绝对是我要找的东西!我已经玩过一点了。我有一个跟进问题。似乎这种类型的计时器真正关注的是在负载测试中的特定步骤停止用户/线程,一旦一定数量的用户/线程达到该步骤,那么所有这些线程都将被释放。是否有其他类型的计时器可以根据时间停止所有用户/线程(在特定步骤)。。。我有1000个用户/线程,启动时间为2分钟。我希望我的1000个线程完成步骤1和步骤2,然后所有线程在步骤3停止。是否有一种方法可以设置一个计时器,在负载测试开始后开始计时3分钟?目标是让所有用户登录step1和step2(超过2分钟),然后在第3分钟JMeter立即释放step3的所有线程。这似乎与同步性计时器有点不同(同步性计时器基于达到某一步的线程数释放线程)