zoukankan      html  css  js  c++  java
  • 转:JMeter5的If Controller操作解析

    问题描述

    在JMeter中添加了If Controller控制器,然后再控制器的表达式输入框中输入了预先构造的为“真”条件,执行Run发现结果树中并没有监控到执行的记录。

    问题分析

    在最新版JMeter(目前版本:4.0)中,打开If Controller的界面,发现Express输入框上方有一段警告类型的提示语,如下:

     
     

    "For performance it is advised to check "Interpret Condition as Variable Expression"
    and use __jexl3 or __groovy evaluating to true or false or a variable that contains true or false.
    ${JMeterThread.last_sample_ok) can be used to test if last sampler was successful"

    使用建议:

    1. 在Expression输入框中,建议将判断条件解释为变量表达式,并使用__jexl3函数或__groovy函数对该变量表达式求值为true/false
    2. 或者可输入值为true/false的变量
    3. ${JMeterThread.last_sample_ok}可用于检测最后一个取样器是否成功执行

    从上可知,对于新版本JMeter中的If Controller,在Expression输入框中直接输入判断的表达式,如1 == 1${threadNum} > 2,而不做求值计算(true/false)就执行JMeter是没有效的,达不到预期的效果

    预期:条件为真,会执行并监控到相关记录
    实际:条件未能被识别,不会执行和监控到记录
    

    PS:网络上搜索到有一部分教程是采用JMeter比较早期的版本(如:2.x版本),直接就写判断的表达式,并没有作真假求值运算也能被识别(目前因采用4.x新版本的JMeter,暂未验证低版本的情况)

    解决方案

    利用JMeter自带的函数助手(Function Helper)中的__jexl3函数或__groovy函数,对判断条件的表达式进行求值计算,生成对应的求值运算函数,然后将此运算函数复制到If Controller的Expression输入框中即可

     
    __groovy函数
     
    __jexl3函数

    PS:直接在Expression输入框中输入true或false也是可以起到控制节点是否执行的判断依据

    实际使用如下:



    作者:Fighting_001
    链接:https://www.jianshu.com/p/57b3970c83b8

  • 相关阅读:
    常用AJAX框架
    ASP.NET Mvc Preview 5 演示Demo #4 实现RadioButtonList与DropDownList应用
    ASP.NET MVC 中的数据分页(三
    扩展方法(1) DataTable 和List 相互转换
    服务器端压缩发送数据到客户端ASP.NET MVC
    ASP.NET MVC 中的数据分页(四)
    msdn DataList Web 服务器控件概述
    msdn ASP.NET 演练精选
    msdn ASP.NET 主题和外观
    msdn 数据 Web 服务器 (ASP.NET) 控件
  • 原文地址:https://www.cnblogs.com/lci05/p/11354529.html
Copyright © 2011-2022 走看看