我是测试领域的新手,并且正在使用testNG。我有一个包含以下几个类的测试套件:
- LoginTest
- SignUpTest
...
我们的网站支持2种语言,并且两个本地化站点都是相同的(本地化字符串除外)。我设置项目的方式是,我有2个程序包:英语和日语,其中包含与上述相同的所有测试类,但可以针对不同的字符串进行验证。即:
com.web.test.English
-- LoginTest
-- SignUpTest
-- EnglishStrings.json
com.web.test.Japanese
- LoginTest
- SignUpTest
- JapaneseStrings.json
现在,每当登录页面或注册页面更改时,我都需要更新英语和日语包中的定位器和验证方法。有没有一种整齐,快捷的方法来使每个测试类在EnglishStrings.json和JapaneseString.json中运行两次?谢谢。
答案 0 :(得分:0)
我认为您最好的选择是使用testNG参数注释
public class LoginTest {
@Test
@Parameters("localizedFile")
public void parameterTest(String localizedFile) {
// load localizedFile and run test
}
}
您的testng.xml看起来像这样:
<suite name = "Suite1">
<test name = "EnglishTest">
<parameter name = "localizedFile" value="EnglishStrings.json"/>
<classes>
<class name = "LoginTest" />
</classes>
</test>
<test name = "JapaneseTest">
<parameter name = "localizedFile" value="JapaneseStrings.json"/>
<classes>
<class name = "LoginTest" />
</classes>
</test>
</suite>
上了解有关TestNG参数化测试的更多信息