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

如何实例化远程Web驱动程序,以便使用Java和Selenium与Serenity并行运行测试

江同化
2023-03-14

我使用Java、Selenium、Cucumber、Serenity和Feature文件编写了一个测试自动化框架,当一次运行一个测试时,该框架可以正常工作。

我希望能够并行地运行测试,但当我尝试这样做时,几个浏览器打开,但每次只有一个浏览器在其中发生任何事情--大多数测试失败。

我认为这是因为我声明和实例化远程Web驱动程序的方式。

public class FrameworkInitialize {
    public static RemoteWebDriver driver;
}

我有另一个名为StartLocalWebBrowser的类,其中的驱动程序实例化如下所示:


public class StartLocalWebBrowser extends FrameworkInitialize {

    public static void StartBrowser(String browserType) {
        {

            switch (browserType) {

                case "chrome": {
                    System.setProperty("webdriver.chrome.driver", properties.getProperty("ChromeDriver"));
                    ChromeOptions chromeOptions = new ChromeOptions();

                    driver = new ChromeDriver(chromeOptions);
                    break;
                }

                case "firefox": {
                    System.setProperty("webdriver.gecko.driver", properties.getProperty("GeckoDriver"));
                    driver = new FirefoxDriver();
                    break;

        }
    }

}

那么,正确的方法是什么来改变我的代码,使它并行工作呢?

共有1个答案

赫连昕
2023-03-14

我找到了一个快速的解决方法:

在POM中,在maven-failsafe-plugin部分中,我添加了以下内容:

<forkCount>5</forkCount>
<reuseForks>true</reuseForks>

并且我还在POM中添加了cucumber-jvm-parallel-plugin的配置。

 类似资料:
  • 我是Serenity和BDD的新手。我有一个基于Serenity Cucumber和Page based模型的小型演示项目。项目结构如下: 登录和注销功能大约有8种情况。 我希望能够并行运行功能文件。实现这一点的最简单和最有效的方法是什么? 到目前为止我已经 > 为每个功能创建了单独的 Runner 类,然后使用故障安全或万无一失的插件 - 这是我不想要的,因为我不希望每个功能文件都有新的运行器。

  • 我试图运行一个托管在tomcat上的Javawebapp,它将运行selenium/chrome web驱动程序。 然而,当您尝试启动Chrome驱动程序时,您会遇到500个内部服务器错误 java.lang.com.google.common.base.Preconditions.check状态(ZLjava/lang/String; Ljava/lang/Object;)Vorg.openqa

  • 我是SeleniumWebDriver的新手。我写这段代码是为了理解导航命令,但是一旦浏览器打开,就会显示一个登录弹出窗口。我试图使用类名或xpath关闭它,但出现超时异常。 在这种情况下,我需要使用显式等待吗?你能帮我找出问题所在吗? } 例外情况: [43.366][SEVERE]:超时接收来自渲染器的消息: 37.150[43.373][SEVERE]:超时接收来自渲染器的消息:-0.007

  • 我试图在远程节点上运行selenium网格代码,但它总是引发异常。 集线器: 它会听192.168.1.106:4444 节点: 它将在192.168.1.132:5566收听 Java代码: 节点日志: 操作系统:Fedora 23,Firefox版本50.1.0,selenium独立服务器3.0.1

  • 问题内容: 我正在尝试通过for循环在多个浏览器中运行相同的测试,但它始终仅在Firefox上运行。 一项有趣的观察;当我包含该参数时,它仅在Internet Explorer上运行。 Selenium Webdriver是否以这种方式工作,或者我的理解是错误的? 问题答案: 我实际上已经在Java中完成了此操作,以下对我来说效果很好: 如果您要使用其他语言编写测试,则当然需要对此进行调整,我知道

  • 问题内容: 我正在尝试运行一个ruby文件,该文件将使用seleniumwebdriver启动chrome驱动程序。我有selenium独立服务器2.35.0。和chromedriver可执行文件已安装。我正在通过运行服务器来启动 两个会话正在启动,chrome驱动程序无法启动。 这是在我使用以下文件运行文件之后 我对此并不陌生,无法找出问题所在。而且,我也试图让它无头运行,所以我正在运行Xvfb