Charlesでネットワークデバックの感想

kameike
3 min readSep 2, 2018

--

https://speakerdeck.com/kumamotone/charles-denetutowakudebatugingu の感想 のメモと感情を書きます。

@kumamo_toneさんのトークです。

kameikeの事前状態

  • ネットワークデバックはdevサーバーにsshして、logをtailして見ていた。
  • ただログにjsonが全部あるわけでもない一方、apigateWayで型チェックしたりしているからまぁそんなに心配事がない環境にはいた
  • iOSだと適当にlogを出していた
  • headerの確認とかやろうと思うと色々と書かないといけなかった。

Charlesはここが便利のメモ

APIコールは、いろいろデバック方法があるのですが、ヘッダの情報等つらい時があるよね? Proxyで情報を取るようにすると、問題の切り分けに役立つ。APIサーバーなのかパース中のものなのかがわかって良い。あとスタブできるようになったりもよさそう。確かに〜

色々な機能のメモ

  • ネットワークデバックがよりやりやすくなる。
  • 特定リクエストを他に転送したり
  • HTTP2, ProtocolBufferとかにつかる。
  • 半手動クローリングとかにも便利

競合

mitmproxyはcli, python製のOSS

設定方法

SSL Proxyをいれてなんとかするとなんとかなる。スライドの末尾に導入方法書いているらしい神

こんなときに便利のメモ

通信、サーバーの挙動を確認したい時

リクエストを確認する、リクエストの状況を見る際に使える よしななフィルターが可能。

  • リクエスト内容をいじって再度リクエストを送ることができる。
  • jsonをパースしてくれる

アプリの挙動を確認したいとき

例えばメンテナンスモード等を出すようにするには… サーバー側に手を回せない時に例えば、値を差し替えたり等できる

  • MapLocal: ローカルのファイルを置き換えるモックができる
  • BreakPoint: インタラクティブに編集できる。(timeoutの設定をいい感じにしておく必要がありそうとのこと)
  • Rewrite: 通信を書き換えるルールを付与できる。正規表現等でいける

感想・やっていき

  • サーバーにカジュアルに触れる環境にいたので、局所最適解に陥っている気がした。便利そう
  • とりあえずダウンロードしてみました。brew cask install charles
  • 明日以降の開発で色々とためしてみよう

--

--