【P34】JMeter ForEach控制器(ForEach Controller)

news/2024/11/22 21:27:19/

文章目录

    • 一、ForEach控制器(ForEach Controller)参数说明
    • 二、准备工作
    • 三、测试计划设计


一、ForEach控制器(ForEach Controller)参数说明

可以对一个组变量进行循环迭代;该组件通常与后置处理器中的 JSON 提取器、正则提取器、边界提取器等进行联合使用

选择线程组右键 >>> 添加 >>> 逻辑控制器 >>> ForEach控制器(ForEach Controller)

在这里插入图片描述

  • 输入变量前缀(Input variable prefix):默认为一个空字符串作为前缀

  • 开始循环字段(不包含)(Start index for loop(exclusive)):默认从0开始,如果填写是5,实际是从5+1个开始执行

  • 结束循环字段(含)(End index for loop(inclusive)):默认从0开始,如果填写是5,实际是从5+1个结束执行

  • 输出变量名称(Output variable name):变量名,在后续的操作中可以直接引用。比如,此处填city,那么其他地方引用时可以用 ${city}

  • 数字之前加上下划线 “_”?(Add “_” before number ?):勾选,变量名与索引之前有下划线 “_”,比如:city_1。不勾选,变量名与索引之前无下划线 “_”,比如:city1

二、准备工作

慕慕生鲜: http://111.231.103.117/#/login

  • 进入网页后,登录,页面提供了账户和密码

  • 搜索框输入“虾”

  • 右键检查或按F12,打开调试工具,点击搜索

在这里插入图片描述

三、测试计划设计

(1)、测试计划右键 <<< 添加 <<< 配置元件 <<< HTTP请求默认值

在这里插入图片描述

  • 协议:http

  • 服务器名称或IP:111.231.103.117

  • 端口:8083

  • 内容编码:utf-8

(2)、在网页中,调试中点击网络,找到请求,点击标头找到请求标头,复制所有请求标头

在这里插入图片描述

(3)、测试计划右键 <<< 添加 <<< 配置元件 <<< HTTP信息头管理器

在这里插入图片描述

  • 点击从剪切板添加,会将复制的值自动添加进去

(4)、测试计划右键 <<< 添加 <<< 线程(用户)<<< 线程组

(5)、在网页中,调试中点击网络,找到请求,点击负载,复制参数值

在这里插入图片描述

(6)、线程组右键 <<< 添加 <<< 取样器 <<< HTTP请求

在这里插入图片描述

  • 协议:GET

  • 路径:/product/list

  • 点击从剪切板添加,会自动添加;也可手动添加

(7)、HTTP请求右键 <<< 添加 <<< 后置处理器 <<< JSON提取器

在这里插入图片描述

  • 勾选 Main sample only

  • Name of created variable:var1

参数名为:var1

  • JSON Path expressions:$…list[*].name

$:开始符固定的;..:0到多个级别,单个为根级别;list:返回的响应数据结构,相当于字典,key为list的值;name:list值中名为name键的值

  • Match No. (0 for Random):-1

匹配所有符合正则表达式的值

(8)、HTTP请求右键 <<< 添加 <<< 后置处理器 <<< 调试后置处理程序

在这里插入图片描述

  • 参数默认即可

(9)、线程组右键 <<< 添加 <<< 监听器 <<< 查看结果树

(10)、点击启动,点击查看结果树,查看请求结果

在这里插入图片描述

如图,请求成功,获取到两个符合正则表达式的值,这两个值为一组数据

(11)、线程组右键 <<< 添加 <<< 逻辑控制器 <<< ForEach控制器

在这里插入图片描述

  • 输入变量前缀:var1

  • 开始循环字段:0

从每组的第一个数据开始获取;左开右闭

  • 结束循环字段(含):2

从0开始,执行到每组下标为2的数据结束获取,不包含下标为2的数据;左开右闭

  • 输出变量名称:new_var1

  • 勾选:数字之前加上下划线 “_”?

(12)、ForEach控制器右键 <<< 添加 <<< 取样器 <<< JSR223 Sampler

在这里插入图片描述

log.info("打印变量:"+vars.get("new_var1"));

(13)、打开日志,再次启动,查看日志信息

点击菜单选项,点击日志查看

在这里插入图片描述

如图,日志中,打印出所获取到的两个变量值


http://www.ppmy.cn/news/91666.html

相关文章

Springboot +spring security,解决跨域问题

一.简介 这篇文章主要是解释什么是跨域&#xff0c;在Spring中如何解决跨域&#xff0c;引入Spring Security后Spring解决跨域的方式失效&#xff0c;Spring Security 如何解决跨域的问题。 二.什么是跨域 跨域的概率&#xff1a; 浏览器不能执行其他网站的脚本&#xff0c…

[Daimayuan] pSort(C++,强连通分量)

题目描述 有一个由 n n n 个元素组成的序列 a 1 , a 2 , … , a n a_1,a_2,…,a_n a1​,a2​,…,an​&#xff1b;最初&#xff0c;序列中的每个元素满足 a i i a_ii ai​i。 对于每次操作&#xff0c;你可以交换序列中第 i i i 个元素和第 j j j 个元素当且仅当满足 …

《操作系统》——计算机系统概述

前言&#xff1a; 在之前的【Linux】学习中&#xff0c;我们已经对常见指令已经开发工具等进行了详细的了解。紧接着&#xff0c;我们将要学习的便是关于【Linux进程】的基本知识。但是为了帮助大家更好的理解相关的知识概念&#xff0c;我先带领大家来学习关于《操作系统》这…

图像生成简单介绍并给出相应的示例代码

文章目录 图像生成简单介绍并给出相应的TensorFlow示例代码1. 介绍2. 准备工具和库3. 数据集准备4. 创建生成对抗网络&#xff08;GAN&#xff09;模型5. 训练模型6. 生成新图像7. 总结 图像生成简单介绍并给出相应的TensorFlow示例代码 图像生成是计算机视觉中的一个重要任务…

android 12.0状态栏高度为0时,系统全局手势失效的解决方案

1.概述 在12.0的framework 系统全局手势事件也是系统非常重要的功能,但是当隐藏状态栏, 当把状态栏高度设置为0时,这时全局手势事件失效,这就要从系统手势滑动流程来分析 看怎么样实现系统手势功能的,然后根据功能做修改 2. 状态栏高度为0时,系统全局手势失效的解决方案…

14-C++面向对象(单例模式、const成员、浅拷贝、深拷贝)

单例模式 单例模式&#xff1a;设计模式的一种&#xff0c;保证某个类永远只创建一个对象 构造函数\析构函数 私有化 定义一个私有的static成员变量指向唯一的那个单例对象&#xff08;Rocket* m_rocket&#xff09; 提供一个公共的访问单例对象的接口&#xff0…

基于混合蛙跳的路径规划算法

路径规划算法&#xff1a;基于混合蛙跳优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于混合蛙跳优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

数据库的简介

文章目录 前言一、为什么需要数据库二、数据库基本概念1.什么是数据库2.什么是数据库管理系统3.数据库表4.数据库表 三、常见的数据库管理系统 前言 数据库的简介 一、为什么需要数据库 信息时代数据容量海量增长&#xff0c;结构化存储大量数据&#xff0c;便于高效的检索和…