Macで貧弱なネットワーク回線を再現してスマホアプリをテストするTips

QAさんに口頭で伝えるのが大変そうだったのでブログエントリにする。

iPhone/AndroidアプリのQA時に貧弱なネットワーク回線を再現したいことがままある。そういうときは「Network Link Conditioner」と「インターネット共有」を使うと便利だよという話。

  1. Network Link Conditionerで速度を絞る
  2. Macを有線インターネット接続し、WiFiをアクセスポイントにする
  3. このアクセスポイントに任意のスマホをつなぐと低速回線が再現される

1. Network Link Conditioner

https://developer.apple.com/download/more/

から「Additional Tools for Xcode」をダウンロード。その時々で最新のものを選ぶと良さそう。今日時点でmacOS High Sierra (10.13.3) + Xcode 9.3用のAdditional Toolsで動作を確認。

f:id:fushiroyama:20180221120002p:plain

古いNetwork Link ConditionerはHigh Sierraで正しく動かないので注意。

 

展開。Hardware > Network Link Conditioner.prefPane をダブルクリック。

f:id:fushiroyama:20180221120110p:plain

 

こんな感じでSystem Preferencesに入る。

f:id:fushiroyama:20180221120132p:plain

 

任意のProfileを選んでONにするだけ。Profilesは帯域やパケットロスも含めて細かくカスタマイズ可能。

f:id:fushiroyama:20180221120134p:plain

 

2. インターネット共有

「共有する接続経路」に有線インターネットのデバイスを選択する。ここではUSBイーサネットアダプタを選択しているが環境によって読み替えて欲しい。

「相手のコンピュータでのポート」に「Wi-Fi」を選択して「インターネット共有」を有効にするとアクセスポイントができる。

f:id:fushiroyama:20180221120139p:plain

右下の「Wi-Fiのオプション」からSSIDとかパスフレーズとかを設定できる。

 

3. つなぐ

AndroidでもiPhoneでもなんでもつないでください。低速回線が再現されます。

f:id:fushiroyama:20180221120143j:plain

 

Androidも使える方法でもっと楽なのがあったら教えて。