Selenium 并行浏览器测试

Selenium 并行浏览器测试,selenium,webdriver,cucumber,parallel-testing,Selenium,Webdriver,Cucumber,Parallel Testing,我有以下功能文件: Given I open "google.com" simultaneously in both FF and IE When I type "stackoverflow" and submit Then I should see the desired results 如何在两个不同的浏览器上并行运行测试 我知道可以使用TestNG完成,但我的项目中没有使用TestNG。我想知道是否还有其他方法 我可以想到三种不同的方法 按照您所做的方式编写场景。当您在第一步中找到IE

我有以下功能文件:

Given I open "google.com" simultaneously in both FF and IE
When I type "stackoverflow" and submit
Then I should see the desired results
如何在两个不同的浏览器上并行运行测试


我知道可以使用TestNG完成,但我的项目中没有使用TestNG。我想知道是否还有其他方法

我可以想到三种不同的方法

  • 按照您所做的方式编写场景。当您在第一步中找到IE时,创建一个IE实例。在第一步中看到FF时,创建一个FF实例。然后在以下步骤中使用这两种方法

  • 步骤中根本不包括浏览器。创建它们并在将工作委托给的助手类中使用它们

  • 为每个浏览器创建一个场景。“当我用Firefox打开Google时…”

如果您想要明确,请使用最后一种方法

如果您的用户不关心浏览器,请使用第二种方法


我自己不会使用第一种方法。

我可以想到三种不同的方法

  • 按照您所做的方式编写场景。当您在第一步中找到IE时,创建一个IE实例。在第一步中看到FF时,创建一个FF实例。然后在以下步骤中使用这两种方法

  • 步骤中根本不包括浏览器。创建它们并在将工作委托给的助手类中使用它们

  • 为每个浏览器创建一个场景。“当我用Firefox打开Google时…”

如果您想要明确,请使用最后一种方法

如果您的用户不关心浏览器,请使用第二种方法


我自己不会使用第一种方法。

如果你使用cucumber,你必须创建多个跑步者,然后使用maven并行运行它们。所以为每个步骤定义创建跑步者是件痛苦的事情,所以我们必须在目标文件夹中的运行时创建跑步者

  • 使用JVM并行插件

  • 如果您使用的是cucumber的最新版本,那么有一个很棒的插件,名为cucable


  • 如果您使用cucumber,则必须创建多个跑步者,然后使用maven并行运行它们。所以为每个步骤定义创建跑步者是件痛苦的事情,所以我们必须在目标文件夹中的运行时创建跑步者

  • 使用JVM并行插件

  • 如果您使用的是cucumber的最新版本,那么有一个很棒的插件,名为cucable


  • 确定哪种方法最适合实现并行执行-Cucumber JVM 4支持Cucumber v 4.0.0中的并行执行,我们不需要为每个功能文件创建单独的运行程序,您可以使用JUnit实现这一点(不需要使用TestNG和Cucumber JVM并行插件)

    从cucumber 4.0.0开始实现并行执行的步骤-

    1.添加正确的依赖项集。在实现过程中,我一直遵循JUnit。

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.2.3</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.2.3</version>
        <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>datatable</artifactId>
        <version>1.1.12</version>
    </dependency>
    
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-picocontainer</artifactId>
        <version>4.2.3</version>
        <scope>test</scope>
    </dependency>
    
    
    黄瓜
    黄瓜爪哇
    4.2.3
    黄瓜
    黄瓜刺柏
    4.2.3
    测试
    朱尼特
    朱尼特
    4.12
    测试
    黄瓜
    数据表
    1.1.12
    黄瓜
    黄瓜皮容器
    4.2.3
    测试
    
    2.在POM.XML下添加Maven Surefire插件

    
    org.apache.maven.plugins
    maven surefire插件
    3.0.0-M3
    方法
    1.
    假的
    真的
    真的
    **/*RunCukeTest.java
    
    注意-RunCukeTest是运行程序文件名,请记住,TestNG依赖项会导致Surefire忽略JUnit包装类。如果根本不需要,请删除所有TestNG依赖项,否则您需要定义2个执行选项,一个用于TestNG,另一个用于JUnit,并根据需要禁用一个


    完成所有操作后,您需要传递要从excel等源运行的浏览器名称,json等。确定哪种方法最适合实现并行执行。

    Cucumber JVM 4支持Cucumber v 4.0.0中的并行执行,我们不需要为每个功能文件创建单独的运行程序,您可以使用JUnit实现这一点(不需要使用TestNG和Cucumber JVM并行插件)

    从cucumber 4.0.0开始实现并行执行的步骤-

    1.添加正确的依赖项集。在实现过程中,我一直遵循JUnit。

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.2.3</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.2.3</version>
        <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>datatable</artifactId>
        <version>1.1.12</version>
    </dependency>
    
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-picocontainer</artifactId>
        <version>4.2.3</version>
        <scope>test</scope>
    </dependency>
    
    
    黄瓜
    黄瓜爪哇
    4.2.3
    黄瓜
    黄瓜刺柏
    4.2.3
    测试
    朱尼特
    朱尼特
    4.12
    测试
    黄瓜
    数据表
    1.1.12
    黄瓜
    黄瓜皮容器
    4.2.3
    测试
    
    2.在POM.XML下添加Maven Surefire插件

    
    org.apache.maven.plugins
    maven surefire插件
    3.0.0-M3
    方法
    1.
    假的
    真的
    真的
    **/*RunCukeTest.java
    
    注意-RunCukeTest是运行程序文件名,请记住,TestNG依赖项会导致Surefire忽略JUnit包装类。如果根本不需要,请删除所有TestNG依赖项,否则您需要定义2个执行选项,一个用于TestNG,另一个用于JUnit,并根据需要禁用一个


    完成所有操作后,您需要为每个场景传递您希望从excel、json等源运行的浏览器名称。

    您的问题还有另一个答案。查看关于Selenium Grid try generic runner的博客文章,这里详细解释了您的问题,这里有另一个答案。查看有关Selenium Grid try generic runner的博客文章,这里有详细解释