私は自分の質問に答えるのは好きではありませんが、同じ問題を抱えている人々の将来の参考のためにこれをここに置きます。
他の3番目のオプションが間違っていた理由
3番目のオプションの問題は、IDのリストが1000である1000回の反復を伴うLoadTestで、LoadTestが1000回ではなく最初のIDで1000回実行され、それぞれが各IDで実行されていたことです。私はそれを証明するためにある種のnosqlプロファイラーを使用しました。
次のソリューションでは、Loadtestに1000回の反復があり、csvリストに1000個のIDがある場合、1000個のテストがそれぞれ1つのIDで実行されます。LoadTestにさらに多くの反復がある場合、たとえば2000の場合、LoadTest1001ではcsvリストの先頭から再開します。
私の解決策
注:このソリューションはcsvファイルを使用します。xml、Excel、SQLサーバーのテーブルなどの別の異なるデータソースを使用するように簡単に適合させることができます。
これを実現するための正しいオプションは、DataSource属性を使用してテストを作成することです。たとえば、テストで使用するIDを含むcsvファイルを作成します。私のcsvファイルの例:
ID
1003002-20121211120000
1004071-20121211120000
テストにDataContextを追加する必要があります。
private TestContext testContextInstance;
public TestContext TestContext
{
get { return testContextInstance; }
set { testContextInstance = value; }
}
最後に、テストは次のようになります。
[TestMethod,DeploymentItem("DataOrigin\\list.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\list.csv", "list#csv", DataAccessMethod.Sequential)]
public void TestScenario_1_DATADRIVEN()
{
// PREPARATION
string ID = TestContext.DataRow["ID"].ToString();
string querystring = CreateQueryWithErrorDebug(ID);
// EXECUTION
string result = RunXCCQuery(querystring);
// ASSERTS
Assert.IsTrue(result.Length > 0);
Assert.IsTrue(result.Contains(ID));
}
DeploymentItem属性はcsvファイルをコピーします。DataSource属性はそれを読み取り、それを繰り返し処理します。
この行は、テストがTestContextから読み取る場所です。
string ID = TestContext.DataRow["ID"].ToString();
CSVファイルにn個のIDがあると、IDごとに1回、n回テストが実行されます。
私が調査で見つけたいくつかの有用なリンク: