admin管理员组

文章数量:1624318

如果不使用priority参数,那在执行用例的时候,默认的执行顺序是按照测试方法名的字母顺序由小到大执行的,这点和pytest的默认执行顺序规则相同。举例:

public class TestDemo{
	public void caMethod(){}

	public void baMethod(){}

	public void aaMethod(){}

}

执行时的顺序是aaMethod–>baMethod–>caMethod

那如何对用例的执行顺序进行干预呢?可以使用priority参数在@Test注解中指定顺序,priority值越小越优先被执行,不指定值则默认priority为0,即最高优先级,最先被执行。
1.同一个类中,使用priority
public class TestDemo{
	@Test(priority = 1)
	public void caMethod(){}

	@Test(priority = 3)
	public void baMethod(){}
	
	@Test(priority = 2)
	public void aaMethod(){}

}

执行顺序是caMethod–>aaMethod–>baMethod

2.不同的类中,使用priority
public class TestDemo1{
	@Test(priority = 1)
	public void caMethod(){}

	public void baMethod(){}
	
	@Test(priority = 2)
	public void aaMethod(){}

}
public class TestDemo2{
	@Test(priority = 1)
	public void daMethod(){}

	@Test(priority = 2)
	public void eaMethod(){}
	
	public void faMethod(){}

}

执行顺序是baMethod–>faMethod–>caMethod–>daMethod–>aaMethod–>eaMethod

写在最后,如果一个测试集中有的用了priority参数有的没用,那优先会执行未设置priority的case,执行顺序按照首字母排序

本文标签: 顺序参数testngPriority