🤖

ネットワークが劣悪な環境を再現する方法

2024/03/09に公開
6

目的

アプリケーションが通信に失敗した際のテストを行いたい
例. 「通信に失敗した場合に再取得ボタンが表示されること」など

alt text

方法1. Chrome DevTools を使う

https://developer.chrome.com/docs/devtools/network/reference?hl=ja#throttling

任意の設定を追加して使用することができる

alt text
alt text

メリット

  • PCとモバイルデバイスの両方で使用可能
  • 新規にアプリケーションをインストールする必要が無い

デメリット

  • パケロス率などを設定できない
  • Android, iOS のネイティブアプリでは使用できない

Network Link Conditioner は Apple が提供しているネットワークユーティリティツール

使用手順等は以下のサイトが分かりやすい

iOSであれば開発者ツールで使用可能らしいが、
自分の場合はメイン開発機がWindows、テスト対象端末がAndroidだったため、
以下のような構成でテストを行った

alt text

同一のWi-Fiに接続すれば、メイン開発機のネットワーク速度を損ねずにデバッグ等を行うことができて便利

alt text

方法3. 物理的に頑張る

以下のような方法で物理的にネットワーク環境を悪化させる

  • Wi-Fiルータにアルミホイルを巻く
    alt text

  • モバイルWi-Fiルータを金属製の缶の中に入れて、アルミホイルで巻く
    alt text

  • ノートPCとAndroid端末を風呂場やトイレに持ち込んでテストする
    alt text

メリット

  • 特別なソフトや知識が無くてもできる

デメリット

  • 「アルミホイルが無くなってるんだけど!?!???」と家族に怒られる
  • 良い塩梅にネットワークを悪くするのが難しい
  • 俺は一体何をやってるんだろう...という気持ちになる

色々試して気が付いたこと

アルミホイルを巻いても意外とWi-Fiは遮断できない
alt text

GitHubで編集を提案
ヘッドウォータース

Discussion

arahabicaarahabica

Android端末側の開発者向けオプションの設定でネットワークダウンロード速度制限を制限するのも有効かと思います。
パケロス率などは設定できませんが。
https://engrholiday.jp/android/pixel-speed-limit/

Yoshiharu KubotaYoshiharu Kubota

コメントありがとうございます!
手元の端末で確認してみたところ、開発者オプションを有効にしていてもその設定は出てきませんでした。
使用できない端末もあるようです。

arahabicaarahabica

端末によるんですね!
ちなみに私はPixel6ですが設定できました。

Huiping GuoHuiping Guo

ルーターの話ですが、openwrtなどでカスタマイズルーター使う場合もip単位とかでネットワークスピード制御は可能です。ちょっとめんどくさいですが。。

中国語になっちゃいますが、自分の自宅ルーターはこういう感じで設定できます。

Yoshiharu KubotaYoshiharu Kubota

ルータによってはそういった設定もあるんですね!便利!
自分のルータには電波強度を変更する設定はあったんですが、速度の設定項目はありませんでした。
ルータによって結構差がありそうですね!

jemiyajemiya

アルミホイルを巻いても意外とWi-Fiは遮断できない
→ここ笑いましたwww