Timer 利用基于时间的任务构建思维延迟?

Timer 利用基于时间的任务构建思维延迟?,timer,jmeter,delay,timertask,Timer,Jmeter,Delay,Timertask,我有一个计价器工作,我需要在某些HTTP请求之间建立一些思考时间。但在思考的过程中,我仍然需要在特定的时间间隔内发送一个保持活动的请求 例如: 用户登录 获取一些个人资料信息 然后他开始做一些工作 每个工作单元都会被一些随机延迟延迟,延迟时间从1分钟到30分钟不等。 在此期间,我们仍然需要以固定的间隔(如5分钟)向服务器发送ImAlive请求。 一旦思考时间到期(例如17m12秒),则循环退出。为了模拟您可以使用的延迟,您将在给定的秒数内执行保持活动请求,请在运行时控制器内部添加计时器,以便

我有一个计价器工作,我需要在某些HTTP请求之间建立一些思考时间。但在思考的过程中,我仍然需要在特定的时间间隔内发送一个保持活动的请求

例如:

  • 用户登录
  • 获取一些个人资料信息
  • 然后他开始做一些工作
每个工作单元都会被一些随机延迟延迟,延迟时间从1分钟到30分钟不等。 在此期间,我们仍然需要以固定的间隔(如5分钟)向服务器发送ImAlive请求。
一旦思考时间到期(例如17m12秒),则循环退出。

为了模拟您可以使用的延迟,您将在给定的秒数内执行保持活动请求,请在运行时控制器内部添加计时器,以便在保持活动请求之间添加延迟。

您可以使用以下条件:

${__groovy(${__time(,)} - ${TESTSTART.MS} < 1032000,)} 
${{uuuu groovy(${uuuu time(,)}-${TESTSTART.MS}<1032000,)}
其中:

  • -返回自启动后的当前时间(以毫秒为单位)
  • -测试开始时间有效的预定义JMeter属性
  • -允许执行任意代码
  • 1032000
    -以毫秒表示的
    17m12s
    -
    (17*60+12)*1000

因此,While控制器的子级将在测试开始后执行17分12秒。如果需要,您可以添加另一个条件,以防您希望提前退出循环。有关更多详细信息,请参阅指南

这让我离我想要实现的目标更近了。我想。所以当我进入“随机思考时间”while循环时。然后我创建了一个以分钟为单位的随机思考时间的“运行时控制器”,然后我创建了一个5分钟的高斯随机时间(保持活动的间隔),我把我的HTTPRequest,也就是我的keep-alive数据包放到服务器上,对吗?本质上是说,我指的是单控制器,而不是while循环。另外,如果高斯随机定时器大于运行时控制器的剩余时间,如何使它跳过高斯随机定时器?例如,运行时COnController设置为2分钟,但心跳为5分钟,因此我仍然想等待2分钟,但不需要心跳,而只需退出运行时控制器。我认为您需要添加代码,添加JSR223逻辑控制器对控制器逻辑进行编码有一个增强功能-您可以对其进行投票我投票了!同时,您如何建议我尝试了不同的方法,但我在jmeter脚本编写方面还是相当新手。谢谢,但我认为这对我的案例不起作用,但我真的很感激。我仍然从你的答案中学到了新东西,并将立即加以利用;)是否${TESTSTART.MS}是整个测试的测试,还是每个线程的测试可能会根据每个线程的启动时间而有所不同?我想要的是线程启动后的时间(如果可用)。
${TESTSTART.MS}
是测试启动的时间。如果要获得单个线程的启动时间,可以在Groovy中以
ctx.getThread().getStartTime()的形式完成
其中
ctx
是一个缩写。请查看文章,了解JMeter测试中Groovy脚本的基本信息