我的testng.xml中有100项测试,大多数测试由于计时问题而失败,但是当我按块运行它们时,效果很好
我尝试过的一个无效解决方案是将少量测试分成多个testng.xml文件,然后逐个运行,寻找可以在运行时执行相同操作的替代方法
这是我的testng.xml的样子
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
<listeners>
<listener class-name="baseClasses.TestListener"></listener>
</listeners>
<test name="Android">
<parameter name="platform" value="android"></parameter>
<classes>
<class name="testCases.android.VerifyLoginLogout" />
<class name="testCases.android.test1" />
<class name="testCases.android.test2" />
...
<class name="testCases.android.test100" />
</classes>
</test>
</suite>
关于如何将测试分成几部分并在运行时一一运行的任何建议,因此我无需将测试分成多个testng.xml文件
注意-甚至尝试在testng.xml内明智地运行包
答案 0 :(得分:0)
据我了解,您要分多个批次运行测试用例。如果我是正确的,那很简单。只需将所有测试用例划分为多个test
标记,然后使用要在test
标记中执行的测试类即可。请在下面看看。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
<listeners>
<listener class-name="baseClasses.TestListener"></listener>
</listeners>
<test name="Android-1">
<parameter name="platform" value="android"></parameter>
<classes>
<class name="testCases.android.VerifyLoginLogout" />
<class name="testCases.android.test1" />
<class name="testCases.android.test2" />
<class name="testCases.android.test3" />
</classes>
</test>
<test name="Android-2">
<parameter name="platform" value="android"></parameter>
<classes>
<class name="testCases.android.test4" />
<class name="testCases.android.test5" />
<class name="testCases.android.test6" />
</classes>
</test>
</suite>
希望它能对您有所帮助。
答案 1 :(得分:-1)
您要按以下步骤对测试进行“分组”:
import org.testng.Assert;
import org.testng.annotations.Test;
public class GroupTestExample {
String message = ".com";
MessageUtil messageUtil = new MessageUtil(message);
@Test(groups = { "functest", "checkintest" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = ".com";
Assert.assertEquals(message, messageUtil.printMessage());
}
@Test(groups = { "checkintest" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "tutorialspoint" + ".com";
Assert.assertEquals(message, messageUtil.salutationMessage());
}
@Test(groups = { "functest" })
public void testingExitMessage() {
System.out.println("Inside testExitMessage()");
message = "www." + "tutorialspoint"+".com";
Assert.assertEquals(message, messageUtil.exitMessage());
}
}
,然后在您的套件中运行特定的组:
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<run>
<include name = "functest" />
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>