2009-07-28 14 views
2

私は、プロジェクトのサーバー側にノンブロッキングIOシステムを作成しています。実際の実装は重要ではありません(あなたが気にしていればJava NIOですが)、ソケット通信をプログラミングする際に細心の注意を払わなければならない微妙な問題は非常に怖いです。私の知識は多くの分野で欠けているので、私は物事が「間違っている」というすべてのやり方を想像することすらできません... "半閉鎖"接続、予想以上に多くのデータを送る接続などネットワーク接続用のテスト/トラブルシューティングツール?

私が探しているのは、特定の動作の接続とテストのプロセスを自動化することで、システムの堅牢性をテストするためのクライアントサイドツールです。接続のオープン、使用、クローズが可能なさまざまな方法をシミュレートする、さまざまなオプションのツールがあります。おそらく、それは私が一瞬にメガバイトを送ったり、コードを壊す可能性のある無作為な、まれなものをテストできるという目的のために、「意味をなさない」ものをやろうとするでしょう。 「壊れた」接続を認識せずに閉じます。

一種のツールが存在しますか?もう1つのアプローチは、Javaコード/ユニットテストです。何かご意見は?本当にありがとう!

答えて

1

あなたは、ランダムなクライアントの動作をエミュレートし、単純なユニットテスト書き込みをJavaであなたの知識を活用することができます

  • あまりにも多くのデータ
  • オープンとクローズあまりにも多くの接続
  • 他のコーナーケース

ネイティブコードやその他のトリッキーな設定のない純粋なJavaテストは、大きな勝利です。出発点として

私はJMeterお勧めします。

のApache JMeterの静的および動的なリソースのパフォーマンスの両方をテストするために使用することができる(ファイル、サーブレット、Perlスクリプト、Javaオブジェクト、データベースとクエリ、FTPサーバともっと)。サーバー、ネットワーク、またはオブジェクトの重い負荷をシミュレートして強度をテストしたり、さまざまな負荷の種類で全体のパフォーマンスを分析するために使用できます。これを使用して、パフォーマンスをグラフィカルに分析したり、負荷が重い場合にサーバー/スクリプト/オブジェクトの動作をテストすることができます。

JUnitPerfウェブサイトをご覧ください。

2

私はnetcatを見ることをお勧めします。それはあなたに実行中のサーバーにすべての種類のデータをプッシュする非常に柔軟な方法を提供します。

+0

ほとんどのシステムで利用できます。 – aperkins

0

低レベルソケットプログラミングを行う人は、リチャード・スティーブンのUnix Network Programming(http://www.kohala.com/start/unpv12e.html)またはTCP/IP Illustrated(同じサイト)が必須です。すべてがC言語になっていますが、コンセプトは転送可能です。

関連する問題