🤖
ネットワークが劣悪な環境を再現する方法
目的
アプリケーションが通信に失敗した際のテストを行いたい
例. 「通信に失敗した場合に再取得ボタンが表示されること」など
方法1. Chrome DevTools を使う
https://developer.chrome.com/docs/devtools/network/reference?hl=ja#throttling
任意の設定を追加して使用することができる
メリット
- PCとモバイルデバイスの両方で使用可能
- 新規にアプリケーションをインストールする必要が無い
デメリット
- パケロス率などを設定できない
- Android, iOS のネイティブアプリでは使用できない
方法2. Network Link Conditioner を使用する
Network Link Conditioner は Apple が提供しているネットワークユーティリティツール
使用手順等は以下のサイトが分かりやすい
iOSであれば開発者ツールで使用可能らしいが、
自分の場合はメイン開発機がWindows、テスト対象端末がAndroidだったため、
以下のような構成でテストを行った
同一のWi-Fiに接続すれば、メイン開発機のネットワーク速度を損ねずにデバッグ等を行うことができて便利
方法3. 物理的に頑張る
以下のような方法で物理的にネットワーク環境を悪化させる
-
Wi-Fiルータにアルミホイルを巻く
-
モバイルWi-Fiルータを金属製の缶の中に入れて、アルミホイルで巻く
-
ノートPCとAndroid端末を風呂場やトイレに持ち込んでテストする
メリット
- 特別なソフトや知識が無くてもできる
デメリット
- 「アルミホイルが無くなってるんだけど!?!???」と家族に怒られる
- 良い塩梅にネットワークを悪くするのが難しい
- 俺は一体何をやってるんだろう...という気持ちになる
色々試して気が付いたこと
アルミホイルを巻いても意外とWi-Fiは遮断できない
GitHubで編集を提案
Discussion
Android端末側の開発者向けオプションの設定でネットワークダウンロード速度制限を制限するのも有効かと思います。
パケロス率などは設定できませんが。
コメントありがとうございます!
手元の端末で確認してみたところ、開発者オプションを有効にしていてもその設定は出てきませんでした。
使用できない端末もあるようです。
端末によるんですね!
ちなみに私はPixel6ですが設定できました。
ルーターの話ですが、openwrtなどでカスタマイズルーター使う場合もip単位とかでネットワークスピード制御は可能です。ちょっとめんどくさいですが。。
中国語になっちゃいますが、自分の自宅ルーターはこういう感じで設定できます。
ルータによってはそういった設定もあるんですね!便利!
自分のルータには電波強度を変更する設定はあったんですが、速度の設定項目はありませんでした。
ルータによって結構差がありそうですね!
アルミホイルを巻いても意外とWi-Fiは遮断できない
→ここ笑いましたwww