gs[0], FileMode.Open))
{
StreamReader tc = new StreamReader(fs);
while ((line = tc.ReadLine()) != null)
{
// parse line, post data, get response
// determine pass or fail, log result
}
}
虽然有很多可选方法来设计此自动化过程,但是 上述这个简单的结构已经在几个大型项目中被证明是健壮的。下一步是解析测试案例中数据的每个字段,并且构建一个包含“名称-值”对 的字符串。
tokens = line.Split('''':'''');
data.Length = 0;
data.Append("TextBox1=" + tokens); // Last name
data.Append("&TextBox2=" + tokens); // Quantity
data.Append("&TextBox3=" + tokens); // Credit card number
data.Append("&Button1=clicked");
data.Append("&__VIEWSTATE=" + viewstate);
我使用String.Split方法将测试 案例数据行分开,并且将每个字段保存到tokens数组中, 测试案例的ID保存到tokens[0]中,用户名称保存到tokens中,物品数量保存到tokens中,信用卡号保存到tokens中。为了清晰起见,也可以将这些数值复制到额外的 具有描述性的字符串变量中,如:"caseID","lastName"等,如下所示:
caseID = tokens[0];
lastName = tokens;
// etc.
但是我想让所使用的变量数为最少,传统的Web服务器 一般都用“名称-值”对来 提交(POST)数据,多个数据之间用“&”符号分开,如下:
lastName=Smith&quantity=3&creditCardNo=123456789012
但是,ASP.NET扩展了这种做法,在这个例子中 ,有五个"名称-值"对,第一对,你可能希望是:TextBox1=tokens,它将当前测试 案例的用户名称(保存在tokens[