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

Selenium Grid for Webdriver TestNG的并行执行问题

张积厚
2023-03-14

我正在尝试用Web驱动集线器和TestNG并行机制设置Web驱动程序并行执行。我正面临线程的问题

我有一个扩展TestBaseSetUp的类,它有一个Beforemethod和Aftermethod,并设置为始终运行。对于Web驱动程序的并行执行,我想使用线程本地,但是@测试和@之前/@之后方法在不同的线程中。所以如果我在我的TestBaseSetUp中设置Web驱动程序为线程本地,并尝试进入我的测试方法,它会返回null。

public class TestCheck extends TestBaseSetUp {
    @Test
    public void test(){
          System.out.println("Thread in test " + Thread.currentThread().getId());

###

我们有办法让@Test和@Before/@After方法在同一个线程中吗

共有2个答案

洪楷
2023-03-14

你试过吗

    @Test(singleThreaded=true)

在班级层面。这样该类中的所有测试方法都将在同一个线程上运行。下面是一个例子

谢谢你,穆拉里

湛联
2023-03-14

@曼尼什·佩特

看看我的这篇博客文章:https://rationaleemotions.wordpress.com/2013/07/31/parallel-webdriver-executions-using-testng/这个想法是从依赖配置方法进行web驱动程序实例化转移到TestNG侦听器驱动的模型中,其中web驱动程序对象是从beForeInvock()中创建的,并在 看看我的这篇博客文章:https://rationaleemotions.wordpress.com/2013/07/31/parallel-webdriver-executions-using-testng/这个想法是从依赖配置方法进行web驱动程序实例化到一个TestNG侦听器驱动的模型中。TestNG保证beForeInvsion()、@Test和postInvsion()将始终在同一个线程上执行。所以现在您可以继续在这里使用线程本地。

 类似资料:
  • 我正在将并行执行引入我的testNG套件中。当我将“parallel”设置为“tests”时,两个浏览器打开,两个测试的第一个类同时开始--这是我所期望的。当我将其设置为“classes”时,我希望第一个测试中的两个类同时开始,但是只有一个浏览器打开,第一个类中的第一个方法执行,然后用第二个类中的第一个方法打开一个新的浏览器,依此类推。谁能告诉我我做错了什么? 下面是我的xml文件:

  • 我使用TestNG Selenium(ChromeWebDriver)并行执行测试时遇到了一些问题。基本上,我的测试实际上看起来并不是真正并行执行的。 尝试实现:从Excel电子表格读取数据。TestSuite中的所有测试用例。java应该在单独的WebDriver实例中对每一行数据执行——并行运行。例如,在单独的浏览器窗口中同时测试5个单独的登录/密码组合。 简图: TestNG。xml: 输出

  • 下午好!我使用以下堆栈进行实现自动化测试:Java8,Maven,Jenkins用于测试的自动化执行。有时(不是每次,大约占所有执行的3-5%)我会在并行执行过程中遇到测试问题。并行执行由Jenkins和Jenkins文件提供。jenkins文件的示例结构: null 我很绝望,不知道还能做什么。也许您在jenkins中的并行执行过程中也遇到过同样的问题(单个测试执行总是成功完成)。谢谢你,祝你有

  • 1.3 新版功能. 默认情况下,Fabric 会默认 顺序 执行所有任务(详细信息参见 Execution strategy ),这篇文档将介绍 Fabric 如何在多个主机上 并行 执行任务,包括 Fabric 参数设置、任务独立的装饰器,以及命令行全局控制。 它是如何运转的 由于 Fabric 1.x 并不是完全线程安全(以及为了更加通用,任务函数之间并不会产生交互),该功能的实现是基于 Py

  • 我有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类: 注意:如果上面的代码在套件中使用单个运行,它就可以正常工作。 问题是它是否像下面的配置那样并行运行。