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

在套件中运行测试用例时在XML testng文件中获取错误

宇文育
2023-03-14
org.testng.TestNGException: org.xml.sax.SAXParseException; lineNumber: 37; columnNumber: 9; The content of element type "suite" must match "(groups?,(listeners|packages|test|parameter|method-selectors|suite-files)*)".
at org.testng.TestNG.parseSuite(TestNG.java:327)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:348)
at org.testng.TestNG.initializeEverything(TestNG.java:995)
at org.testng.remote.support.RemoteTestNG6_12.initialize(RemoteTestNG6_12.java:22)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:97)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

因为我是自动化测试的新手,所以我不能找出为什么会出现这个问题。我检查了所有语法错误,我觉得它
是正确的。但是我不能解决这个问题。这是我的xml文件,我正在尝试运行,但是得到了错误

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Merck Production Smoke Test Automation Test Suite">
    <parameter name="appURL" value="https://webqws.sial.com"/>
    <parameter name="browserType" value="chrome"/>   
    <listeners>
    <listener class-name="customListener.TestNGCustomReportListener"> 
    </listener>
    <listener class-name="customListener.Customreporter"/>
    </listeners>
    <!--  --> <test name="Merck Production Suite - Automation Scripts 
    Execution - US">
    <parameter name="countryName" value="United States"/>      
    <classes>
    <class name="testScript.Merck_Web_eCommerce_SmokeTest"/>   
    </classes>    
    </test> -->    
    <test name="Merck Production Suite - Automation Scripts Execution - UK">    
    <parameter name="countryName" value="United Kingdom"/>    
    <classes>    
    <class name="testScript.Merck_Web_eCommerce_SmokeTest"/>    
    </classes>     
    </test>    
    <!-- <test name="Merck Production Suite - Automation Scripts Execution - 
   INDIA">
   <parameter name="countryName" value="India"/>   
   <classes>
   <class name="testScript.Merck_Web_eCommerce_SmokeTest"/>
   </classes>   
   </test>  -->    
   </suite>

共有1个答案

许彦
2023-03-14

(最可能的)问题原因:

>

  • xml文件中不匹配的结束-->

    解决方法:删除它。

  •  类似资料:
    • 我试图使用XML和TestNG运行一个测试套件,但是我总是同时使用Eclipse和命令行得到相同的消息: 该文件已正确读取,但测试似乎没有运行。 以下是我的testng.xml的内容: 这是我的目录结构在Eclipse中的样子: 此外,这也是我试图通过命令行运行测试套件的方式: 我尝试过通过eclipse清理项目,但似乎没有帮助。我也试过跑步: < code>mvn clean,但它也没有完成工作

    • 如何在测试用例的运行时获得当前运行套件的名称?我正在使用下面显示的一段代码来获取当前套件名称。 Listeners类: 在这种情况下,我无法获得套件名称--它没有执行。有人能帮我查一下套房的名字吗?

    • 我有以下testng.xml文件。我希望testng按顺序运行这些测试。我不想将这些测试中的每一个分开到一个新文件中。 我在套件级别上尝试了parallel=“tests”、“classes”、“methods”和thread count=1的组合,但都没有成功。

    • 问题内容: 我的程序包测试用例分散在多个文件中,如果运行,它将运行程序包中的所有测试用例。 虽然没有必要全部运行。有没有一种方法指定要运行的文件,使其仅运行文件中定义的测试用例? 问题答案: 有两种方法。一种简单的方法是使用该标志并提供与您要运行的测试名称匹配的模式。 例: 有关更多信息,请参阅文档。 另一种方法是命名包含您要运行的测试的特定文件: 但是有一个陷阱。如果满足以下条件,则效果很好:

    • 问题内容: 我如何获取 当前正在运行的测试用例名称 ,而在testsuite集合中却有16个测试用例。测试按顺序执行(按照将测试添加到testSuite集合的顺序)。当我将所有测试添加到testSuite集合中时,我可以预览该对象,但是如何在测试运行时获取当前正在执行的测试。也许某些变量保存了此信息? 例: 使用Selenium-RC框架执行测试。 问题答案: unittest.TestCase.

    • 请让我知道是否可以通过TestNG运行并行套件?