Bean Network Tester

悪いネットワークでアプリをテストする

Bean Network Tester は、1つのWindowsアプリケーションに遅延、パケットロス、速度制限を加えます。電車の中、ホテルのホットスポット、電波が1本しかないスマートフォンで、ユーザーが体験する状況を自分の目で確かめられます。

マシン全体ではなく1つのプログラムだけを対象にしたネットワークエミュレーターなので、テスト対象のアプリには遅いインターネットを再現しつつ、ほかのものは普通に動かし続けられます。

Windows版をダウンロード GitHubでソースコードを見る

無料のオープンソース(GPLv3)。Windows 10 / 11、64ビット対応。アカウント不要、テレメトリなし。

ツールの実行中に、ライブのpingでパケットが失われ遅延が増えていく様子
動作中の接続に遅延とパケットロスを加えているところ。

ネットワークに何をするのか

遅くする

固定またはランダムの遅延を加えます。300 msのpingが読み込み中のスピナーに何をもたらすか確かめましょう。

パケットを失わせる

パケットを破棄、重複、破損させて、アプリが回復するのか、ただ固まるのかを観察します。

速度を抑える

電波の弱いモバイル回線のように、ダウンロードやアップロードを毎秒のKB数で頭打ちにします。

回線を切る

接続を切断し、ポートやアドレスをブロックし、ネットワークを断続的に落とします。

1つのアプリに絞る

プロセス、PID、アドレス、ポートのいずれかを指定します。マシンのほかの部分は普段どおり動きます。

正確に繰り返す

同じシードなら同じ実行が再現されます。バグ報告と思い出話の違いはそこにあります。

実行までは3ステップ

  1. リリースページからzipをダウンロードし、好きな場所に展開します。
  2. BeanNetworkTester.exe を起動します。通信の取得には管理者権限が必要なため、自動で権限を求めます。
  3. 「3G network」のような用意済みのプロファイルを選び、START を押して、アプリを使います。

同じファイルにテキストモードもあるので、すべてパイプラインでも動かせます。サービスが10%のパケットロスに耐えられるかどうかは、1つのコマンドで確認できます:

BeanNetworkTester.exe --loss 10 --target myapp.exe --duration 60

時間が来ると自動的に停止するため、止まってしまったステップが壊れたネットワークを残すことはありません。--simulate を付ければ、実際の通信に触れずにコマンドを試せます。

誰が使うのか

「自分の環境では動く」を再現しなければならないテスター。タイムアウトを本当に起こしたい開発者。ラグがネットコードに何をするかを確かめるゲーム開発者。回線の弱い環境でアプリが動くかと聞かれ、誠実に確かめる手段がなかったすべての人。

具体的な作業の進め方

短いガイドです。それぞれ、試す価値のある数値と、それを実行するコマンドを載せています。

自分のネットワークを、わざと壊してみませんか?

Windows版をダウンロード