jmeter - IfController 未在 forEach 控制器下定义的 Jmeter 中执行
问题描述
IfController 没有在 forEach 控制器下定义的 Jmeter 中执行。
尝试使用 Jmeter 执行以下场景。这可以实现吗?
"- 连接到数据库(使用 JDBC 连接)- 运行 SQL 以获取批处理记录列表,说它返回 B1、B2 和 B3 批处理(使用 JDBC 请求)- 对于获得的每个批处理记录,运行 SQL获取相应的货物(使用 ForEach 控制器和 JDBC 请求)- 如果每批中的货物数量小于 5(使用 If 控制器)- 运行新 SQL 以获取同一批次的新货物集(使用ForEach Controller) - 每次发货,调用一个应用程序 API(使用 HTTP 请求)"
我看到第一个 ForEach 控制器已执行,但我没有看到 if 控制器正在执行。为了使 if 控制器中的条件简单,我使用了这个条件 - 1==1 并尝试了这个 (${__jexl3(vars.get("JMeterThread.last_sample_ok")=="true" && (vars.getObject(" shipCount1").size() < 2 ),)})
解决方案
您需要从 If Controller 的条件中删除括号,因为它导致(true)
无法强制转换为,true
因此您的 If Controller 的子级没有执行
正确表达:${__jexl3(vars.get("JMeterThread.last_sample_ok")=="true" && (vars.getObject("shipmentCount1").size() < 2 ),)}
演示:
如果控制器设置以防万一:
始终使用调试采样器和查看结果树侦听器组合检查JMeter 函数和/或变量值
推荐阅读
- python - discord.errors.Forbidden: FORBIDDEN (status code: 403): 从试图 dm 一些不和谐的成员
- docker - 如何将 CMD 或 ENTRYPOINT 与使用 ENTRYPOINT 的基础图像一起使用
- javascript - Jquery Mask 不使用插件初学者
- bluetooth-lowenergy - Android <-> iOS Bluetooth LE 应用程序,无法写入特征
- java - Java 7 Parse DateTime 秒到小数点后 7 位
- python - 我如何在熊猫上获得年龄和日期
- jquery - jQuery Grid css 未在 .net core 2 中加载
- marklogic - 如何将数据直接传递到 MarkLogic 中的最终数据库
- hibernate - 如何在 HQL 中为一对多映射创建查询
- python - 在 Spark 中读取 CSV 文件时,日期时间/时间戳被视为字符串