加特林(性能测试):如何每x分钟在后台执行一次任务

2023-12-28

我想知道如何使用加特林每 x 分钟在后台执行一项任务。

背景: 我想在我们的后端写几个场景。在这种情况下,我们的后端将被另一个后端调用。一个常见的场景:

  • 客户端(后端)到服务器身份验证(可选)
  • 客户请求 X
  • 客户请求 Y
  • 客户请求Z

我想要一个执行请求“X、Y 和 Z”的场景。

问题:后端(客户端)到后端(服务器)的身份验证是使用 accessToken 执行的。此 accessToken 在整个模拟中会过期几次,但我不想在每个场景中都进行此身份验证。 (因为这可能是瓶颈)。例如:令牌每10分钟过期一次,一个场景需要5秒,总共模拟2小时。

问题:如何创建一个每 10 分钟在后台刷新 accesstoken 的模拟。在现实场景中,后端(客户端)只有一个后台进程,每 10 分钟更新一次 accesToken(在内存中或共享状态中)。再说一遍:我不想重新验证每个场景(呼叫 X、呼叫 Y、呼叫 Z)。


如果适合考虑循环作为场景的一部分,那么您应该能够通过使用持续时间/截止日期和条件执行来实现您想要的。

eg

import scala.concurrent.duration._

val executionTime = 2 hours
val authTimeout = 10 minutes 
val safetyMargin = 30 seconds

val authenticate : ChainBuilder = exec(login)
  .exec(session => session.set("timeout", authTimeout.fromNow))

scn = scenario("scenarioXYZ")
  .exec(authenticate)      
  .during(executionTime) {
    doIf(session => {session.get("timeout").as[Deadline].timeleft <= safteyMargin}) {
      exec(authenticate)
    }
    .exec(requestX)
    .exec(requestY)
    .exec(requestZ)
  }
}

因此登录(设置您的令牌)并设置令牌过期的截止日期

然后根据需要循环,并且在每个循环中,如果身份验证剩余的数量少于指定数量,则再次进行身份验证并设置新的预期到期时间

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加特林(性能测试):如何每x分钟在后台执行一次任务 的相关文章

  • 嵌套函数或方法调用会降低应用程序的性能

    我正在使用 asp net 和 C 开发应用程序 其中我们的项目架构有很多嵌套函数调用 public Employe GetEmployeOrder orderid employe GetEmployeOrderWithDetails or
  • jMeter 中的 javax.net.ssl.SSLException

    我正在服务器上测试一些功能 直到昨天为止都运行良好 今天 他们已经启用了 ssl 到服务器 即从 http 到 https 现在 当我运行测试计划时 出现以下错误 我该如何解决这个问题 尽管我在请求中将协议值更改为 https 但我收到以下
  • GCC 优化级别。哪个更好?

    我关注的是 GCC 编译程序的 CPU 内存消耗 执行用O3编译的代码在资源方面总是那么贪婪吗 有没有什么科学参考或规范可以显示不同级别的Mem cpu消耗的差异 研究这个问题的人们通常关注这些优化对执行时间 编译代码大小 能量的影响 但是
  • 加特林如何在两个场景之间传递价值?

    我的脚本中有两个场景 我想将 CreateId 的值传递给第二个场景 我在第一个场景中保存了 CreateId 错误说 未定义名为 CreateId 的属性 jsonPath id find 0 exists 什么也没找到 场景 1 val
  • 如何通过 JMeter 中的 JDBC 采样器运行多个 MySQL 语句

    我在 JMeter 2 13 中使用 JDBC 采样器 我的 JMeter 采样器中有大约 100 个删除语句 如下所示 delete from abc where id gt Variable Name delete from qwe w
  • 使用Python获取DNS解析时间和响应时间

    PycURL 或任何其他 python 包是否提供以下信息 lookup 连接时间 我想获得与此 cURL 命令相同的信息 不使用子进程调用该命令 Command curl s w nLookup time t time namelooku
  • Ga特林 j.n.ConnectException:地址已在使用中

    当使用 Ga特林运行模拟时 我遇到以下异常 j n ConnectException 地址已在使用中 没有更多信息 当测试的服务器无法响应或超时时是否会发生这种情况 我想确保这是服务器抛出的异常 而不是客户端抛出的异常 我在 Windows
  • Google.com 和其他流量大的网站可以使用 Google 的 PSI API 获得“快速”排名吗?

    谷歌改变了它的PSI https developers google com speed pagespeed insights 的定义快速排名FCP低于 1000 毫秒从 90 到 75 来自 PSI 文档 为什么v4和v5中的FCP值不同
  • 如何在git上共享Xcode性能测试基线?

    I have performance tests on Xcode with a baseline set as shown below 这些基线似乎是本地保存的 如断点 因此我对它们的更改不会通过 git 传输 当除了我之外的任何人运行我
  • 有哪些工具可以测试SQL语句的性能?

    在对性能永无休止的探索中 以及我自己的重击经历 我了解到一些可能会拖慢 SQL 语句性能的事情 强迫性子查询障碍进行疯狂的类型转换 并将它们嵌套到遗忘中 Group By 对所述疯狂类型转换的聚合函数fldID 所在位置 从我的 500 万
  • 测量服务器请求后 JSF 视图的呈现时间

    我想测量 JSF 应用程序的渲染时间 由于我的权力原因 应用程序无法填充日志 因此 我的问题是 有什么方法可以在使用任何浏览器执行包括后端 服务器 调用的特定操作后测量应用程序的渲染时间 到目前为止 在使用 Chrome 开发者工具后 我发
  • Kafka 错误:SLF4J:对 [org.apache.kafka.common.Cluster] 类型的对象调用 toString() 失败

    我尝试将 Gattle 与 Kafka 一起使用 但经常出现此错误 01 32 53 933 kafka producer network thread producer 1 DEBUG o apache kafka clients Net
  • 性能分析 asp.net,什么是 ProcessRequestNotificationHelper?

    我正在对每秒 20 个用户的负载下的 ASP NET Web 应用程序进行性能分析 20 个用户基本上使应用程序瘫痪 并且无法加载任何内容 我正在使用 RedGate 性能分析器 但我不知道如何使用它 12 的时间花在我的代码上 我可以深入
  • 加特林 - 顺序执行场景

    当我运行如下代码时 setUp scenario1 inject constantUsersPerSec 1 during 1 second scenario2 inject constantUsersPerSec 1 during 1 s
  • 测量 OpenMP Fork/Join 延迟

    由于 MPI 3 具有共享内存并行功能 并且它似乎与我的应用程序完美匹配 因此我正在认真考虑将我的混合 OpemMP MPI 代码重写为纯 MPI 实现 为了给棺材里钉上最后一颗钉子 我决定运行一个小程序来测试 OpenMP fork jo
  • 更快的循环:foreach 与 some(jsperf 的性能与 Node 或 chrome 不同)

    将数组的值恢复为简单的最佳方法是什么true or false values 我很困惑 因为 jsperf 给了我VERY与 google chrome 控制台 nodejs 或任何其他 JS 引擎给我的结果不同 jsperf 片段在这里
  • 访问网络编码性能测试的响应

    WebTestRequest request1 new WebTestRequest this Context Environment ToString IBWeb DefaultSB aspx request1 Headers Add n
  • 关闭扫描仪是否会影响性能

    我正在解决一个竞争问题 在问题中 我正在使用扫描仪获取用户输入 这是 2 个代码段 一个关闭扫描器 一个不关闭扫描器 关闭扫描仪 import java util Scanner public class JImSelection publ
  • 从会话中读取数据时如何发出加特林捕获请求?

    根据加特林文档 http gatling io docs 2 1 7 session session api html 我可以在执行场景时使用会话属性 但是 每次我在场景中使用函数文字访问会话时 都会遇到以下异常 error java la
  • 在加特林控制台上打印相关值

    我们如何打印使用捕获的值saveAs myValue 在控制台上gatling 就像我们一样System out println 在Java中 使用 saveAs 保存的值将保存到 session 中 文件 http galing io d

随机推荐