Selenium、TestNG xml 文件,如果在不同的类文件中添加相同的优先级,则按执行顺序发出

我正在使用带有 TestNG 框架的 selenium WebDriver。在 xml 文件中,我调用了两个包含 2 个测试的类文件。我为每个班级的测试添加了优先级。但它总是以相同的优先级执行来自不同类的所有测试。


一级


package demo;


import org.testng.annotations.Test;


public class testing1 {


    @Test(priority = 1)

    public void test1(){

        System.out.println("Test one");

    }


    @Test(priority = 2)

    public void test2(){

        System.out.println("Test two");

    }

}

二班


package demo;


import org.testng.annotations.Test;


public class testing2 {


    @Test(priority = 1)

    public void test3(){

        System.out.println("Test Three");

    }


    @Test(priority = 2)

    public void test4(){

        System.out.println("Test Four");

    }


}

xml文件


<?xml version = "1.0" encoding = "UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="CavionTestSuit">

    <test name="Testing11">

        <classes>

            <class name="demo.testing1"></class>

            <class name="demo.testing2"></class>

        </classes>

    </test>

</suite> 

在这里,我得到的输出为:


Test one

Test Three

Test two

Test Four

如何根据添加的优先级在每个班级中一起运行测试。我的预期输出是:


Test one

Test two

Test Three

Test Four

如果我将第二个类的优先级添加为 3 和 4,它将按照 xml 文件中给出的顺序执行。但是对于具有多个类和测试的项目是不可行的。


UYOU
浏览 176回答 2
2回答

九州编程

当 testng 线程空闲并选择测试用例时,将执行测试。在您的情况下,线程在 testing1 类中查找测试用例,并找到优先级为 1 的测试用例,线程将被方法 test1 占用,一旦执行完 test1,线程将空闲并寻找另一个测试用例执行,它在测试2类中发现另一个优先级为1的测试用例,因此线程占用了test3方法而不是test2方法请注意,当使用testng.xml执行时,优先级不限于class级别,会分析整体优先级,first class first优先执行请使用下面的行来检查它正在执行的线程System.out.println("Test&nbsp;Case&nbsp;three&nbsp;with&nbsp;Thread&nbsp;Id:-&nbsp;"+&nbsp;Thread.currentThread().getId());要实现您的场景,您可以通过两种方式实现-- 在测试级别删除优先级,然后您的测试类将按顺序执行。-- 将 testing2 类中的测试用例重新排序为优先级 3 和优先级 4
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java