600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 接口测试中抓包工具的使用-charles

接口测试中抓包工具的使用-charles

时间:2022-09-10 10:35:21

相关推荐

接口测试中抓包工具的使用-charles

接口测试中抓包工具的使用

在被测接口并没有明确的接口文档给出时,我们需要借助抓包工具来帮助测试,利用抓包工具我们几乎可以获得接口文档中能给你的一切。常见的抓包工具有Charles和Fiddler, Fiddler只能用在Windows平台, 而Charles可用于Windows, Mac, IOS和Android多平台。下面就总结一下Charles的用法。

标题下载与破解

Charles下载地址

地址:/latest-release/download.do

Charles破解

破解地址:/mytools/charles/

生成jar文件后,放到charles安装目录的lib目录下

3. 此时,重启charles,查看已经破解。

Web抓取:

Charles配合PC平台的抓取很简单,打开Charles确定它已经开启了录制的状态,随便在浏览器上面操作你的网页所访问到的接口就都会被Charles抓到,想哪个,打开看即可,Request,Response,Headers,Cookies等应有尽有。

修改请求或返回值:

有时候我们需要修改请求或返回值来配合测试,Charles可以方便地帮你实现。在请求中,Charles可以做中间的编辑工作,原理如:

操作如下:

右击需要被修改请求,选择Breakpoints;

再次执行该请求时请求被发出后中断,你可以在Edit Request窗口对请求做你想要的修改,然后点击Execute继续发送请求,如果不需要改Request只想改Response的话可以在此直接点击Execute按钮;

请求发出,服务器处理后返回Response,这时服务器返回的Response被中断;你可以在Edit Response窗口做你想要的修改,在点击Execute按钮把修改后的Response返回给客户端。

操作后你可以取消对Breakpoints的勾选,再执行时该请求就不会被中断了。

筛选你关注的请求

Charles抓取到的请求量很大,有时候你想找到你关注的某一个请求如大海捞针,如何筛选你关注的请求呢?Charles有两种视图,Structure和Sequance,

Structure视图是默认的,它展示的是按结构来组织的请求,通过结构你可以逐步锁定你关心的请求所在的范围直到找到它;Sequance视图下,你可以在Filter区域写入关键字来过滤出你关心的请求,这种办法更加直接快捷。

移动端App抓取

1、在电脑上安装证书

1.1打开charles,点击help

1.2不要选择自动,选择第二项,进入下一步,如下图所示:

1.3选择受信任的企业,不选择个人和不受信任的证书,才可抓取,如下图所示:

1.4接下来检查证书是否安装好,安装好的话接下来我们来安装移动设备。

在移动设备上安装证书,首先点击proxy—>proxy settings…端口修改为8888,如下图所示:

1.5然后我们查看ip地址,这样在手机上才可以添加ip地址和端口号.点击help——local ip addresses,如下图所示:

2、手机代理的设置

2.1要保证移动端和Charles处于同一局域网内(笔记本和手机同一个wifi,或者笔记本开热点,手机连笔记本的热点),然后点击手机连接的WIFI,点击“配置代理”,设置手动,服务器和端口号与上述1.5中charles中配置的一致,设置完成后要检查是否正确,如下图所示:

2.2以上设置完成后,手机和电脑就完成了链接,这时charles会有一个弹框然后Charles会弹出确认提示框,这时候选择‘Allow’即可,如下图

3、安装手机证书

注意1:有兄弟姐妹说Safari浏览器输入这个网址chls.pro/ssl安装不了证书的情况,

亲测要(1)设置好手机HTTP代理 (2)电脑上Charles要开着

注意2:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书

3.1手机下载证书:

点击Charles中的 help-ssl proxying-install Charles…,然后弹框,确认一下手机设置的代理地址,点击确定,在在浏览器中搜索 chls.pro/ssl

,下载证书

需要在和电脑同一wifi环境下 最好电脑开热点,手机连电脑的热点 ,在手机Safari浏览器输入地址 chls.pro/ssl,点击搜索,出现弹框,出现证书安装页面,点击安装

手机设置有密码的输入密码进行安装

然后在手机浏览器中输入地址:chls.pro/ssl 点击搜索,出现弹框

3.2点击允许,继续出现弹框

3.3然后在手机“设置”中,出现“已下载描述文件”,点进去,进行安装

3.4然后进入手机:设置-通用-关于本机-证书信任设置-选中新下载的证书,滑到信任 然后弹框

点击继续。就可以抓取到手机上的信息

4.抓取https信息:

点击chales 中proxy——SSL proxying settings——设置通配符 * *,如下图所示

![(https://img-/1106171124762.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzMwMjI3MzEz,size_16,color_FFFFFF,t_70)

通过以上配置,此时手机和电脑设置完毕,我们可以截取https的网络封包。

charles的工具栏介绍

手机连上代理之后,每在手机上进行操作我们便会在charles上接收到请求。此时的charles页面将会变成如下密密麻麻的内容,故这节课我们来讲解一下Charles的主页面

红色区展示的是我们抓取的所有的请求,点击+之后便可以展开该host 域名下的所有请求。点击请求之后即可在黄色区域看见该请求所对应的相应内容。

导航栏右边的sequence是请求展示的另一种形式。其实内容都是一样的,只不过将所有的请求按照时间排序展示,不再是分域名展示。

三:黄色区(在绿色区指定的某一个api的请求内容)

黄色区展示的是某一制定请求的请求内容,可以切换导航栏查看请求的各种详细情况。例如:请求响应时间,请求头,请求详细内容,请求体等各种情况。

首先我们来看一下常用的几个选项:

Overview:会展示该请求的一个大体情况,例如:请求头,请求响应结束时间,请求开始时间以及自己的notes等

content:如上图所示的该请求的具体内容和服务器的相应内容(配合下面的导航栏进行查看该请求的具体内容header,cookies&&选择呈现方式form,raw)

summary:也是展示一个该请求的大体资源分布情况。例如:服务器响应了多长时间,host是什么等等

chart:以表格形式告诉我们一个响应时间的分布情况。

notes:已经很清楚了,点击之后自己可以对该请求记录一些东西,方便后续查看该接口的用途,可在overview中查看,如下图所示

实现功能

注意:在做断点的时候,保证是红点是亮的状态,并且断电标志六角形也是亮的,当不需要再对此做断点的时候,一定要取消选中的breakpoints

对已有请求做断点,选中要修改的请求–>右键–>BreakPoints (左面出现对勾表示设置成功)。设置完成后,Charles再次抓取到该请求时会自动进入到调试模式。

然后再次手机请求,或者直接点导航栏的“刷新”图标,等于再次请求了这个接口

注意:

工具栏中的刷新按钮 ,也会再次请求选定的请求,但是,不会在手机端展示修改的内容,想要看手机端界面显示的修改之后的内容,必须手机端再次请求改接口

###1、打断点,修改请求和响应

请求之后会进入断电点界面,可以修改url和入参,已经请求方式,修改之后,就可也点击右下角的“Execute”按钮,生成新的请求

请求报文发送成功后,Charles会拦截服务器返回的数据,这里可以通过Edit Response修改返回数据,或者Execute进行下一步

###2. 压测功能

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下。

我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。

3、限速测试(模拟网速)

有时测试需要限制网速,在Proxy->Throttle Settings中配置,然后再Proxy->Strat Throttling或工具栏上小乌龟的图标开启或停止限流

4.模拟请求做mock,使用断点、Map或Rewrite

第一种情况:只想验证一下server端的请求和结果(不能回显到PC或APP的)—工具栏“编辑”按钮

直接在选中请求,点击控制栏上的编辑,然后修改请求后执行即可

第二种情况:app或PC端需要等待server的数据返回—断点、Map或Rewrite

这种情况直接用上面那种方法是不能回显到PC或APP的,可以通过打断点的方式,或通过Map Remote/Map Local重定向来获得结果

A:通过打断点的方式:

Session上右键选择Breakpoints,或者通过顶部工具栏的Proxy->Breakpoints Settings来管理断点的请求,需要点开导航栏上的开启断点(Disable Breakpoints)才可以生效断点

当再有符合断点规则(Host、Path、Query)的请求过来时,会自动进入断点页面,断点分为两部分:

1.请求发到服务器前,此时可以修改request的入参等信息

2.服务器返回的数据返回给终端(APP或PC)之前,此时可以修改response的内容

B:通过Map Remote

Map Remote重定向到另一个请求的返回值当做自己的返回值

可以在Session上右键Map Remote设定规则,或Tools->Map Remote来管理所有Map Remote(勾选Enable Map Remote才会启用),手机端再次请求这个接口的时候,就会展示修改后的求情的返回

请求可以使用通配符*等来匹配,Map To可以是一个接口请求,可以是一个远程文件(js或html文件等)

C:通过Map Local

Map Local使用本地一个文件的内容作为返回值

可以在Session上右键Map Local设定规则,或Tools->Map Local来管理所有Map Local(勾选Enable Map Local才会启用)

C-1、选中需要修改返回值的请求,保存返回结果

右键-save response ,然后把文件保存

C-2、tools-Map location

C-3、再次请求这个接口,请求成功之后,可以看到,结果已经是更改后的结果

过滤host

目的:可以添加host,这样的话,就会把需要的host给过滤出来,剩下的请求在Other Hosts中展示(当不知道请求的是哪个地址的时候,可以看charles页面,某个请求变黄的话,就证明请求的是那个地址)

View-Focused Hosts 然后添加需要查看的网址

如果不删除的话,会一直存在,想要删除的话,就进入上面添加时候的路径,选中需要删除的地址,点击“remove”按钮,所以建议使用的是请求栏处的Filter,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。