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

使用selenium testNG在不同浏览器中并行运行特性cucumber

长孙雅志
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="run test in parallel Suite" parallel="tests" verbose="1" configfailurepolicy="continue" thread-count="2">

  <listeners>

        <listener classname="com.driver.LocalWebDriverListener" />
    </listeners>
    <test name="Tests in FF">
        <parameter name="browserName" value="firefox" />
        <classes>
            <class name="com.runner.RunnerTestInFirefox" />
        </classes>
    </test>
    <test name="Tests in Chrome" >
        <parameter name="browserName" value="chrome" />    
 <classes>
            <class name="com.runner.RunnerTestInChrome"/>
        </classes>
    </test>
</suite> <!-- Suite -->

我创建了两个类运行器,一个用于chrome,另一个用于Firefox:

package com.runner;

    import org.junit.runner.RunWith;

    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;
    import cucumber.api.testng.AbstractTestNGCucumberTests;

    @RunWith(Cucumber.class)
    @CucumberOptions(
             features = {"/features"},
             glue={"stepsdefinition"})
    public class RunnerTestInChrome extends AbstractTestNGCucumberTests {

    }

当我运行我的测试浏览器chrome是打开和关闭的,但我不知道为什么它没有采取url和步骤的功能!

共有1个答案

於宾白
2023-03-14

Afaik Cucumber不支持并行执行,您可能需要使用一个额外的插件,或者需要使用带有QAF的gherkin。qaf建立在功能测试自动化的TestNG之上,提供浏览器管理、资源管理、数据驱动能力、带有屏幕截图和命令日志的详细报告。

在将gherkin与qaf一起使用时,您的配置文件可能如下所示:

<suite name="run test in parallel Suite" parallel="tests" verbose="1" configfailurepolicy="continue" thread-count="2">
      <test name="Tests in FF">
            <parameter name="driver.name" value="firefoxDriver" />           
            <classes>
                  <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
            </classes>
      </test>
      <test name="Tests in Chrome">
            <parameter name="driver.name" value="chromeDriver"/>                      
            <classes>
                  <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
            </classes>
      </test>
</suite>

注意:如果希望并行运行场景,请相应地设置parallel=“methods”thread-count

 类似资料:
  • 我有一个有很多功能的项目,我想在不同的浏览器中并行运行一个测试,使用cucumber jvm插件 在我的POM里。XML i添加了cucumber jvm和maver surefire两个插件 我创建runnerClass并添加: 现在,我无法运行测试,如何使用cucumber jvm或selenium网格并行运行浏览器中的不同功能

  • 我们在2000年左右有一组自动化测试用例,我们需要每天在每一个新的构建上运行它们。目前在一台机器上完成测试需要4个小时。为了减少这一点,我们计划通过启动多个相同类型的浏览器,在同一台机器上分批运行测试(每批500个)。假设每个测试套件有4个firefox浏览器会话。所以它可以在1小时内完成。使用selenium webdriver和TestNG可以实现吗?请建议。

  • 我用Java创建了一个简单的Cumber测试。基本上,当您运行功能文件时,它会转到一个网站,选择一个按钮并将您带到该页面。我想做的是通过BrowserStack运行这个测试。不仅如此,还可以在Browserstack中的多个浏览器/设备上并行运行此单一功能文件。e、 g在五个不同的浏览器/设备上运行相同的测试。

  • 问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,

  • Mocha在浏览器中运行。每个版本的Mocha都将拥有新版本./mocha.js并./mocha.css在浏览器中使用。 特定于浏览器的方法 以下方法仅在浏览器上下文中起作用: mocha.allowUncaught() :如果被调用,错误处理程序将不会吸收未捕获的错误。 典型的设置可能类似于下面,我们呼吁mocha.setup('bdd')使用BDD加载测试脚本,运行之前的界面onload与mo

  • 我正在使用GEB/Spock进行自动化测试。我正在使用Gradle作为我的构建工具。 我想调用不同的gradle任务来构建和运行一个特定的规范(测试)或一套规范。 显然,已经有了现有的构建指令,因为我可以调用,而且所有的规范都在Chrome上运行,我只是不知道如何添加更多的任务

  • 我目前正在尝试使用Selenium WebDriver(JAVA)2.53和Firefox 43.0执行TOR 6.0.4。我已经按照这篇文章的说明使用Selenium WebDriver和Tor,但在将Tor的profilePath加载到Firefox二进制文件时,我遇到了一个错误。我已经看到可以通过加载TOR配置文件来访问TOR。firefox二进制文件的默认存档,但我得到了一个驱动程序信息:

  • 我怎么让它工作?