当前位置: 首页 > 知识库问答 >
问题:

如何使用测试顺序让testNG逐类运行-testng

宗政和韵
2023-03-14

我有一个关于testNG的问题。我有五类测试(a类、b类、c类、d类、e类),并且在每个类中都有3个测试(test1 test2 test3)问题是我在所有测试中都有@Test(组={"吸烟测试"},启用=真,优先级=1)@Test(组={"吸烟测试"},启用=真,优先级=1)-类a@Test(组={"吸烟测试"},启用=真,优先级=2)-类a@Test(组={"吸烟测试"},启用=真,优先级=3)-类a

<代码>@测试(组={"吸烟测试"},启用=真,优先级=1) -类b<代码>@测试(组={"吸烟测试"},启用=真,优先级=2) -类b<代码>@测试(组={"吸烟测试"},启用=真,优先级=3) -类b

<代码>@测试(组={“smokeTest”},启用=真,优先级=1) -c类测试(组={“smokeTest”},启用=真,优先级=2) -c类测试(组={“smokeTest”},启用=真,优先级=3) -c类

<代码>@测试(组={“smokeTest”},启用=真,优先级=1) -d类测试(组={“smokeTest”},启用=真,优先级=2) -d类测试(组={“smokeTest”},启用=真,优先级=3) -d类

<代码>@测试(组={“smokeTest”},启用=真,优先级=1) -类别e<代码>@测试(组={“smokeTest”},启用=真,优先级=2) -类别e<代码>@测试(组={“smokeTest”},启用=真,优先级=3) -类别e

当我一类一类地手动运行时,一切都在工作。然而,当我试图让testng这样做时,他是并行运行的,并且根据测试的优先级在类之间跳跃,而不是完成类本身。a类测试1 b类测试1。。。。。。。如果我不希望任何并行化,我希望它像人一样执行操作,一个类一个类地执行,并且在类内优先执行测试,那么我如何使testng以这种方式运行呢。这是我的xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite allow-return-values="true" name="sanitySuite" parallel="false" thread-count="1" verbose="1" >
    <test name="smoke"  preserve-order="true" >
        <parameter name="userName" value="selmadmin@gmail.com"/>
        <parameter name="password" value="bbb"/>
        <groups>
            <run>
                <include name="smokeTest"/>
             </run>
        </groups>

        <packages>
            <package name =".*"/>
        </packages>
        <classes>
            <class name="tests.classA"></class>
            <class name="tests.classB"></class>
            <class name="tests.classC"></class>
            <class name="tests.classD"></class>
            <class name="tests.classE"></class>
        </classes>
    </test>

    <!--<test name="jkljlkj">-->
        <!--<packages>-->
            <!--<package name=".*"/>-->
        <!--</packages>-->
    <!--</test>-->
</suite>

共有1个答案

陆甫
2023-03-14

添加group by instances=“true”和parallel=“none”后,解决了

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite allow-return-values="true" name="sanitySuite" parallel="none" thread-count="1" verbose="1" >
    <test name="Role page"  preserve-order="true" group-by-instances="true">
        <parameter name="userName" value="selmadmin@gmail.com"/>
        <parameter name="password" value="bbb"/>
        <groups>
            <run>
                <include name="smokeTest"/>
             </run>
        </groups>

        <packages>
            <package name =".*"/>
        </packages>
        <classes>
            <class name="tests.classA"></class>
            <class name="tests.classB"></class>
            <class name="tests.classC"></class>
            <class name="tests.classD"></class>
            <class name="tests.classE"></class>
        </classes>
    </test>

    <!--<test name="Regression1">-->
        <!--<packages>-->
            <!--<package name=".*"/>-->
        <!--</packages>-->
    <!--</test>-->
</suite>
 类似资料:
  • 我正在使用@dataprovider TestNG 注释来传递不同的数据集。我的 TestNG 类包含 @BeforeClass、@DataProvider、三种@Test方法(一种使用数据提供程序的测试)和@After类。 数据提供程序包含 3 组数据(用户名和密码) 我只想知道如何按照以下顺序执行测试 --执行@Beforeclass - --转到测试并从数据提供程序打印第二组数据 --执行第

  • 问题内容: 我想使用TestNG以特定顺序运行Selenium WebDriver(Java)测试类。 例如。我有3个类,例如Test1,Test2和Test3。我要按Test2,Test1和Test3的顺序运行。是否可以不分组? 我尝试了以下方式,但是我以其自己的顺序(字母顺序)运行。 还有其他方法吗?如果没有分组,这可能吗? 问题答案: 只需使用 preserve-order =“ true”

  • 我正在通过运行Jest测试。默认情况下,Jest并行运行测试。有没有办法让测试按顺序运行? 我有一些测试调用依赖于更改当前工作目录的第三方代码。

  • 我有一个测试套件,它有一个用@beforeSuite注释的设置方法,该方法在该套件之前运行。偶尔,我需要单独运行测试或在一个类中运行所有测试。是否有一种方法让我的设置方法运行之前,这些太。 我的理解是,TestNG创建了一个默认套件,所以如何运行测试并不重要,如果我有一个用@BeForeSuite注释的方法,它应该在所有测试之前运行。然而,这对我不起作用。只有当我运行整个套房时它才运行。 xml套

  • 我正在使用Jmeter对应用程序进行负载测试。否:线程数为100。 第一个HTTP请求是主页。第二个HTTP请求是进行实际登录的登录页面。有n个API。 我想要实现的是: 前100个线程同时出现在主页上。然后100个线程同时进入登录页面。然后100个线程同时运行第n个API。