jmeter - JMETER - 如何在 Jmeter 的 while 循环中传递 2 个条件
问题描述
如何在 Jmeter 的 while 循环中传递 2 个条件。条件是
- 请求应该循环运行,直到“通过”响应到来。
- While 循环应该只运行 1 分钟。
条件 1 工作正常。但是条件2无法实现。
我尝试在运行时控制器中运行 While 循环。但问题是,如果响应“通过”在 1 分钟之前出现,则其余的测试将停止。尝试其他方式(运行时在 While 循环中)导致请求的多次执行,即使在收到“通过”响应之后也是如此。
将不胜感激这方面的任何线索。谢谢
解决方案
在 While 控制器之前添加一个JSR223 采样器,并使用以下代码将当前时间存储到JMeter 变量中:
SampleResult.setIgnore() vars.putObject('whileLoopStart', System.currentTimeMillis())
使用以下__groovy() 函数作为 While 控制器的条件:
${__groovy(!vars.get('your_variable').equals('Pass') && ((System.currentTimeMillis() - vars.getObject('whileLoopStart')) < 60000),)}
这样,While 控制器将运行到:
- 要么
your_variable
不等于Pass
- 或 60 秒过去
- 先到先得
有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - 为什么以及如何使用它
推荐阅读
- c# - 在 C# 中计算字符串
- postgresql - 索引扫描不适用于 postgres 中的 json 数据集
- html - 在 mat-checkbox 之类的组件内进行角度插值
- python - 有没有办法在类的 __init__ 之后立即运行函数?
- pandas - Pandas df.shift(axis=1) 添加了额外的条目,为什么?
- oracle - Oracle 11g 中的重复插入监视表
- php - 如何在 AST 中获取变量名和值
- c - 通过引用传递时声明变量的行为是否未定义?
- r - 计算 R 中组和特定列中的唯一计数
- c# - 使用 Dapper 进行弹性查询:过程需要“ntext/nchar/nvarchar”类型的参数