我正在编写一个小的测试脚本,它将在他们的在线个人资料中为不同的成员测试同样的事情。我的问题是,是否可以循环测试用例?目前,我一直在这样做的方式只是一遍又一遍地复制和粘贴相同的测试用例,并且只更改成员名称变量。但是我需要为几百个成员做这件事,我相信一定有一种更有效的方法来解决这个问题。以下是我到目前为止编写的代码,如果有什么我应该更改或尝试的,请告诉我。
class Program
{
string username = "Username1";
string password = "Password1";
string url = "http://url.com";
static void Main(string[] args)
{
}
[SetUp]
public void Initialize()
{
Properties.driverGC = new ChromeDriver();
Properties.driverIE = new InternetExplorerDriver();
Properties.driverFF = new FirefoxDriver();
UWEAdmin.OIDLogIn(Properties.driverGC, username, password, url);
UWEAdmin.OIDLogIn(Properties.driverIE, username, password, url);
UWEAdmin.OIDLogIn(Properties.driverFF, username, password, url);
}
---------------这是我想要循环的测试用例,测试中唯一的区别是成员名称------------------------------------------
[Test]
public void MEMBER1()
{
string member_name = "Member1";
string OU = "American Red Cross of Central";
string status = "Yes";
OperatingUnit.ChangeOU(Properties.driverGC, OU);
MemberSearch.Search(Properties.driverGC, name, status);
Compare.statuses(Properties.driverGC);
}
}
[TearDown]
public void CloseUp()
{
Properties.driverGC.Quit();
}
}
}
您可以使用参数化测试:
[TestCase("Member1", Result = ...)]
[TestCase("Member2", Result = ...)]
public MyOutput MEMBER1(string memberName)
{
string member_name = memberName;
string OU = "American Red Cross of Central";
string status = "Yes";
OperatingUnit.ChangeOU(Properties.driverGC, OU);
MemberSearch.Search(Properties.driverGC, name, status);
return Compare.statuses(Properties.driverGC);
}
这将执行两次测试,一次用于"Member1"
,一次用于"Member2"
。但是,您必须更改方法签名才能返回某些内容,例如Compare
方法的返回值。