Jmeter学习之----ForEach控制器与正则表达式的联合使用

上一篇 / 下一篇  2012-12-05 17:26:59 / 个人分类:Jmeter

采用正则表达式获取请求结果中的值,当请求的结果是多个值时,如果我们需要获取每一个值,且都执行一遍后面的请求时(例如获取响应文件中的所有html连接,并请求这些连接地址),ForEach就可以发挥其作用了。
  还是沿用上一遍的获取天气预报案例分析:
1、将上一篇中的if控制器换成ForEach控制器,同时在获取城市的正则表达式中将匹配数字设置成-1,表示全部获取匹配的数据。
    ForEach控制器的配置如下:
输入变量前缀:getCity
输出变量名称:CityName
勾选“Add "_"before number ”
2、将获取getWeatherByCityName请求中的Soap/XML-RPC data中的变量改为${CityName}
  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getWeatherbyCityName xmlns="http://WebXml.com.cn/">
      <theCityName>${CityName}</theCityName>
    </getWeatherbyCityName>
  </soap:Body>
</soap:Envelope>
3、将断言中的测试模式也修改为${CityName}。
4、在ForEach控制器中增加一个固定定时器子测试元件,设置延迟时间为3000ms,因为获取天气预报的webService不支持你高速访问的,平均每分钟不超过20次。这里只是作为功能测试才使用的。
5、OK,执行下。
CityName变量每循环一次就好会依次取getCity中的值进行赋值。直到取完。

TAG:

 

评分:0

我来说两句

Open Toolbar