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

在testng(xml配置)中禁用并行执行

李兴庆
2023-03-14
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Regression">

<parameter name="browser" value="chrome" />
<parameter name="env" value="stage" />

 <test name="smokeTestSTAGE">

    <classes>   
    <class name="regression.gaming.playQuickGame2v2"/>
    <class name="regression.gaming.playQuickGame1v1"/>
    </classes>

 </test>

</suite>

我想也许我有一个@beforeSuite藏在某个地方,但这不是问题所在。我只在我的测试用例中使用@beforeClass+@afterClass,因此根据官方文档:

@BeForeClass:在调用当前类中的第一个测试方法之前,将运行带注释的方法。

@AfterClass:在当前类中的所有测试方法都运行完之后,将运行带注释的方法。

发现这篇文章:在TestNG中停止并行执行

并尝试根据Cedric的回答设置parallel=“false”或parallel=“true”和thread-count=“1”,但都无济于事。

我也发现了这个stackoverflow post stackoverflow testng,但最重要的答案是我们需要为每个测试用例创建一个套件来解决这个问题--事实肯定不是这样,因为它将完全定义套件的用途(即TestCases-->类的集合)

    @BeforeClass
    @Parameters({"browser", "env"})
    public void initialSetup(String browser, String env){
    //do some stuff here
    }

    @Test (priority=1)
    public void initializeVariables(){
    //test some stuff here
    }

    @Test(priority=2)
    public void loginAsPlayer1(){
    //test some more stuff here
    }

    @AfterClass 
    public void shutDown(){    
    checkIfLoggedIn();  
    quitBrowser();  
    }

提前感谢!

共有1个答案

闻安宜
2023-03-14

我知道这是一个老问题,但当我遇到同样的问题时,我遇到了它。

从6.9.13开始,测试的优先级似乎是从每个标记中的所有类中考虑的。因此,如果您有多个以@test(priority=1)开头的类,那么在进行priority=2的测试之前,它将运行这些测试方法中的每一个。

因此,测试不一定是并行运行的,它们是按优先级顺序运行的,如果重构为在类运行时相互跟随,应该会像预期的那样运行。

 类似资料:
  • 我有4个@Test方法,希望每个方法都运行3次。我想在12个线程中同时执行所有这些。 我创建了一个testng。像这样的xml文件 如果我设置并行="方法",TestNG在Test1的4个线程中执行4个测试方法,之后对Test2执行相同的操作,然后对Test3执行相同的操作。但是我不想在运行Test2之前等待Test1完成。TestNG能够运行Test1、Test2 有没有办法告诉TestNG不要

  • 我试图使用Selenium和TestNG进行测试设计,我将每个@test放在一个单独的类中,并对所有类使用once@beforeSuite&@afterSuite,原因是: 代码易于维护 数据驱动,以便能够选择通过文件运行的类。 案例1类: 注意:如果上面的代码在套件中使用单个运行,它就可以正常工作。 问题是它是否像下面的配置那样并行运行。

  • 本文向大家介绍如何在TestNG中实现并行执行?,包括了如何在TestNG中实现并行执行?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助TestNG实现并行执行。TestNG中有一个并行属性,用于此实现。TestNG中的并行执行与另一个称为thread-count的属性相关联。 parallel属性可以具有以下列出的值- 方法。 类。 执行个体 测验 示例 Testng xml文件。 对于

  • 问题内容: 我有一个测试,可以从数据提供者那里接收数据。我希望此测试与数据提供者的不同值并行运行。 我尝试了类似的方法: } 我收到的输出是: 你好:10 你好:12 你好:17 你好:11 你好:16 你好:14 你好:13 你好:15 产生10个线程,而我在线程池大小中指定5个。您能否告诉我们必须在上述代码段中添加哪些内容来控制数据提供程序线程池的大小。 问题答案: 您需要使用。在和不需要的值

  • 我想禁用除健康endpoint之外的所有执行器endpoint。所有文档都描述了如何在资源属性中实现这一点: 但我一直倾向于使用内联java配置。有人能解释一下我可以在应用程序的什么地方配置相同的吗?

  • 第一个类运行成功,但第二个类失败与错误: “org.testng.TestNGException:无法调用public void TestScripts.NewAccountCreation.AccountCreation1():将其设为静态或向类中添加无参数构造函数” 如果我添加非参数构造函数,我将得到空指针异常。 我使用PageFactory来设计我的测试用例。 Eclipse版本:开普勒 T