Jmeter 之 forEach控制器

1 添加方法:

 

  •   线程组右键-> 添加 -> 逻辑控制器 ->ForEach控制器
 
2 作用: 
  •   可以更方便JMeter后置处理器提取出来的多组数据,也可以定义具有特定规则的数据,用ForEach读取
3 各个组件介绍:
  
  •   输入变量前缀:变量的前缀

  •   开始循环字段:要读取的变量后缀,只能是数字,代表第一个读取的变量

  •   结束循环字段:要读取的变量后缀,只能是数据,代表第二个读取的变量

  •   输入变量名称:把读取的变量的结果保存到新的变量

  •   数字之前加

  •   上下划线"_"? : 变量前缀和变量后缀之间加不加下划线
 
4 操作案例
 案例1:获取查询天气页面中的接口名称
  • 第一步:先调试XPATH,访问天气页面
  • http://ws.webxml.com.cn/WebServices/WeatherWS.asmx
  • 看不清不要紧,这里的XPATH为://li/a[@href]//text()
  • 第二步:使用JMeter访问这个页面,并使用JMeter的XPATH测试工具进行调试
运行,看查看结果树中的XPATH Tester
  • 第三步:使用XPATH 后置处理器把天气接口的名称提取出来

第四步:添加调试取样器,然后运行查看调试取样器中,有没有JMeter变量

运行后,调试取样器中就有变量name,和name_1、name_2、...、name_6,7个变量了。

 

这是JMeter后置处理器提取数据的特点,它会把多个变量自动加上下划线和数字来存储,

 

这种结构刚好提供给For-Each控制器使用

 

第五步:添加For-Each控制器,让这个控制器读取name并保存为新的变量key

 

第六步:添加百度搜索接口,搜索的内容填写For-Each控制器输出的变量key

由于百度有安全限制,频繁访问会导致进入认证环节,所以取消跟随重定向,防止进入认证页面

第七步:运行查看结果

可以看到,每个请求按照For-Each的循环,分别读取了不一样的值。

 

这样既实现了多个接口的关联,也实现了使用For-Each控制器来使用上一个接口的返回值并分别提供给下一个接口使用。

 

posted @ 2024-01-29 11:42  yongheng999  阅读(934)  评论(0)    收藏  举报