0

オブジェクトのインスタンスがあるロード テスト プラグイン内から、ロード テストのテスト反復回数を取得する必要がありLoadTestます。オブジェクトのプロパティを検索しましたLoadTestが、負荷テストの構成に通常使用されるツリービュー エディターと比較して、多くの情報が不足しているように感じます。

すでにテストの反復回数をコンテキスト パラメーターとして再度定義し、それを Web テストに渡していますが、データを複製しているため、これはハックのように感じます。

class MyLoadTestPlugin : ILoadTestPlugin
{
    private LoadTest loadTest;

    public void Initialize(LoadTest test)
    {
        loadTest = test;

        loadTest.TestStarting += (_, e) =>
        {
            // Get # of Test Iterations in load test here,
            // "loadTest" object does not have nearly as
            // many properties as it should, compared to
            // the tree view editor.
        };
    }     
}
4

2 に答える 2

1

Web テストには、現在の反復回数がwebTest.Context.WebTestIteration(および という名前のコンテキスト パラメーターとして$WebTestIteration) 含まれています。

LoadTest は、TestStartingEventArgsオブジェクトの現在の反復回数にアクセスできます。

loadTest.TestStarting += ( (sender, e) =>
{
    int iteration = e.TestIterationNumber;
};

これらの値が同じであること、およびさまざまなシナリオで数値が再利用されるなどの予期しない動作がないことを自分自身に証明するために、これらのプラグインを(EDIT:re-)作成し、チェックアウトしました。

(前のコードが完全ではなかったことを指摘してくれた @AdrianHHH に感謝します)

public class LoadTestIteration : ILoadTestPlugin
{
    List<int> usedTestIterationNumbers = new List<int>();
    public void Initialize(LoadTest loadTest)
    {
        loadTest.TestStarting += (sender, e) =>
        {
            e.TestContextProperties["$LoadTest.TestIterationNumber"] = e.TestIterationNumber;
            System.Diagnostics.Debug.Assert(!usedTestIterationNumbers.Contains(e.TestIterationNumber), "Duplicate LoadTest TestIterationNumber: " + e.TestIterationNumber);
            usedTestIterationNumbers.Add(e.TestIterationNumber);
        };
    }
}

public class TestWebTestIteration : WebTestPlugin
{
    public override void PreWebTest(object sender, PreWebTestEventArgs e)
    {
        int lti = (int)e.WebTest.Context["$LoadTest.TestIterationNumber"];
        int wti = e.WebTest.Context.WebTestIteration;
        System.Diagnostics.Debug.Assert(lti == wti, String.Format("$LoadTestIteration {0} differs from $WebTestIteration {1}", lti, wti));
    }
}
于 2014-02-12T04:44:57.797 に答える