关于抓包的原理和如何使用

一. 抓包工具部署与原理

1.抓包工具是什么?

charles,Fiddler等抓包工具是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具 。什么是包?什么抓包?什么情况下需要抓包?

:数据包。数据包就是指客户端发给服务端的请求信息以及服务器返回给客户端的响应信息。举个栗子:打开浏览器,访问商城,进行登录操作,那么登录时的用户名、密码等信息就是发送请求的数据包;那么登录成功后返回的界面显示的信息均是服务端返回的数据包,包括你的昵称,头像等等。

抓包:抓取数据包;也就是通过工具获取发送的请求信息或返回的数据信息。目的是分析数据包的内容与协议,从而来判断是否符合设计要求

什么情况下需要抓包:

判断一个问题是前端bug还是后端bug的时候

开发要你重现bug,截取数据,定位问题的时候

开发要你做接口测试,但又不没给你接口文档的情况

在不修改任何环境的情况下,修改返回的结果

对于App端的数据包,第一要保证手机与装有抓包的电脑处于同一局域网;第二需要对手机设置代理。详细包括:
1.配置代理为手动
2.配置host为电脑ip地址,可通过cmd—>ipconfig查看
3.配置对应的端口号
4.下载证书。charles为例:浏览器输入:chls.pro/ssl

二. 如何快速定位bug

一般界面上的像错别字/字体大小、按钮显示、输入框超出边界等问题,不要犹豫、不要徘徊,肯定是前端问题;
一个查询接口,输入查询条件后,界面上没有数据展示出来。如何去分析这个问题呢?

首先,确保数据库里有符合条件的数据。

然后,可以使用工具Fiddler抓包,总结下来,就是三步走策略:

找到对应的请求包→看请求信息→看响应结果

一、找到对应的请求包

怎么抓到目的包,也就是问题对应的包?

建议先停止抓包,并清除之前的记录,然后在客户端进行操作,这样Fiddler上抓到的基本上是当前操作的记录,然后再对抓包数据进行分析。

二、看请求信息

请求方式是POST时,信息分四部分,请求行、请求头、空一行、Body(GET请求是没有Body的)。Raw存放的是原始数据,其他的项是分析请求中的某一种数据。

// 抓包分析:

对照接口文档,看对应的接口有没有触发请求,如果没有请求(没有调用接口)或请求有问题,那就是前端的BUG。

三、看响应结果

HTTP响应主要由状态行、消息报头、响应正文(和消息报头之间空一行)组成。

// 抓包分析:

如果前端请求没问题,那么看响应。

先看响应的状态码,如果返回报错,看报错的状态码是什么,然后进行原因排查(参考公号“墨石测试攻略”中的这篇文章《接口测试常见的状态码》);如果状态码为200,表示响应成功了,要具体分析后端返回的报文。

根据接口文档,看前端传参是否正确,如果是前端传参不对导致后端返回错误,那就是前端问题;如果传参正确,后端处理不正确,那可能就是后端问题。

如果后端响应了且数据和接口文档一致,那就是前端展示的问题。

如何快速定位bug归属?

面试常见问题:

测试过程中的bug,你是怎么判断bug是前端问题还是后端问题?

测试过程中你是怎么复现bug,并提供数据,辅助开发定位和解决问题的?

领导给你安排接口测试的工作任务,但是没有给你接口文档,你会怎么开展测试工作?

快速找到对应操作的请求

排除法:通过host来排除,host这一列,不是访问网址的域名信息,全部删除。
学会用ctrl+f快速搜索:是复现问题时,从UI界面输入的数据,那么在此请求中是一定包含。

分析请求数据,判断Bug

没有抓到请求信息,可能是前端页面元素没有绑定事件,也有可能是前端发生了JS 错误,一般就是前端的bug 。

抓取到的请求但是返回的结果错误,首先确认一下,是否是前端传输的数据是错的,数据错误则是前端的bug ,数据正确,一般就是后端的bug。

抓取到的请求,其返回值的HTTP状态码是500(5xx),说明是后端服务器的内部错误,一般就是后端的bug。

抓取到的请求,其返回值的HTTP状态码是404(4xx),说明请求错误,如果确定请求地址、参数没有问题,一般就是前端问题。

三. 网络协议

抓包实际上是分析网络协议的一种过程,尽管繁琐的细节劳动都让抓包工具做了,但我们还是需要了解基础的网络协议,好帮助我们更好地分析问题。

首先需要了解下经典的OSI七层网络模型,以及每层的作用,其次对TCP、HTTP协议简单了解。详细可参考大学期间计算机网络的内容。

HTTPS与HTTP有什么不同?

HTTPS是基于HTTP协议的一种改进,在TCP之上的会话层增加安全处理。对于应用层来说,HTTPS和HTTP没有什么不同,也就是说,HTTPS是保证网络传输的安全性,对业务数据无侵入。

SSL和TLS是保证安全传输的协议,包括证书认证、加解密和数字签名。(TLS的产生是为了让SSL更安全,使协议更加精确和完善。 TLS在SSL3.0基础上增强了其他内容。 它们的最主要的差别是所支持的加密算法不同,TLS和SSL3.0不能互相操作,TLS相当于SSL 3.1 TLS的记录格式与SSL一样,但版本号不同,TLS的版本使用的是SSL 3.1。 TLS就是以3.0为基础定义的。)
在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊啊啊杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值