但这里面有一个城市代码(101020100)不是固定的,要根据测试数据获取不同城市的代码编号,再查询该城市的天气状况。
分析后得出的结论是先要请求一个可以获取城市代码的接口,将获取的代码传递给这个获取天气信息的地址,
请求形式为:
http://www.weather.com.cn/weather1d/${citycode}.shtml#search, 其中{citycode}.html的 {citycode}就是前一个请求(查询某个城市citycode)传过来的值。
Step1:
1)添加一个用户变量city。
2)为测试计划TestPlan添加一个线程组。添加第一个HTTP Sampler, 命名为GetCityCode(这个请求的目的是获取城市citycode)。
添加HTTP信息头管理器 http://www.weather.com.cn, 目的是“就是尽可能的真实模拟用户打开浏览器的操作”,在查某个城市天气之前,先得打开中国天气网。
在这里插入图片描述
再填写请求信息。
服务器:toy1.weather.com.cn – 这个网站用名字来解析城市代码,中英文都支持
路径:/search?cityname=${city}
例如:toy1.weather.com.cn/search?cityname=上海
3)添加一个后置处理器中的:BeanShell PostProcessor ,用来处理响应结果的中文乱码显示;
4)添加一个 Debug Sampler ,添加查看结果树,用来调试,查看正则提取结果
Step2:
添加一个后置处理器,利用正则提取器将获取到的城市代码取出。
引用名称:citycode
正则表达式:(\d{9})~ ,注意左右边界
模板:11
匹配数字:1,如果是0,就是随机获取,那么和city就有可能对不上…
发送请求后,查看dug sampler 获取的信息情况。
结果中,获取了citycode 相关的有4个,后面这几个都可以用来被调用,我们用citycode就好。
Step3:
添加第二个HTTP Sampler,命名为GetWeatherInfo。请求信息如下。
http://www.weather.com.cn/weather1d/${citycode}.shtml#search
在路径中要使用第一个请求返回来的城市代码来提起具体的值。/weather1d/${citycode}.shtml#search,要与Step2中正则提取器中的引用名称一致。
Step6:
查看结果树,显示请求返回的响应数据正确。
原文:https://blog.51cto.com/13681496/2541573