Charles工具使用

抓包测试:

将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

抓包工具介绍:

  • Chrome/Firefox 开发者工具: 浏览器内置,方便易用
  • Fiddler/Charles: 基于代理的抓包,功能强大,可以手机抓包,模拟弱网,拦截请求,定制响应
    • Fiddler: 免费,只支持Win
    • Charles: 收费,支持Win/Linux/Mac
  • wireshark/tcpdumps:给予网卡层的抓包,数据量大,可以抓取tcp/udp等多种协议的数据包(需要做好过滤)
    • wireshark: 支持Win/Linux/Mac
    • tcpdumps: Linux抓包命令,功能强大,常用作服务端抓包

原理:

模拟代理服务器

客户端-->代理服务器-->服务端

服务器-->代理服务器-->客户端

主要用途:

1、断请求,断响应

2、定位bug

3、模拟弱网

4、抓取请求,转换成jmx文件进行压测

常见使用场景:

1、移动端验证 :协助定位bug、模拟弱网,进行弱网测试

2、断响应:修改返回结果,达到验证目的

3、mock local :修改返回数据,达到验证目的(常用来修改大量数据)

重点是给大家提供一个思路,在某些情况下,可以通过抓包工具修改返回参数以达到验证目的

1、安装&破解(推荐使用稳定版本:v4.1.4)

官方下载地址:Download a Free Trial of Charles • Charles Web Debugging Proxy

破解方式:

help-->register charles

* https://zhile.io

* 48891cf209c6d32bf4

关闭防火墙!!!

2、抓取http请求

** 设置charles允许代理 proxy-->proxy setting -->勾选enable....

HTTP与HTTPS

HTTP协议传输的数据都是未加密的,HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。


HTTPS和HTTP的区别

HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。

HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

HTTP的连接很简单,是无状态的;HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

3、抓取https请求

*安装CA证书

安装证书到电脑,并且信任证书:

help-->ssl setting-->install charles .... certificate

*信任证书:打开ie浏览器(C:\Program Files (x86)\Internet Explorer)

设置-->internet选项-->内容-->证书

如果在受信任证书找不到charles证书,去中间证书颁发机构里面找到,导出到桌面再去受信任里面导入

* 设置charles抓取https连接

proxy-->ssl proxy setting-->勾选enable ssl proxy(允许ssl代理)

add-->*:*

4、过滤

  • 抓取固定网址:proxy-->recording settings-->Include

  • 过滤图片、js、css文件等: Proxy-->Recording Settings-->Exclude

  • 针对性过滤,搜索 Filter

4断点

proxy-->breakpoints setting -->enable breakpoints(允许断点)

  • 断请求 编辑JSON Text-->Execute

  • 断响应 编辑JSON Text-->Execute

5弱网测试

* 原理:限制带宽

proxy-->throttle setting-->勾选enable throttle-->only for select hosts(只限速选中的主机路径)

6、抓取请求,转换成jmx文件进行压测

*Fiddler导出为saz格式

*Charles导出为chlsj格式

FiddlerCharles2Jmeter.exe (Charles版本推荐使用稳定版V4.1.4 V4.6.2版本太高此工具不太适配,会出现没有请求参数的情况)

7、移动端抓包

与PC端抓包基本一致,需要在手机上安装CA证书并进行认证。

需保持手机和电脑在同一网络。

手机上访问chls.pro/ssl地址下载安装证书

如果安装不上:

* 把电脑上的charles证书导出,发送到手机上,手动从文件中安装证书

8、将某个线上的js代理到本地的文件

 右键选择Map Local

 然后choose 对应的本地文件即可

9、将某个线上的接口请求代理到本地服务