チャールズ・チュートリアル

私たちは、ウェブサイトのプロジェクトを開発したとき、我々はモバイル側のプロジェクトページそれを開発していない場合、我々はその後、モードブラウザビューの要求と応答データをデバッグすることができますか?どのようにデータをつかむには?

 

 

数日前にオンラインサービスは、その後、どのように調整しなければ若いが、彼はツールをキャプチャしていないことを私に言ったサーバは、直接、コードのデバッグの問題は、私は彼に尋ねなければなりませんでしたか?実際のプロジェクトでは、クライアントがお互いの事で口論に遭遇していませんか?私は彼がクライアントに疑問をしていないと述べ、サーバはまた、彼は問題を抱えている最後に、全く問題がなかったと述べ、それがああ、正常であると思いますか?この時点でお互いを回避する必要がなく、発言してデータを取ることが重要です。何を行うには、パケットキャプチャツール?これは、クライアントのデータ、および問題の包囲ライオン分析のためにダウンし、サーバそのままクロールから返されたデータを要求します。だから、問題の最初の分析では、トラッキングコードのデバッグで最も重要なのではなく、1つのアップです。

 

 
 

 

チャールズ

 

    チャールズは、すべてのデータが送受信され、この手順を監視することができ、エージェントはインターネット接続チャールズにアクセスする際、HTTPプロキシ、HTTPモニター、リバースプロキシです。これは、これらの要求が含まれ、開発者は、インターネットへのすべてのHTTPトラフィックの接続を表示することができ、

応答とHTTPヘッダ(クッキーを含む情報をキャッシュ)。

 

チャールズ主な特長:

 

1.サポートSSLプロキシ。分析のSSL要求を傍受することができます。

2.支援フロー制御。そして、あなたは、低速ネットワーク遅延(レイテンシ)長いリクエストをシミュレートすることができます。

3.サポートAJAXのデバッグ。簡単に鑑賞するために、自動的にJSONまたはXMLデータ形式ことができます。

4.サポートAMFデバッグ。あなたは、見やすいようにフォーマットリモーティングまたはFlexリモーティング情報をフラッシュすることができます。

ネットワークは、再送要求、デバッグを容易にするための後端をサポートしています。

6.サポートネットワーク変更のリクエストパラメータ。

7.サポートネットワーク要求を傍受し、動的に変更します。

8.チェックHTML、CSSやRSSコンテンツは、W3Cの基準を満たしています。

 

 
 

チャールズ・インストール:

 

    適切なオペレーティングシステムは、チャールズ(http://www.charlesproxy.com)チャールズ・インストールパッケージの最新バージョンをインストールすることができるの公式ウェブサイトをダウンロードします。

 

    チャールズは課金ソフトウェア、30日間の無料試用版です。試用期間の後、非支払うユーザーが使用し続けますが、毎回ではない30分以上、および起動時に10秒の遅延が発生しますことができます。

 

    そのため、ユーザーの大多数のための支払い方式は、あなたが完全なソフトウェア機能を使用することができ、また、長期のために払っていない場合でも、まだかなり友好的です。あなたがパケットをデバッグするのに長い時間を必要とするときだけチャールズはインパクトが発生したため閉鎖を余儀なくされます。(密かに、公共の番号返信「チャールズ」ひび割れ取得バージョンのダウンロードリンクをあなたに伝えます)

 

チャールズは強力ですが、我々はここだけで一般的に使用されるいくつかの非常に便利な機能です。

 

    1.システムエージェントチャールズ提供

    図2は、モバイルネットワーク要求パケットで撮影します

        2.1マニュアル再送要求(繰り返し、高度なリピート)

        2.2シミュレーションマニュアル要求(作曲)

        2.3ネットワークの要求内容(作曲)を変更

    3.フィルタ・ネットワーク要求

    4.転送エージェント

    キャプチャサポートHTTPS要求(設定された場合、またはキャッチ、以下のソリューション)

 

チャールズはそれぞれ「構造」と「シーケンス」と呼ばれる2つの視野パケットビューを提供しています。

 

    1.構造は、ネットワークドメインへのアクセスに応じて分類要求を表示します。

    ネットワークアクセス要求時間によってソート2.シーケンスビュー。

 

 
 

これらは、設定するには、どのように1つずつ使用することを紹介します

 

A.ザチャールズは、システムエージェントに設定されています

 

チャールズは、チェックシステム・エージェントの取り込みを完了するために、プロキシサーバーとして自身によって提供され、ローカルシステムに発行された要求は、ダウン撮影することができます。唯一のAPP福袋場合、それはこの設定をオフにすることができ、これはあまりにも多くのデータを見ない混沌としました。

 

マック

 
 

Windowsの場合:

 

 
 

    ChromeとFirefoxブラウザは、システムのデフォルトのプロキシ設定を使用していない、ということに注意してください、とチャールズ

パケット傍受を完了するために、プロキシサーバーとして自身を設定することで、それがデフォルトChromeとFirefoxので傍受することができません

ネットワーク通信コンテンツブラウザ。あなたが傍受する必要がある場合は、プロキシサーバーの設定に直接Chromeで、システムのプロキシ設定を使用するように設定しますか、

127.0.0.1:8888 也可达到相同效果。

 

二. 截取移动设备上的网络请求包

 

我们在调试移动APP时,需要抓取APP发送的数据包,首先进行设置,Proxy -> Proxy Settings默认端口是8888,根据实际情况可修改。

 

 

 
 

 

查看本机IP地址:Help -> Local IP Addresses

 

 

 
 

 

然后配置手机代理:

 

IOS和Android配置差不多

 

 

 
 

 

打开要调试的APP,请求就会先发送到Charles,然后验证是否允许访问。

 

 

 
 

 

当点击允许后,可以在Proxy -> Access Control Settings里看到可以访问此代理服务器列表

 

 

 
 

 

注意

如果不小心点击了拒绝,可以手动添加手机IP/Mac地址到允许访问列表,或者重启Charles,手机再次访问,会再次提示选择。

如果不想每换一个手机都要进行验证,可以配置允许所有手机访问,加入

0.0.0.0/0(IPv4)或::/0(IPv6)

现在就可以抓包了,拿一款我们公司开发的乐视车联APP来做测试:

 

 
 

 

 

 
 

 

 
 

 

三. 过滤网络请求

 

通常情况下,网络请求是非常大量的,从几十个请求里找到我们需要的观察的某个请求比较费时,那么我们就需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。有两种方法:

 

1. 在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:*.leautolink.com,那么只需要在Filter栏中填入leautolink即可。(一般用于临时过滤)

 

 
 

 

2. 在Charles的菜单栏选择"Proxy"->"Recording Settings",然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:(固定过滤地址)

 

 
 

 

四. 代理转发

 

 

 实际开发时,有这样的场景,服务端线上版本有bug,你在本地修改程序后,需要模拟实际的线上环境,来验证程序的正确性,最笨的方法就是让客户端修改一下APP的调用地址到你本机,然后重新打一个版本供你模拟测试,这样虽然可以,但每次遇到bug都要这么做的话,那效率极其低下,然而Charles为我们解决了这个问题。

 

请求转发,把调用方调用的地址转发到你本机地址的程序进行执行。

右键 -> Map Remote ...

 

 
 

 

 
 

 

并且配置Tools -> Map Romote

 

 
 

 

运行APP

 

 
 

 

五. Https请求抓包

默认我们是看不到https的请求数据的。我们需要安装证书。

 

 
 

 

 
 

Mac:

 

 
 

 

 
 

双击打开Charles Proxy CA

 

 
 
 
 

 

 
 

 

手机配置完代理(必须的操作)后,浏览器打开http://chls.pro/ssl

 

 

 
 

 

 

 
 

 

然后配置Proxy -> SSL Proxying Settings... 添加要抓取的https请求

 

 
 

 

然后再次请求:

 
 

 

如果不再使用Charles,想删除手机里的证书文件怎么删除呢?

设置->通用->描述文件与设备管理,删除指定的证书即可

 

 
 

Windows:

 

 
 

 

 

 
 

下一步

 

 
 

 

然后继续下一步直到导入成功。

 

 
 

剩下的配置与Max下配置相同

 

SSL的问题:

 

    最近iPhone系统更新到ios

10.3后,用Charles抓包竟然出现了一些问题,https的请求都会失败,提示错误信息为Failure SSLHandshake:

Received fatal alert: unknown_ca 和You may need to configure your browser

or application to trust the Charles Root Certificate.

然而之前任何问题都没有,并且相关设置都正确:电脑上安装了Charles的根证书,并且设置了始终信任,然后手机上也登录了http://chls.pro/ssl安装了描述文件,一切都按正常程序走的,但是错误始终无法解决.

 

原因:

    虽然charles的根证书已经在安装列表中显示,但它是被关闭的。在iOS

10.3之前,当你将安装一个自定义证书,iOS会默认信任,不需要进一步的设置。而iOS

10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。

 

解决:

设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.

 

 

 
 

Windows系统无法上网的问题

 

    在windows下,如果Charles没有正常关闭,或者系统重启后无法上网的问题,因为Charles做了系统代理,当上网的时候,首先先访问代理服务器,然后代理再去链接网络,这时候Charles是非正常关闭的,只要重新打开Charles即可上网正常,正常关闭Charles后同样没问题。

 

写给测试人员的

 

    另外抓包工具不只是开发人员独享的,任何一个参与项目的人都可以使用,测试工程师,运维,产品经理等等任何对技术感兴趣的人,尤其是测试工程师,在测试的过程中遇到问题,不是简单的bug记录员,而要做到问题的分析员,这才是真正的“工程师”,当bug真正的到开发这的时候,他拿到的是不仅仅是bug,包含了分析过程,分析的数据,甚至是解决方案。我觉得这才是标准工作方式。

 其他学习资料:https://www.cnblogs.com/ymfdcome/p/6847315.html

转自:https://www.cnblogs.com/jiayuchn-test/p/8875105.html

转自:https://www.jianshu.com/p/08ce87f4c44d



著者:MR_LiYの
リンクします。https://www.jianshu.com/p/d0a5e6986445
出典:ジェーン・ブック
著者によって予約ジェーンブックの著作権、いかなる形で再現され、承認を得るために、作者に連絡して、ソースを明記してください。

おすすめ

転載: www.cnblogs.com/dreamhighqiu/p/10990106.html