Jmeter关联测试实例(中国天气网)

Jmeter关联测试实例(中国天气网)

中国天气网:http://www.weather.com.cn/
某一个城市的天气:http://www.weather.com.cn/weather1d/101020100.shtml#search

但这里面有一个城市代码(101020100)不是固定的,要根据测试数据获取不同城市的代码编号,再查询该城市的天气状况。
分析后得出的结论是先要请求一个可以获取城市代码的接口,将获取的代码传递给这个获取天气信息的地址,

请求形式为:
http://www.weather.com.cn/weather1d/${citycode}.shtml#search, 其中{citycode}.html的 {citycode}就是前一个请求(查询某个城市citycode)传过来的值。

Step1:

1)添加一个用户变量city。

Jmeter关联测试实例(中国天气网)

2)为测试计划TestPlan添加一个线程组。添加第一个HTTP Sampler, 命名为GetCityCode(这个请求的目的是获取城市citycode)。

添加HTTP信息头管理器 http://www.weather.com.cn, 目的是“就是尽可能的真实模拟用户打开浏览器的操作”,在查某个城市天气之前,先得打开中国天气网。
Jmeter关联测试实例(中国天气网)

再填写请求信息。
服务器:toy1.weather.com.cn – 这个网站用名字来解析城市代码,中英文都支持
路径:/search?cityname=${city}

例如:toy1.weather.com.cn/search?cityname=上海
Jmeter关联测试实例(中国天气网)

3)添加一个后置处理器中的:BeanShell PostProcessor ,用来处理响应结果的中文乱码显示;
Jmeter关联测试实例(中国天气网)

4)添加一个 Debug Sampler ,添加查看结果树,用来调试,查看正则提取结果

Jmeter关联测试实例(中国天气网)

Step2:
添加一个后置处理器,利用正则提取器将获取到的城市代码取出。
Jmeter关联测试实例(中国天气网)

引用名称:citycode
正则表达式:(\d{9})~ ,注意左右边界
模板: 1 1 1
匹配数字:1,如果是0,就是随机获取,那么和city就有可能对不上…

发送请求后,查看dug sampler 获取的信息情况。
Jmeter关联测试实例(中国天气网)

结果中,获取了citycode 相关的有4个,后面这几个都可以用来被调用,我们用citycode就好。

Step3:
添加第二个HTTP Sampler,命名为GetWeatherInfo。请求信息如下。
http://www.weather.com.cn/weather1d/${citycode}.shtml#search

Jmeter关联测试实例(中国天气网)

在路径中要使用第一个请求返回来的城市代码来提起具体的值。/weather1d/${citycode}.shtml#search,要与Step2中正则提取器中的引用名称一致。

Step6:
查看结果树,显示请求返回的响应数据正确。

Jmeter关联测试实例(中国天气网)