1、明白获取天气信息的流程
浏览器输入http://www.weather.com.cn/ 同时打开fiddler进行抓包。
经过认真观察,可以发现只有下面两条记录,是我们需要用到的。
第一条,是在天气输入框输入‘成都’时,获取到的城市代码参数。(红框显示的是‘成都‘’字段值已经被编码了)
第二条,是获取的成都的具体天气信息
可以明确我们使用JMeter需要构造这两条,注意header中是有referer
2、JMeter构造获取城市代码
2.1JMeter工作计划右键添加一个线程组,线程组右键添加—>Samper—>HTTP Request
正确填写HTTP的请求信息。通过第一步我们知道他是http协议,服务器的域名或IP,路径和参数,请求的方法,照着填写即可。可以自己给HTTP请求改名字,方便查找区分。
2.2 getCityCode请求右键—>添加—>config element—>HTTP Header Manager
写入header的信息。推荐一种简单方法是将fiddler抓包时获取的header复制,点击Add from Clipboard,就可以看到header已经被写好了。
2.3 线程组右键—>添加—>Listener—>View Results Tree
2.4 点击工具栏的绿色三角形运行(如果没有保存,会提示是否保存文件,这里保存就可以运行了)
观察结果树的右方框,已经出现我们想要的代码
2.5 关于请求中的参数我们也可以去添加,点击下方的Add,构造成key:value就可以了。如下
2.6 判定是否是你想获取的城市的代码,添加断言
2.6.1 getCityCode请求右键添加—>Assertions—>Response Assertion
patter to Test框中,添加断言的值
2.6.2 线程组右键添加—>Listener—>Assertion Results
点击运行,assertion results里没有提示信息,并且察看结果树没有红色的,说明断言成功
3、JMeter关联。将第一个请求的结果信息传给第二个请求使用。
使用正则表达式将城市的代码信息提取出来。
3.1getCityCide请求右键—>添加—>Post processor—>Regular Expression Extractor
填入以下信息。
Name of created variable 变量名(将请求的结果赋值给它,方便下一个请求的使用)
Regular Expression 正则表达式(匹配出你想要的信息)
Template 匹配结果的第几个括号中的值。这里匹配第一个括号
Match 匹配哪些数字。1代表任意
4、JMeter获取城市具体天气信息
4.1线程组右键添加—>Sampler—>HTTP Request
这里改名为getWeather,完善请求信息。里面的citycode就是用的上一个请求的结果信息
点击运行
来源:CSDN
作者:萝卜hu
链接:https://blog.csdn.net/qq_40019973/article/details/104131546