写在前面
不用我多介绍,做过测试的都知道,测试必须会的几个技能,
- 模拟发送请求
- 拦截请求或者响应
- mock数据
- 数据库
如果不会这几种,可能就不是一个合格的测试工程师了,提到这些,我不得不联想到抓包的使用,抓包作为测试必会的技能之一,当然在面试中也会经常被问到,所以今天我们来看下这个问题怎么回答?
分析
这个问题可以有多种问法,例如:在无法判断前后端问题时应该怎么处理?抓包平时用的多吗,都在什么时候用到呢?我们如果遇到这样的问题都可以归类成一种,这个问题可以从几个方面来回答
- 抓包应用场景
- 抓包的目的
- 怎么抓包
从这几个角度去描述问题,会显现出面试者 回答问题全面,回答有条理,对技能掌握的熟练等
回答
平时在工作中,有很多场景能使用到抓包工具,如:
- 测试执行后检查传输的数据是否正确
- 定位前端还是后端问题
- 进行弱网测试
- 安全测试 - 数据是否有加密,数据mock
利用抓包工具可以有效的定位或解决以下问题
- 找到请求数据,检查传输是否正确
- 定位出前后端问题
- 模拟手机弱网测试
- 接口加密和接口mock
实际工作过程中,不同的测试应用有不同的抓包工具
- web 项目一般用浏览器自带的开发者工具
- app 项目可以用 fiddle charles wiresark whistle
- web 直接用f12 即可,app 进行代理连接,安装证书,选择同一网段下的网络
- 微信小程序
- 由于微信7.0 禁止安卓手机抓包,需用iOS手机进行抓包或者微信降级
题外话
现在的抓包工具有很多,相信很多测试都不知道怎么选择,这里给大家一些题外建议
- 由于我们大部分时间工作在osi 七层模型中的应用层,所以主要关注http 协议或者 websocket 协议
- 如果是tcp udp 协议可以选择wiresark
- 如果是http 或者websocket 可以选择fiddle 、charles、 whistle
- 这三款怎么选呢, fiddle 应用在windows 电脑上(现在也有fiddle for mac 也非常好用,大家可以试试),charles 应用在mac 电脑,功能全面且强大。
- 但是我想推荐的还是 whistle,因为这个工具操作简单,更适用于新手,web 界面,不要求系统,
- 如果是python 抓包,推荐mitmproxy ,也非常好用,有些公司利用这个工具开发出了好多测试工具,有兴趣的可以了解下。
- 这里只做了推荐,没有做讲解,如果大家有需要我可以出一篇whistle和推荐mitmproxy抓包的教程。
写在最后
我是小巴哥,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!!