首页 > 解决方案 > 有什么方法可以分块而不是完整地划分和运行 testng 测试

问题描述

我的 testng.xml 中有 100 个测试,大多数测试由于时间问题而失败,但是当我分块运行它们时它工作正常

我尝试的一种无效解决方案是将少量测试分成多个 testng.xml 文件并一个一个运行,寻找可以在运行时执行相同操作的替代方案

这是我的 testng.xml 的样子

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
    <listeners>
        <listener class-name="baseClasses.TestListener"></listener>
    </listeners>
    <test name="Android">
        <parameter name="platform" value="android"></parameter>
        <classes>
           <class name="testCases.android.VerifyLoginLogout" />
           <class name="testCases.android.test1" /> 
           <class name="testCases.android.test2" />
           ...

           <class name="testCases.android.test100" />
        </classes>
    </test>
</suite>

关于如何将测试分成块并在运行时一一运行的任何建议,所以我不需要将测试分成多个 testng.xml 文件

注意 - 甚至尝试在 testng.xml 中以包方式运行

标签: javaseleniumtestngappiumtestng.xml

解决方案


据我所知,您要分批运行测试用例。如果我是正确的,那么这很简单。只需将您的所有测试用例划分为多个test标签并使用您想要在test标签中执行的测试类。请看下面。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
    <listeners>
        <listener class-name="baseClasses.TestListener"></listener>
    </listeners>


    <test name="Android-1">
        <parameter name="platform" value="android"></parameter>
        <classes>
           <class name="testCases.android.VerifyLoginLogout" />
           <class name="testCases.android.test1" /> 
           <class name="testCases.android.test2" />
           <class name="testCases.android.test3" />
        </classes>
    </test>


        <test name="Android-2">
        <parameter name="platform" value="android"></parameter>
        <classes>
           <class name="testCases.android.test4" /> 
           <class name="testCases.android.test5" />
           <class name="testCases.android.test6" />

        </classes>
    </test>


</suite>

我希望它会帮助你。


推荐阅读