Web アプリでさまざまな種類の帯域幅とトラフィックをシミュレートするためのテスト環境を作成する方法を提案できますか?
それとも、localhost に対してこれを行うオープン ソース プログラムですか?
これは、Web アプリをプログラミングする際の非常に重要なテーマだと思いますが、通常のトピックではありません。そのような環境を作成するために想像できる唯一の方法は、ローカル ネットワークで何らかのプロキシを使用することですが、squid を調べ始める前にあなたの提案を聞きたいです。
Web アプリでさまざまな種類の帯域幅とトラフィックをシミュレートするためのテスト環境を作成する方法を提案できますか?
それとも、localhost に対してこれを行うオープン ソース プログラムですか?
これは、Web アプリをプログラミングする際の非常に重要なテーマだと思いますが、通常のトピックではありません。そのような環境を作成するために想像できる唯一の方法は、ローカル ネットワークで何らかのプロキシを使用することですが、squid を調べ始める前にあなたの提案を聞きたいです。
Apache を使用している場合は、apache abを参照してください。
ネットワークリンクをシミュレートするためにネットワークトラフィックを形成するには、2つのアプローチがあります。
(2)は、クライアントまたはサーバーにソフトウェアをインストールしたくない(場合によってはパフォーマンスに影響を与えたくない)が、より多くのハードウェアをいじる必要がある場合に、より優れたソリューションです。
考えたいと思うかもしれない他のいくつかの機能は、どのシェーピングパラメータをシミュレートできるかです。ほとんどは遅延とパケット損失を行い、一部はジッターと帯域幅制限も行います。一部のソリューションでは、トラフィックを選択的にフィルタリングできます(たとえば、ポート番号、TCP、UDPなど)。
これが私が見つけたいくつかのシステムのリストです:
オープンソースまたはフリーウェア
DummyNetは、専用デバイス向けのオープンソースBSDUnixベースです。ソフトウェアが積極的に保守されているかどうかは不明です
NistNetは、専用デバイス用のオープンソースのLinuxベースのシステムです。ソフトウェアは数年間積極的にメンテナンスされていません。
商業
Apposite Technoligiesは、WANリンクをシミュレートするための専用ハードウェアソリューションを販売しており、設定を構成してトラフィック測定値を収集するためのWebベースのGUIを備えています。
East Coast DataComは、ルーターとモデムをシミュレートするためのハードウェア専用シミュレーターを販売しています
Itrinegyは、専用のデバイスソリューションと、クライアントまたはサーバーで実行するためのソリューションの両方を提供します。
Network FX は、クライアントとサーバー間のネットワーク障害をシミュレートするためのいくつかの専用デバイス製品を提供します
NetLimiterは、個々のアプリケーションのスロットリングを可能にするクライアント側システムであり、ファイアウォールが含まれています。
Shunra Softwareは、ハイエンドのエンタープライズWANシミュレーションおよびテストから、単純なクライアント常駐エミュレーターまで、さまざまな製品を提供しています。
私が考えることができる最も近いのは、ShunraのVEDekstopで同様のことをすることです..
データベース アプリケーションのテストにおける高レイテンシと低帯域幅のシミュレーション
Shunra VE Desktop Standard は、ワイド エリア ネットワーク リンクをシミュレートする Windows ベースのクライアント ソフトウェア ソリューションで、デスクトップから直接、現在および潜在的なさまざまなネットワーク条件でアプリケーションをテストできます。
他の人が言っているように、Apacheのab(Apacheに付属しているので、おそらくすでに持っているでしょう)は良いです。
その他の適切なオプションは次のとおりです。
私は個人的にabとJMeterが一番好きです。
MicrosoftのWebアプリケーションストレスツール(WAST)が必要です。
私はしばらく前に、CURL を使用してサーバーに対して一連のページ要求を実行する php スクリプトを作成しました。これは典型的な使用シナリオを表しています。サーバーが各リクエストに応答するのにかかった時間を出力しました。次に、一連のテスト ケース スクリプトを一定期間同時に生成し、結果をファイルに関連付けて、スプレッドシートで平均時間を確認できる別のスクリプトを用意しました。このようにして、希望するサイトにアクセスするユーザー数をシミュレートできました。制限は、Web サーバーとは別のサーバーでテスト スクリプトを実行する必要があることと、クライアント マシンの負荷が高くなりすぎて、特定のポイントを超える意味のある結果が得られないことです。それ以来、私は仕事を辞めました。それ以外の場合は、ここにスクリプトを貼り付けます。
私は何年もそれを使用していませんでしたが(他に何かを見つけたからではなく、必要がなかったからです)、xat webspeedは私が最初に指摘するものです
Linux ボックスをサーバーとして実行している場合、Linux ボックスをクライアントとして実行している場合、またはクライアントとサーバーの間に Linux ルーター (おそらく VM) を配置できる場合は、NetEm を使用できます。
NetEmは、ホストから出るパケットを遅らせる (つまり、待ち時間を追加する) ことができる Linux TC (トラフィック制御) 規則です。巧妙なルールを設定するのは難しいですが (たとえば、一部のトラフィックに遅延を追加し、他のトラフィックには遅延を追加しない)、単純な「インターフェースから出るすべてのものを 50 ミリ秒遅らせる」タイプのルールを追加するのは簡単で、いくつかのレシピが提供されています。
クライアントとサーバーの間に Linux VM を配置することで、好きなだけレイテンシをシミュレートできます。また、動的にオンとオフを切り替えることができます。Linux には、帯域幅を制限するために NetEm と組み合わせることができる他の TC 規則があります (ただし、これを設定するスクリプトは多少複雑になる可能性があります)。NetEm はパケットをランダムにドロップすることもできます。
私はそれを使用し、それは御馳走を働かせます:)
私はうまく機能するこの小さなJavaプログラムを見つけました:ずさんな
まだプロフェッショナルなソリューションではありませんが、単純なテストでは機能します。接続を遅くするためにJavaストリームとバッファを使用していると思います。
Loadrunner を使用して、アプリで帯域幅とトラフィックのシミュレーションを行います。Loadrunner は、さまざまなマシンでエージェントを開始できます。また、ダイヤルアップ モデムで実行されているマシンと、DSL で実行されているマシンと、ケーブル インターネットで実行されているマシンをシミュレートできます。また、Loadrunner を使用して、10 ユーザーの実行から 500 ユーザーの実行まで、さまざまな種類のトラフィック条件をシミュレートします。スクリプトに思考時間を挿入して、http 要求を実行する実際のユーザーをシミュレートすることもできます。最良の部分は、Internet Explorer にプラグインするレコーディング スタジオが付属していることです。1 ページから本格的な 50 ~ 60 ページのスクリプトまたはそれ以上をヒットするだけの簡単なシナリオ/ユースケース全体を記録できます。
ブラウザからテストを実行することに興味がある場合は、非常に優れた Firefox プラグインもあります。
ワヌレーター (http://www.wanulator.de/) を忘れないでください。ワヌレーターという名前は、「WAN」と「シミュレーター」に由来します。これは、ソフトウェアが何をするかをほぼ説明しています。遅延やパケット損失などのさまざまなインターネット条件をシミュレートします。さらに、モデム、ISDN、ADSL などのユーザー アクセス回線速度をシミュレートします。現在、Wanulator はSLAX に基づく Linux ブート CD としてパッケージ化されています. これにより、箱から出してすぐに使用できる完全なエクスペリエンスが提供されます. Winulator CD を起動するだけで、どの PC も瞬く間にテストシステムに変えることができます. パッケージには、便利なクライアント SW が既に含まれています.それにもかかわらず、PC に 2 つのネットワーク インターフェイスがある場合、システムはサーバーとクライアントの間の中間システムとして (スイッチとして) 構成の手間をかけずに実行できます。
Tsungを見たことがありますか?これは、攻撃が発生した場合に Web サイトが拡張されるかどうかを確認するための優れたユーティリティです。つまり、非常に人気があります。Web フロントエンドと社内システムにも使用しています。