我正在一个Maven项目中开发移动测试自动化,我想并行运行两个测试套件。因此,使用从.xml文件运行测试的TestNG,看起来像这样:
<suite name="Parallel Test" parallel="tests" thread-count="2">
<test name="TestsAndroid 7">
<parameter name="platform" value="Android 7.0" />
<parameter name="deviceName" value="emulator-5554"/>
<parameter name="port" value="4731"/>
<classes>
<class name="Runner.Test1" />
</classes>
</test>
<test name="TestsAndroid 8">
<parameter name="platform" value="Android 8" />
<parameter name="deviceName" value="emulator-5556"/>
<parameter name="port" value="4733"/>
<classes>
<class name="Runner.Test2" />
</classes>
</test>
</suite>
每个运行程序 Test1 和 Test2 都有一个@BeforeClass,用于在其中创建设置数据,专门针对每个测试套件:
@BeforeClass(alwaysRun = true)
@Parameters({"platform", "deviceName", "port"})
public void setUpClass(@Optional("") String platform, String deviceName, String port) throws Exception {
setupData = new CreateSetupData("Test1");
}
这就是我的问题所在。 CreateSetupData()方法创建所需的数据并设置变量值,以便在进一步的测试步骤中使用。
private void CreateSetupData() {
// Create user
String userName = createUser();
setupData.setUserName(userName);
}
位置:
public static void setUserName(String aUser) {
userName = aUser;
}
开始创建数据以运行 Test2 时,将覆盖为 Test1 创建的 user 和 password 值。
我正在使用Eclipse IDE,是否可以为每个 thread-count 创建和设置具有相同变量名但具有不同值的数据?