zoukankan      html  css  js  c++  java
  • Jmeter测试接口详细步骤(十二)逻辑控制器

    ForEach控制器

    • 输入变了前缀:可在“用户自定义的变量”中定义一组变量,循环控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数。
    • 开始循环字段(不包含):循环下标起点
    • 结束循环字段(包含):循环下标终点
    • 输出变量名称:循环控制器生成的变量名称
    • 数字之前加上下划线“_”?:变量前缀后是否加“_”作为分隔符

    例:

    1、访问https://jmeter.apache.org/demos/

    2、正则表达式提取第一步中的所有链接【<a href="([^>]+.jmx)"

    3、添加一个ForEach控制器

    4、在ForEach控制器中添加一个HTTP请求,参数由ForEach控制器传递过来

    5、添加一个监控器-查看结果树,运行

    简单控制器

     Include控制器

    用来导入外部测试片段,在执行时会导入的测试计划,但是被导入的测试计划有特殊要求,不能有线程组,只能包含配置元件。

    Runtime控制器

    运行时控制器控制其子代运行多长时间。控制器将运行其子级,直到超过已配置的运行时间。

    • Runtime(seconds):默认1,所需的运行时间(以秒为单位)。0表示不运行。

    Switch控制器

    • Switch Value:JMeter会给节点下取样器编号(0开始)
      • 可以是数字,如果编号超出了范围,则运行第0个取样器。
      • 可以是字符,为字符时匹配取样器名称,如果匹配不上会默认找名称为default的取样器,没有则不运行。

    While控制器

    其节点下的元件将一直运行直到While条件为false

    • Condition(function or variable):
      • 接受变量表达式与变量, 如${inputvar}<10
      • Blank:当循环中有取样器失败后停止
      • LAST:当循环前有取样器失败则不进入循环
      • Otherwise:当判断条件为false时停止循环

    交替控制器

    其节点下的取样器会交替执行

    • 忽略子控制器模块:即子控制器失败,由交替控制器接管。

     仅一次控制器

    控制器下的元件只运行一次

    • 把仅一次控制器放在循环控制器下面,也只运行一次
    • 把仅一次控制器放在线程组下面,也只运行一次

    吞吐量控制器

    用来控制其下元件的执行次数

    • Percent Executions:按照执行次数百分百来计算执行次数,此时吞吐量的取值是0~100。
    • Per User:
      • 勾选:按虚拟用户数来计算执行总次数
      • 不勾选:按照所有虚拟用户数来计算执行总次数
    • Total Executions:按照吞吐量的值来指定执行次数,可以是任意整数,如果小于等于0则一次也不执行。

    序号

    线程数

    循环次数

    模式

    吞吐量

    Per User

    执行次数

    1

    2

    10

    percent

    50

    Y

    10

    2

    2

    10

    percent

    50

    N

    10

    3

    2

    10

    total

    7

    Y

    14

    4

    2

    10

    total

    7

    N

    7

    5

    2

    2

    total

    7

    Y

    4

    6

    2

    2

    total

    7

    N

    4

    • 序号1:线程2,循环次数10,总共20次,吞吐量50%,20*50%=10次。
    • 序号2:线程2,循环次数10,总共20次,吞吐量50%,20*50%=10次。
    • 序号3:线程2,循环次数10,总共20次,吞吐量7次,Per User勾选,2*7=14次。
    • 序号4:线程2,循环次数10,总共20次,吞吐量7次,Per User不勾选,总共7次。
    • 序号5:线程2,循环次数2,总共4次,吞吐量7次,由于线程总计划是4次,最多4次。
    • 序号6:线程2,循环次数2,总共4次,吞吐量7次,由于线程总计划是4次,最多4次。

    如果(If)控制器

    If Controller允许用户控制其下的测试元素(其子元素)是否运行。

    • Evaluate for all children: 判断条件是否针对所有子节点
    • 实例(变量表达式)
    1. $ {__ groovy(vars.get(“ myVar”)!=“ Invalid”)}(检查myVar不等于Invalid)
    2. $ {__ groovy(vars.get(“ myInt”)。toInteger()<= 4)}(检查myInt小于或等于4)
    3. $ {__ groovy(vars.get(“ myMissing”)!= null)}(仔细检查是否未设置myMissing变量)
    4. $ {__ jexl3($ {COUNT} <10)}
    5. $ {RESULT}
    6. $ {JMeterThread.last_sample_ok}(检查最后一个样本是否成功)

    随机控制器

    节点下的元件随机运行

    随机顺序控制器

    节点下的元件随机执行,不过每个元件只执行一次

    循环控制器

    录制控制器

    使用JMeter代理进行录制时,录制脚本默认放在此控制器节点下。没有实际的逻辑作用。

     事务控制器

    事务响应时间是我们衡量业务性能的主要指标,事务控制器可以把其节点下的取样器执行小号时间累加在一起,便于统计。

    如果事务控制器下取样器有多个,那么只有每一个取样器都运行成功了,整个事务控制器定义的事务才算成功,这是充分必要条件。

    • Generate Parent sample:是否生成一个父取样结果
    • Include duration of timer and pre-post processors in generated sample:是否包含定时器,选中将在取样器前后加上延时
  • 相关阅读:
    AM8 自定义表情包的实现方法
    Create STKNetDiskC Instance Error
    怎样实现文件发文功能
    企业云盘的数据备份
    一种可行的文档协同编辑方法实现
    【OI】二分图最大匹配
    【OI】位运算操作
    【OI】关于快速幂的简单理解
    【OI】线性筛
    【OI】指针线段树&指针
  • 原文地址:https://www.cnblogs.com/nicole-zhang/p/14685856.html
Copyright © 2011-2022 走看看