【框架系列】selenium-java-testng-maven-jenkins,使用testng.xml配置测试用例执行策略,为什么本地调试时正常,用jenkins构建后就出现异常了呢?

selenium-java-testng-maven-jenkins自动化测试框架,使用testng.xml配置测试用例的执行策略,在本地调试时策略正常可用,但使用jenkins构建后就只执行每个测试类的第一条用例,这是为什么呢?该如何解决呢?

testng.xml文件如下所示:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNGsuite" verbose="1" >
<test name = "allTest" >
   <classes>
  		<class name="com.testcase.TestSuite"/>
  		<class name="com.testcase.TestSuite2"/>
   </classes>
</test>
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
</suite>

测试类代码如下所示:

类TestSuite的测试方法

@Test(priority=1,description="TestSuite的第一个用例")
  public void test1() throws Exception{
  } 
@Test(priority=2,description="TestSuite的第二个用例")
  public void test2() throws Exception{
  } 
@Test(priority=3,description="TestSuite的第三个用例")
  public void test3() throws Exception{
  } 

类TestSuite2的测试方法

@Test(priority=1,description="TestSuite2的第一个用例")
  public void add1() throws Exception{
  } 
@Test(priority=2,description="TestSuite2的第二个用例")
  public void add2() throws Exception{
  } 
@Test(priority=3,description="TestSuite2的第三个用例")
  public void add3() throws Exception{
  } 

上面这样的情况,在本地环境调试时可正常运行,运行结果为共执行6条用例,且执行顺序如下:

test1
test2
test3
add1
add2
add3

但使用jenkins构建后,运行相同的代码,却出现了这样的结果:共执行了2条用例,仅执行了每个类的第一条方法

test1
add1

经过多次尝试,发现priority这个用来控制用例执行顺序的属性,对jenkins来说不能重复,哪怕是不同的测试类,也不能重复。

因此解决方法有2个:

  1. 为每个类的每个方法,赋予不同的priority,比如修改类TestSuite2。
@Test(priority=4,description="TestSuite2的第一个用例")
  public void add1() throws Exception{
  } 
@Test(priority=5,description="TestSuite2的第二个用例")
  public void add2() throws Exception{
  } 
@Test(priority=6,description="TestSuite2的第三个用例")
  public void add3() throws Exception{
  } 
  1. 在测试类的所有测试方法中去掉priority。
@Test(description="TestSuite2的第一个用例")
  public void add1() throws Exception{
  } 
@Test(description="TestSuite2的第二个用例")
  public void add2() throws Exception{
  } 
@Test(description="TestSuite2的第三个用例")
  public void add3() throws Exception{
  } 

致力于软件测试技术提高,你的点赞、评论和转发,是对我莫大的鼓励!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初心与使命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值