全网最详细的Python+Requests接口测试教程:Fiddler抓包工具

本篇涵盖内容:fiddler、http协议、json、requests+unittest+报告、bs4、数据相关(mysql/oracle/logging)等内容。
文章是针对零基础入门接口测试和python+requests自动化的,首先本书确实写的比较基础,对基础内容也写的很详细,所以大神绕道。

为什么要先学fiddler?

学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始。
结合抓包工具讲http协议更容易学一些。

1.1 抓firefox上https请求

fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。
一、网页不安全
1.用fiddler抓包时候,打开百度网页:https://www.baidu.com
2.提示:网页不安全

二、fiddler设置

1.打开菜单栏:Tools>Fiddler Options>HTTPS
2.勾选Decrypt HTTPS traffic,里面的两个子菜单也一起勾选了

三、导出证书
1.点右上角Actions按钮
2.选第二个选项,导出到桌面,此时桌面上会多一个文件:FiddlerRoot.cer,如图。

四、导入到firefox浏览器
1.打开右上角浏览器设置》选项》高级》证书》查看证书》证书机构》导入

 2.勾选文件导入

3.打开文件后,会弹出个框,勾选三个选项就完成操作啦。

如果还不能成功,那就重启浏览器,重启电脑了。

1.2 证书导出失败问题

前言
在点Actions时候出现Export Failed:The root certificate could not be located.最近有很多小伙伴在fiddler导出证书的时候,遇到无法导出的问题,收集了几种解决办法,供参考。
 
一、证书无法导出
1.在点Actions时候出现Export Failed:The root certificate could not be located.

二、无法导出问题解决方案
1.首先确保安装的 Fiddler 是较新的版本,先关闭fiddler
2.下载并安装Fiddler证书生成器

下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
3.点Tools>Fiddler Options
4.勾选Capture HTTPS traffic
5.点Actions按钮,Export Root Certificate Desktop按钮导出到桌面
 
三、删除证书
1.有些小伙伴可能之前装过一些fiddler证书,安装的姿势不对,导致新的证书不起作用,这时候需要先删掉之前的证书了
方法一:从fiddler里打开证书管理界面
方法二、从文件管理器输入:certmgr.msc并回车

2.搜索之前安装的fiddler证书,找到之后全部删除
3.重新下载证书生成器:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
一路傻瓜式安装,遇到警告什么的直接忽略就行。
4.安装好证书后,按照1.1章节Fiddler抓包1-抓firefox上https请求的浏览器导入证书就行了(弄好之后,重启电脑就OK了)

1.3 只抓APP的请求

前言
fiddler在抓手机app的请求时候,通常也会抓到来自PC的请求,导致会话消息太多,那么如何把来自pc的请求过滤掉,只抓来自APP的请求呢?
必备环境:
1.电脑上已装fiddler
2.手机和电脑在同一局域网
 
一、设置
1.fiddler>Tools>Fiddler Options>Connections 勾选Allow remote computers to connect。

2.记住这里的端口号:8888,后面会用到。

二、查看电脑IP
1.打开cmd,输入:ipconfig,记住这个IPv4地址。

>>ipconfig

三、设置代理

1.手机设置->WLAN设置->选择该wifi,点右边的箭头(有的手机是长按弹出选项框)。

2.选择修改网络配置:
配置主机名:与主机电脑IP地址保持一致
端口号:8888
3.保存后就可以抓到来自手机的请求了。

四、抓APP上的HTTPS请求

1.如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时候手机就需要下载证书了。
2.打开手机浏览器输入:http://10.224.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址。
3.出现如下画面,点箭头所指的位置,点击安装就可以了。

五、设置过滤
1.手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了。
2.打开fiddler>Tools>Fiddler Options>HTTPS>...from remote clients only,勾选这个选项就可以了
...from all processes :抓所有的请求
...from browsers only :只抓浏览器的请求
...from non-browsers only :只抓非浏览器的请求
...from remote clients only:只抓远程客户端请求

(注意:如果手机设置代理后,测完之后记得恢复原样,要不然手机无法正常上网。)

回到顶部

1.4 查看get与post请求

前言
前面两篇关于Fiddler抓包的一些基本配置,配置完之后就可以抓到我们想要的数据了,接下来就是如何去分析这些数据。
本篇以博客园的请求为例,简单分析get与post数据有何不一样,以后也能分辨出哪些是get,哪些是post了。
 
一、get请求
1.打开fiddler工具,然后浏览器输入博客首页地址:http://www.cnblogs.com/yoyoketang/

2.点开右侧Inspectors下的Headers区域,查看Request Headers

3.Request Headers区域里面的就是请求头信息,可以看到打开博客园首页的是get请求

二、post请求

1.打开登录首页:https://passport.cnblogs.com/user/signin
2.输入账号和密码登录成功后,查看fiddler抓包的请求头信息,可以看出是post请求

三、如何找出需要的请求
1.打开fiddler后,左边会话框区域刷刷刷的很多请求,那么如何有效的找出自己需要的请求呢?
2.首先第一步:清屏(cls),在左下角命令行输入cls,清空屏幕
(清屏也可以使用快捷键Ctrl+X)

3.第二步在浏览器输入url地址的时候,记住这个地址&

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
好的,我可以为你介绍一下如何搭建基于PythonRequests的接口测试框架。 1. 安装PythonRequests库 首先需要安装PythonRequests库。可以从Python官网下载Python安装包,并使用pip安装Requests库: ``` pip install requests ``` 2. 创建测试用例 在搭建接口测试框架之前,需要编写测试用例。一般来说,测试用例应该包括以下内容: - 接口请求URL - 请求方法 - 请求参数 - 预期结果 以下是一个简单的测试用例示例: ``` import requests def test_get_user_info(): url = 'http://example.com/user_info' params = {'user_id': '123'} response = requests.get(url, params=params) assert response.status_code == 200 assert response.json()['user_name'] == 'Alice' ``` 在这个测试用例中,我们定义了一个名为`test_get_user_info`的函数,用于测试获取用户信息的接口。其中,我们使用Requests库发送了GET请求,并断言响应状态码和响应结果是否符合预期。 3. 编写测试框架 接下来,我们需要编写测试框架,将测试用例组织起来,并执行测试。 可以使用unittest或pytest等测试框架来编写测试用例。以下是一个使用unittest的测试框架示例: ``` import unittest import requests class TestUserInfo(unittest.TestCase): def test_get_user_info(self): url = 'http://example.com/user_info' params = {'user_id': '123'} response = requests.get(url, params=params) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['user_name'], 'Alice') if __name__ == '__main__': unittest.main() ``` 在这个测试框架中,我们定义了一个名为`TestUserInfo`的测试类,其中包含了一个名为`test_get_user_info`的测试方法,用于测试获取用户信息的接口。在测试方法中,我们使用Requests库发送了GET请求,并使用assertEqual方法断言响应状态码和响应结果是否符合预期。 最后,我们通过运行`unittest.main()`来执行测试。 4. 执行测试 编写完测试用例和测试框架之后,我们可以直接运行测试框架来执行测试: ``` python test_framework.py ``` 如果所有的测试用例都通过,那么测试框架的输出应该是类似于以下的信息: ``` Ran 1 test in 0.001s OK ``` 这就是基于PythonRequests的接口测试框架的搭建过程。当然,这只是一个简单的示例,实际的测试框架会更加复杂,需要根据具体的项目需求进行不同的设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值