Proxyman で iOS の低速なネットワーク環境をシミュレートする
1. ネットワークシミュレーションは何に使うのか?
モバイルアプリを開発していると、2G、3G、4G などさまざまな帯域幅で、アプリがどのように動作するかを把握したくなることがあります。このミニ記事では、アプリをテストする際に Proxyman を使って通信環境の悪い状態をシミュレートする方法を紹介します。
2. Proxyman でさまざまなネットワーク環境をシミュレートする方法
2.1 シミュレータに Proxyman 証明書をインストール
通信環境の悪い状態でアプリがどのように読み込まれ、動作するかを確認するには、シミュレータまたは実機でテストするのが直感的です。iOS シミュレータでネットワーク通信を確認する ために、Proxyman 証明書がインストールされていることを確認してください。セットアップが完了すれば、アプリとの間で送受信されるすべてのネットワーク通信をキャプチャできるため、ネットワークのスロットリングを実行できます。
2.2 Proxyman の Network Condition ツールを使う
Proxyman の Network Condition ツールを使うと、ネットワーク環境をシミュレートしたいホストを即座に選択できます。
- URL Domain を右クリックし、Tools >> Network Conditions を選択します

- ドロップダウンのオプションから、2G(Edge)、3G、4G などのインターネット帯域幅を選択します。すると Proxyman は、その範囲内でランダムな帯域幅を生成し、ネットワーク環境をシミュレートします

2.3 ネットワークのスロットリングのデモ
- 以下は、iPhone 15 シミュレータで 3G 接続や切断されたネットワーク環境におけるアプリの読み込みを再現する、ネットワークのスロットリングのデモです。
- クリックして再生:
デモで示したとおり、開発者や QA は Throttle Network 機能を使って、Edge、3G、4G などの複数のネットワークプロファイルでウェブサイトをテストできます。特定の要件に合わせて、独自のネットワークプロファイルの値を追加することもできます。テストの観点から非常に役立つのは、低速な帯域幅でアプリを使うユーザーの体験を改善できる余地があるかどうかを見つけられる点です。改善の例としては、プログレスバーを追加したり、読み込みの遅延によるユーザーのストレスを避けるために待機処理を入れたりすることが挙げられます。
このミニ記事が、アプリのネットワークのシミュレートやスロットリングを行いたい方のお役に立てば幸いです。 Happy coding 👨🚀
ダウンロード速度以外もテストする
低速プロファイル、遅延の追加、パケットロス、完全な接続切断をそれぞれ試してみてください。アプリに進捗が表示されるか、適切なタイムアウトの後に待機をやめるか、同じ操作を二重に送信しないか、接続が戻ったときに回復するかを確認しましょう。可能であれば、テスト対象のホストにだけルールを適用し、作業が終わったらオフにしてください。そうしないと、後続の作業に影響が出てしまいます。
Proxyman は、iOS デバイス、iOS シミュレータ、Android デバイス上のアプリやドメインから HTTP(s) 通信をキャプチャして調べられる、高性能な macOS アプリです。
https://proxyman.com/ からダウンロードできます。

