• Jmeter系列(37)- 详解 ForEach控制器


    如果你想从头学习Jmeter,可以看看这个系列的文章哦

    https://www.cnblogs.com/poloyy/category/1746599.html

    前言

    • ForEach 控制器一般和用户自定义变量/JDBC结果变量一起使用,用于可以遍历读取相关的返回值
    • 该控制器下的 Samplers 和控制器都会被执行一次或多次,每次读取不同的变量值
    • ForEach 控制器和正则提取器是个好搭档,因为正则提取出来的变量值会用_分隔,而 ForEach 可以省略 _ 

    ForEach

    ForEach 界面介绍

    字段含义

    字段含义
    Input Variable Prefix 输入变量名的前缀,默认为一个空字符串作为前缀。
    Start index for loop(exclusive)
    • 循环开始的索引
    • 不包括此值
    • 默认从 1 开始
    • 填 0 则起始索引是 1,填 1 则是 2
    End index for loop(inclusive)
    • 循环结束的索引
    • 包括此值
    • 填 100 则结束索引是 100
    Output variable
    • 输出的变量名
    • 在后续循环中,samplers 可使用的变量名
    Add”_”before number
    • 输入变量名和引之间是否有 _ 间隔
    • 不勾选的话,则输入变量名和索引直接相连

    ForEach 结合用户自定义变量的栗子

    线程组树结构

    线程组,只有一个线程

    用户自定义变量

    一共有四个

    ForEach

    前缀为 name 的有四个变量,所以循环四次

    运行结果

    如果输出变量名称为空,需要怎么取循环的值?

    直接取空即可 ${} 

    ForEach 不勾选 Add”_”before number 的栗子

    线程组树结构

    用户自定义变量

    ForEach

    运行结果

    ForEach 结合 JDBC Request 的栗子一

    线程组树结构

    JDBC 运行结果

    JDBC 一共返回 100 条数据,这里我们是通过 Variable names 去接住所有数据,对应有 100 个变量(mobile_1 到 mobile_100)

    ForEach

    循环 100 次,输入变量 mobile_1 - mobile_100 并输出为 new_mobile_1 - new_mobile_100

    运行结果

    ForEach 结合 JDBC Request 的栗子二

    线程组树结构

    JDBC 运行结果

    • 这里通过 Result Variable name 去接住所有数据,只有一个变量,是无法循环的
    • 所以我们需要通过正则提取器将需要的 mobile 字段的值提取出来

    正则提取器

    关于正则提取器更多知识点可看:https://www.cnblogs.com/poloyy/p/13179150.html

    正则提取结果

    我们要的其实是箭头的那些,但是正则会提取不必要的字段值(如:mobile_new_11_g0),所以注意 ForEach 的输入变量前缀要写正确

    ForEach

    循环 100 次,输入变量 mobile_new_1 - mobile_new_100 并输出为 mobile_1 - mobile_100

    运行结果

  • 相关阅读:
    爬虫练习
    爬取豆瓣电影top250
    简单爬虫
    正则提取子域名和ip
    用户体验培训总结
    测试经验总结
    项目管理知识总结
    读书笔记——《留住好员工:爱他们,还是失去他们?》
    ISTQB学习笔记
    数据结构和算法with Python
  • 原文地址:https://www.cnblogs.com/poloyy/p/13230175.html
Copyright © 2020-2023  润新知