目录
异常测试:
test注释的参数:expectedExceptions
@Test(expectedExceptions = RuntimeException.class)
依赖测试:
test注释的参数:dependsOnMethods,dependsOnGroups
@Test(dependsOnMethods = "test1")
当依赖的测试执行失败时,本测试用例会被忽略执行。
参数化测试:
1.xml文件参数化在suite.xml文件中加入以下参数。
<parameter name = "name" value = "zhangsan"/>
<parameter name="age" value="19"/>
然后在对应的方法下面增加:注释Parameters:
@Parameters({"name","age"})
<classes>
<parameter name = "name" value = "zhangsan"/>
<parameter name="age" value="19"/>
<class name="com.course.testng.paramter.ParamterTest"/>
</classes>
2.DataProvide参数化
在需要传参的方法上面的test注释下增加参数:
@Test(dataProvider = "data34")
然后增加Object参数,并且方法上增加注释:@DataProvider(name = "data34"):
(注意:测试方法和参数方法的name要保持一致)
@DataProvider(name = "data34")
public Object[][] provideData() {
Object[][] o = new Object[][]{{"zhangsan", 10}, {"lisi", 20}, {"wangwu", 50}};
return o;
}
多线程测试:
1.方法上test注释加上参数,其中:invocationCount表示多少个线程,默认1个,threadPoolSize表示线程池:
@Test(invocationCount = 10,threadPoolSize = 3)
2.通过xml文件实现多线程:
parallel指定线程级别: test级别:不同的test tag下的用例可以在不同的线程下执行 相同的test tag下的用例只能在同一个线程下执行 class级别:相同的class tag下的用例在同一线程下执行 不同的class tag下的用例在不同的线程下执行 methods级别:所有用例都可以在不同的线程下执行 tread-count:代表了最大的并发线程数 xml文件配置这种方法不能指定线程池,只有方法上才能指定线程池。
<suite name="test" parallel="class" thread-count="5">
<test name="test1">
<classes name="test1">
<class name= "com.course.testng.multiThread.MutiThreadtest2"/>
</classes>
</test>
</suite>
超时测试:
test注释中加tag:timeOut = 2000
@Test(timeOut = 2000)
public void testsuccess()throws InterruptedException{
Thread.sleep(2000);
}
@Test(timeOut = 2000)
public void testfial()throws InterruptedException{
Thread.sleep(3000);
}