我正在尝试加载测试Web服务端点。我有一个数据驱动的单元测试,用于测试它。我的数据源是一个CSV文件,单元测试可以选择并运行顺利。但是,当我将测试挂钩到Microsoft Visual Studio LoadTestFramework时,它无法从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“]; ”it表示对象引用设置为null。有人可以帮忙吗
答案 0 :(得分:0)
我从未见过使用代码的... = (string)Context.DataRow[...];
样式提取的数据。我见过和使用的所有示例都使用样式... = Context.DataRow[...].ToString();
。
由于您的代码在提取数据的行上失败,因此似乎正在部署和成功打开文件。你怎么知道它是正确的文件?可能已部署了不同的文件?查看TestResults
目录中的测试运行及其子目录。检查CSV文件是否包含正确的内容。您显示错误的其他常见原因是文件包含空(即空白)行,或者该字段为空。