在多种语言上运行相同的测试套件(本地化)

时间:2019-05-09 20:57:16

标签: testing automated-tests testng

我是测试领域的新手,并且正在使用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中运行两次?谢谢。


1 个答案:

答案 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>

您可以在tutorialspoint.com

上了解有关TestNG参数化测试的更多信息