文章目录
- 一、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)、打开日志,再次启动,查看日志信息
点击菜单选项,点击日志查看
如图,日志中,打印出所获取到的两个变量值