如何使用visualstudio加载测试数据驱动的单元测试



我正在尝试对Web服务端点进行负载测试。我为测试它构建了一个数据驱动的单元测试。我的数据源是一个CSV文件,单元测试会拾取它并顺利运行。但是,当我将测试挂接到MicrosoftVisualStudioLoadTestFramework时,它无法从CSV文件中提取数据。

我的单元测试如下:

[TestMethod]
[DeploymentItem("MyProject\testdata.csv")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV","|DataDirectory|\MyProject\testdata.csv", "iq3#csv", DataAccessMethod.Sequential)]
 public void DataDrivenWebApiTest()
 {
     var username  = (string)Context.DataRow["Username"];
     var password = (string)Context.DataRow["Password"];
     var token = GetToken(username, password);
     var task = RequestClient.GetRequest("/api/endpoint", ApiUrl, token);
     var result = task.Result;
     result.EnsureSuccessStatusCode();
  }

上面的单元测试在隔离状态下运行良好,但当连接到Visual studio负载测试框架时,它在第6行抛出NullPointerException,即"(string)Context.DataRow["Username"];",它说对象引用设置为null。有人能帮助吗

我从未见过使用代码的... = (string)Context.DataRow[...];样式提取数据。我看到和使用的所有示例都使用样式... = Context.DataRow[...].ToString();

当您的代码在提取数据的那一行失败时,似乎有一个文件正在成功部署和打开。你怎么知道它是正确的文件?可能已经部署了不同的文件?在TestResults目录中查找测试运行及其子目录。检查CSV文件是否具有正确的内容。显示错误的另一个常见原因是文件中包含空(即空白)行,或者字段为空。

最新更新