会社のサーバー内部の機能をテストする必要があります。この機能の利点は、クライアントの実行が遅い場合 (遅延やパケット損失など) にのみ明らかです。その範囲で、低速または損失の多い接続 (TCP/HTTP) でクライアントをシミュレートする必要があります。私は Mac の Mountain Lion を使用しています。理想的には、サーバーとクライアントの両方をローカルで実行する必要があります。
私が追求しようとしたアプローチの 1 つは、失敗しましたが、接続が遅いクライアントを構築できる Java API を入手することでした。JMeter に SlowSockets (または類似のもの) と呼ばれるものがあることは知っていますが、パフォーマンスの遅いクライアントにより焦点を当てた API を探していました。便利な API のアイデアはありますか?
私が試した別のアプローチは、プロキシを使用してクライアントとサーバーの間の仲介者として機能することでした。その場合、プロキシは低速リンクをシミュレートする機能を提供する必要があります。私は Charles プロキシ (Mac) と Apache TCPMon を試しましたが、それらを動作させようとすると何かが欠けているようです。たとえば、TCPMon を「プロキシ」モード (「低速リンクのシミュレート」機能を提供するモード) で起動すると、ローカル プロキシのポートを定義しますが、リモート ホストの定義方法がわかりません。とポート。Charles Proxy でも同様のことが起こります。プロキシ設定でローカル ポートを設定できますが、プロキシのリモート エンドを定義する方法がわかりません (実際、リモート サーバーが応答していないと言って接続に失敗します)。私が間違っていることを知っている人はいますか?
私が追求しようとしたもう 1 つのアプローチは、低レベル (OS ベースなど) の手段を使用することです。この場合、Apple の Network Link Conditioner を試しました。スイッチを入れて速度パラメータを定義しましたが、ping を実行すると、予想される RTT などが表示されないようです。NLC は、XCode および iOS テストと緊密な関係にあると感じています。他の (Java などの) アプリケーションをテストするには? Mac で ipfw も試してみましたが、マニュアルによると ipfw は現在非推奨であり、すぐに利用できなくなるツールを知るために時間を割きたくありません。
どんなアイデア/ヘルプも高く評価されます。
前もって感謝します。