JMeter 逻辑控制之IF条件控制器

简介: JMeter 逻辑控制之IF条件控制器

逻辑控制之IF条件控制器

测试环境

JMeter-5.4.1

循环控制器介绍

添加While Controller

右键线程组->添加->逻辑控制器->While控制器

控制器面板介绍

添加后,面板如下

Expression值为true,才会执行位于其下的操作

最好勾选(默认配置)Interpret Condition as Variable Expression?,这样Expression输入框可以有两种输入选择:

  • 输入一个值为true 或者false的变量
    比如,如果你想测试,最后一个采样器执行是否成功,可以输入${JMeterThread.last_sample_ok}
  • 输入对bool表达式求值的函数(建议使用${__jexl3()},当然也可以用支持__groovy) ,形如
${__jexl3(${COUNT} < 10 && "${VAR}" == "abcd",)}

例如,没勾选上述配置之前,使用条件:${__jexl3(${VAR} == 23)},该条件计算结果(true或者false)会被传递给JavaScript,最后由JavaScript反回该结果值。勾选上述配置之后,会将该条件计算结果直接与true比较,不需要使用JavaScript.

检测变量是否为定义或者为null,可以采用以下表达式,假设变量命名为 myVar:

${__jexl3("${myVar}" == "\${myVar}")}

或者:

${__jexl3("${myVar}" != "\${myVar}")}

如果不勾选 Interpret Condition as Variable Expression? 控制器会使用javascript计算表达式,这会带来很大的性能消耗,并且降低测试的扩展性。

Evaluate for all children

如果勾选,则执行其下所有子组件时都会重新计算条件值,否则仅在进入控制器时时进行计算

示例:如下图,If Controller条件为${__jexl3("${myVar}" == "\${myVar}")},执行HTTP Request1之前没有设置myVar变量。

没勾选Evaluate for all children之前,运行时,HTTP Request2也会被执行,反之,HTTP Request2不会被执行。

例子(JavaScript)

  • ${COUNT} < 10
  • "${VAR}" == "abcd"

如果在解释代码时出错,那么条件结果值会被设置为false

当使用__groovy时,注意不要在字符串中使用变量替换,形如${__groovy("${myVar}" == 1)},否则使用了改变脚本的变量不能被缓存。取而代之,使用vars.get("myVar"),参见下文

例子(Variable Expression)

  • ${__groovy(vars.get("myVar") != "Invalid" )} (检查myVar变量是否等于Invalid)
  • ${__groovy(vars.get("myInt").toInteger() <=4 )} (检查myInt变量是否小于等于4)
  • ${__groovy(vars.get("myMissing") != null )} (检查是否设置了myMissing变量)
  • ${__jexl3(${COUNT} < 10)}
  • ${RESULT}
  • ${JMeterThread.last_sample_ok} (检查最后一个采样器采样是否成功)
目录
相关文章
|
2月前
|
测试技术 API Apache
使用 Apache JMeter 吞吐量控制器的详细指南
Apache JMeter是开源的负载和性能测试工具,其吞吐量控制器用于控制采样器执行频率以达到特定吞吐量。要使用它,首先启动JMeter,创建测试计划,添加线程组和逻辑控制器。配置吞吐量控制器的参数,如总执行次数或百分比,并添加HTTP请求采样器。例如,创建两个控制器,一个设定执行次数,另一个设定执行百分比。通过监听器如汇总报告和查看结果树来分析测试结果,从而模拟不同负载并识别性能瓶颈。吞吐量控制器是实现复杂测试场景的关键组件。
52 0
|
2月前
|
测试技术 Apache 数据安全/隐私保护
使用 Apache JMeter 事务控制器的详细指南
Apache JMeter 的事务控制器用于组合多个请求成一个事务,以便衡量整体性能。创建测试计划涉及添加线程组、事务控制器和采样器,配置参数如线程数、Ramp-Up时间和循环次数。在事务控制器内,添加HTTP请求模拟用户登录和访问主页等操作。通过勾选选项,包括计时器和处理器时间。添加监听器如汇总报告和查看结果树来分析结果,从而评估系统性能瓶颈。事务控制器对于测试复杂业务流程的性能非常有用。
55 0
|
3月前
|
JSON Java 测试技术
Jmeter--控制器--详解(1),技术协会Python部面试
Jmeter--控制器--详解(1),技术协会Python部面试
|
3月前
|
编解码 Java API
Jmeter--控制器--详解,2024年最新系统学Python从零开始
Jmeter--控制器--详解,2024年最新系统学Python从零开始
|
14天前
|
测试技术 持续交付 Apache
深度挖掘:Python性能测试中JMeter与Locust的隐藏技能🔍
【8月更文挑战第5天】随着软件规模扩大,性能测试对系统稳定性至关重要。Apache JMeter和Locust是两大主流工具,各有千秋。本文探索它们在Python环境下的进阶用法,挖掘更多性能测试潜力。JMeter功能强大,支持多种协议,可通过命令行模式执行复杂测试计划,并与Python集成实现动态测试数据生成。Locust基于Python,通过编写简洁脚本模拟HTTP请求,支持自定义请求及与Python库深度集成。掌握这些技巧可实现高度定制化测试场景,有效识别性能瓶颈,提升应用稳定性。
59 1
|
14天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
41 0
|
15天前
|
消息中间件 Java 测试技术
Python性能测试全攻略:JMeter与Locust,双剑合璧斩断性能瓶颈🗡️
【8月更文挑战第4天】在软件开发中,性能至关重要。对Python开发者来说,掌握高效性能测试方法尤为关键。本文将带您探索性能测试工具JMeter与Locust的强大功能。JMeter作为Java世界的巨擘,以其强大功能和灵活性在性能测试领域占有一席之地,不仅适用于Java应用,也能测试Python Web服务。
40 0