我们都知道使用Postman做接口测试,相比Postman,Fiddler不能写断言,只能构造HTTP请求,并人工确认返回结果的正确性。但作为一个HTTP代理,Fiddler可以抓取到浏览器发出去的HTTP请求,然后通过修改请求重新发送的方式,快捷地进行接口测试。
在HTTP接口的测试过程中,一般我们会按照如下的步骤进行:
1)测试环境的准备
2)HTTP消息体的构造
3)HTTP消息的发送及断言
如果我们可以拿到项目组的接口文档,并且HTTP后台服务是可以工作的,那我们的接口测试会非常顺利,可以不使用Fiddler工具。
但是,实际情况中,不断的测试前移,需要我们的接口自动化测试用例在编码工作还未完成的情况下,就能准备完成。代码开发完成之后,直接运行自动化用例。
这种情况下,Fiddler工具就能大显身手了。
Fiddler工具常见的使用场景:
1)在没有接口文档的情况,使用Fiddler抓包,获得HTTP后台接口;
2)在没有HTTP后台服务的情况下,使用Fiddler模拟服务端。
使用Fiddler做接口测试:
一、Composer介绍
Fiddler Composer的功能就是用来创建HTTP Request 然后发送。 Fiddler创建request有三种方式:
1、自定义一个Request
2、可以手写一个Request
3、在Web会话列表中拖拽一个已有的Request
点开右侧Composer区域,可以看到如下界面,就是测试接口的界面了
1.请求方式:点开可以勾选请求协议是get、post等
2.url地址栏:输入请求的url地址
3.请求头:第三块区域可以输入请求头信息
4.请求body:post请求在此区域输入body信息
5.执行:Execute按钮点击后就可以执行请求了
6.http版本:可以勾选http版本
7.请求历史:执行完成后会在右侧History区域生成历史记录
二、请求百度首页
1.先选择请求方式:get
2.填入请求地址:http://www.baidu.com/
3.http协议版本:默认1.1
4.Request Body:get请求不用填写body,此区域此时会置灰
5.点击execute按钮:执行请求
6.History区域显示请求过的历史记录
7.查看请求结果,左边会话框会显示请求行,如下图:
8.查看response区域,点Textview
9.显示服务器返回结果:百度一下,你就知道
三、在百度输入框输入测试后搜索
1.在输入框输入请求url
2.请求地址:/s
3.请求参数如上图红色区域(?后面)
4.查看请求结果,如下图
5.上方区域显示请求参数(wd=测试)
6.response区域点Webview
7.返回结果会显示百度搜索“测试”的结果
四、模拟手机APP登陆
1.打开智行火车票的登陆界面,如下图
2.通过抓包找到登陆请求url
3.请求类型选择:POST
4.输入登陆的url地址
5.RequestBody区域填入请求body,如下图红色框框区域
6.点执行后,左边会话框,直接报:405错误
(405:用来访问本页面的方法不被允许)
7.经过分析可能是请求headers的问题
(fiddler工具在发送请求时,会默认自带出一个headers,但是此APP估计只支持手机端访问,做了限制,所以需要手动创建一个手机端请求的headers,由此可见headers的重要性了吧~)
8.添加手机请求的headers(模拟从手机客户端请求)
9.添加headers后重新execute
10.会话框显示200请求成功
11.查看请求结果response:JSON
12.此时服务器返回的是json格式,如上图(欢迎使用铁路12306)
五、手写一个Request
点开Raw区域,按如下格式填写就行了
六、在Web会话列表中拖拽一个已有的Request
总结:
经验丰富的测试人员,在测试的时候,都是会开启fiddler的,就是说我所有的操作,在fiddler上都有记录,这样做的主要目的就是对我的所有操作在fiddler上有记录,当发生错误的时候,可以随时查看是什么原因引起的错误,更重要的是开发老是叫你重现bug的时候,你就直接将这个请求丢给开发就OK了,减少了很多不必要的沟通,防止甩锅;
composer模块本身就可以进行接口测试,如果有接口技术文档,直接将内容填入此模块,点击执行就可以了,很方便,fiddler功能很强大,是测试人员必备工具的不二选择。
学习没有捷径,从小处着手,落到实处!才是真正的成功之路!