負荷テストの一部のテストには、必要なデータを取得するために 2 つのステップが含まれますが、そのプロセスの各コンポーネントにかかる時間を個別にテストして、負荷テスト データベースに簡単に保存し、別のプロセスを許可できるようにしたいと考えています。それに関するレポートを作成する人。たとえば、次の 2 つのメソッドの時間をテストする必要があります。
public FooObject[] GetFooList()
public FooObject GetFoo( FooId )
これらを使用する方法は次のようになります。
FooObject[] results = GetFooList();
FooObject finalResult = GetFoo( results[0].FooId );
GetFooList() と GetFoo() が完了するまでにかかる時間を知りたいので、TestInitialize メソッドで GetFoo() に必要な準備作業を行うことで、記録されたテスト時間には影響しないと考えました。thread.sleep() でいくつかテストした後、そうではないことに気付きました。これが現在の私のクラスです。
[TestClass]
public class MyTestClass
{
public static object f;
public static Random r = new Random();
public TestContext TestContext { get; set; }
[TestInitialize]
public void testInit() {
if( TestContext.TestName == "GetFooTest" ) {
FooObject[] results = GetFooList();
f = results[ r.nextInt( results.Length ) ];
}
}
[TestMethod]
public void GetFooTest()
{
GetFoo( ((FooObject)f).FooId );
}
[TestMethod]
public void GetFooListTest()
{
GetFooList();
}
}
1.負荷テストがテストの TestInitalize コンポーネントを無視する方法があったか、2
.そうでない場合は、この問題を回避する方法について提案があったかどうか。
これらのメソッドの約 10 の異なるペア (GetBarList、GetBar など) があるため、fを汎用オブジェクトに格納し、最終的にテストの初期化に大きな switch ステートメントを持たせます。どんな助けでも大歓迎です。ありがとう!