非常感谢您的提问!
我正在创建一个Selenium框架(C#,MSTest),并且遇到了麻烦,试图使测试数据驱动化。
我的目标是: 我需要支持不同类型的用户登录应用程序进行测试(假设我有其中4个用户)。由于这些用户具有不同的权限,所以我计划根据执行测试的用户将测试方法放入单独的测试类中。
例如: 例如,我有几个测试仅可以由用户1和用户2执行,还有几个测试仅可以由用户3和用户4执行。因此,第一堆测试进入测试类1中,第二堆测试进入测试类2中。
目前,我为每个测试类中的每个方法使用DataRows,并且它起作用。但是,这似乎是一种重复和低效的解决方案。在这种情况下,我为相同的用户在每个单独的测试中进行登录。 我想要的是:在class1中,user1只需登录一次,然后执行类中的所有测试,而无需在每个测试方法中重复登录部分。然后,user2登录一次并执行所有测试。对于其他测试类也是同样的处理方式。
我正在创建一个Selenium框架(C#,MSTest),并且遇到了麻烦,试图使测试数据驱动化。
我的目标是: 我需要支持不同类型的用户登录应用程序进行测试(假设我有其中4个用户)。由于这些用户具有不同的权限,所以我计划根据执行测试的用户将测试方法放入单独的测试类中。
例如: 例如,我有几个测试仅可以由用户1和用户2执行,还有几个测试仅可以由用户3和用户4执行。因此,第一堆测试进入测试类1中,第二堆测试进入测试类2中。
目前,我为每个测试类中的每个方法使用DataRows,并且它起作用。但是,这似乎是一种重复和低效的解决方案。在这种情况下,我为相同的用户在每个单独的测试中进行登录。 我想要的是:在class1中,user1只需登录一次,然后执行类中的所有测试,而无需在每个测试方法中重复登录部分。然后,user2登录一次并执行所有测试。对于其他测试类也是同样的处理方式。
[TestClass1]
public class TestClass1
{
[DataTestMethod1]
[DataRow("UserType1", "Selenium_pssw1")]
[DataRow("UserType2", "Selenium_pssw2")]
public void Test1 (string usernameString, string passwordString)
{
//do smth and assert smth
}
[DataTestMethod2]
[DataRow("UserType1", "Selenium_pssw1")]
[DataRow("UserType2", "Selenium_pssw2")]
public void Test2 (string usernameString, string passwordString)
{
//do smth and assert smth
}
}
TestClass2将包含几个测试方法,但是针对不同的用户类型,例如仅适用于UserType1和UserType4。
是否有可能在测试类级别而不是单个测试方法级别上使用数据源?
P.S:对于我的英语和编程的幼稚,我感到抱歉。我刚开始这条道路 :) 我已经在Google上搜索了很多尝试找到在线答案。也许,我只是不知道该问什么...