如何在特定时间过后在JMeter中进行API调用

问题描述 投票:0回答:1

我在JMeter脚本中遇到以下情况:

  1. 用户获取ACCESS令牌并登录
  2. 50 GET API在系统中。
  3. 50个线程。
  4. 循环设置为FOREVER。
  5. 持续时间设置为10800秒(3小时)
  6. 用户获取令牌的登录方法放在Once Only Controller内,这样每个线程只执行一次Login。
  7. 用户在60分钟内超时并自动注销。
  8. 存在刷新令牌方法,该方法获取新的ACCESS令牌。

我需要使用JMeter使用50个线程执行压力测试并运行3个小时。问题是如果50个线程正在运行,它们将在60分钟后开始超时。

现在,如果我在50 API调用之后放置刷新令牌方法来获取新的ACCESS令牌,那么有一种方法可以在接近60分钟的执行时调用此方法,例如:每次调用后刷新令牌方法55分钟?

time jmeter
1个回答
0
投票

我试着在你的场景中工作。我正在分享 - 了解你的情景后我做了什么。

在下面的屏幕截图中,您可以看到2个线程,它们通过Only Once Controller启动了1个身份验证请求。一段时间后,再次发送认证请求。

enter image description here方法: -

  1. 设置用户定义的变量,如下所示: -

enter image description here 2.然后根据请求使用JSR223后处理器执行以下代码。

def start_Time = vars.get("startTime")
log.info "start_Time>>>>>>>"+start_Time

long currentTime = ${__time(,)}
log.info "currentTime>>>>>>>"+currentTime;

long diff=currentTime.toLong()-start_Time.toLong();
log.info "diff>>>>>>>"+diff

if(diff>=2000){
    start_Time = ${__time(,)};
    vars.put("startTime",start_Time.toString());
}
vars.put("flag",diff.toString());
log.info "FlagValue>>>>>>>"+vars.get("flag")

enter image description here 3.以下是用于身份验证请求的条件。

enter image description here

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.