0

データベースのパフォーマンス テストを行いたいので、データベースへの要求をシミュレートし、期間やその他の統計も測定する必要があります。私のデータベースは MS Sql Server 2005/8 で、私のサーバーは IIS で ASP.NET を実行しています

シミュレートする必要があるテストには、データベース側に実装されていないいくつかのフロー ロジックが必要です。テスト ツールはそれを実装する必要があります。

この質問では、そのフロー ロジックの影響を無視し、結果に影響を与えないように、時間とリソースがゼロであると想定してください。

私は2つのオプションを検討しています:

  1. C# で独自のカスタム ツールを作成し、C#
    でフロー ロジックを実装し、「マルチスレッドでテストを実行するだけ」です。C# 側では何も測定しません。代わりに、SQL サーバー プロファイラーを使用してデータベース リクエストを測定します。

  2. Jmeter(または他の同等のツール?)
    を使用して、jmeterを使用してフローロジックを実装します(コードを実行できる標準コンポーネントまたはサンプラーを使用)。この方法では、スレッドを自分で処理する必要はありません。jmeter が処理してくれます。この場合、プロファイラーの他に、Jmeter を使用してデータベースを測定することもできます。

jmeter の組み込みツール (ロジック コントローラーなど) と比較して、C# ではフロー ログインの記述がはるかに簡単であるため、最初のオプションを好みます。

私はマルチスレッドの経験があり、複雑になる可能性があることを知っていますが、この場合、テストは独立しており、データを共有しないため、ロックをあまり処理する必要はありません。

jmeter が優れたツールであり、時間測定を非常にうまく処理することは知っていますが、私の場合は、SQL プロファイラーを使用できます。

自分でマルチスレッドを管理する際の作業と困難を過小評価していませんか?
他に何か不足していますか?別のオプションはありますか?

4

2 に答える 2

2

いくつかのオプション:

  1. SQL負荷テストを使用します。http://sqlloadtest.codeplex.com/を参照してください
  2. QuestSoftwareによるベンチマークファクトリ。http://www.quest.com/benchmark-factory/を参照してください
  3. SQLプロファイラーを使用して、記録したトレースを再生します。http://msdn.microsoft.com/en-us/library/ms189604.aspxまたは http://sqlserverpedia.com/wiki/Replaying_a_Profiler_Traceを参照してください
  4. OStress(RMUtilitiesの一部)を使用するhttp://support.microsoft.com/kb/944837を参照してください
于 2011-09-19T18:18:22.567 に答える
0

Telerik の無料の WebAii Web テスト フレームワークを使用して、Web UI テストを作成できます。単体テストと一緒に、または単体テストの一部としても使用できます。

しかし、実際には、データベースのパフォーマンスをテストする必要がある場合は、Web UI を使用しないようにして、できるだけ DB に「近づけて」実行することをお勧めします。

于 2012-12-12T13:07:52.603 に答える