使用JMeter实现天气接口自动化

房东的猫 提交于 2020-02-01 16:39:18

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就是用的上一个请求的结果信息
在这里插入图片描述

点击运行
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!