并行浏览器执行可能在黄瓜(Java / Maven)?

时间:2017-04-21 09:15:56

标签: selenium selenium-webdriver junit cucumber testng

并行浏览器执行可能在黄瓜(Java / Maven)?

例如,我知道在不涉及Cucumber的情况下使用TestNG肯定是可能的,但是甚至可以将Java,Cucumber,jUnit和TestNG嵌入到一起吗?

我已经尝试了以下TestNG.xml文件,该文件指向一个转轮类,然后指向多个功能文件,但没有成功:/

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Automation_Scripts" verbose="2"  parallel="classes" thread-count="2">
    <listeners>
        <listener class-name="Framework.utilities.RetryListner"></listener>
    </listeners>

    <test name="Automation Tests">
        <packages>
            <package name="TestFramework.ncc.*"></package>
        </packages>
    </test>
</suite>

3 个答案:

答案 0 :(得分:1)

据我所知,黄瓜没有内置功能,但我已经看到了一种方法,不同的junit类运行不同的Cucumber场景,然后并行运行。

通过使用标记或为不同的运行者类定义不同的功能,定义哪些类可以通过哪个类运行。

有一个maven插件似乎可以自动化这种方法:https://github.com/temyers/cucumber-jvm-parallel-plugin

答案 1 :(得分:0)

这可以使用TestNG使用黄瓜来完成。

为实现这一目标,您必须为每个功能文件配备独立的测试运行器。

例如:

TestRunnerA指向某个文件夹中的功能A

TestRunnerB指向某个文件夹中的功能B或相同的

如果所有要素都在同一文件夹中,请在要素中指定确切的文件(在黄瓜选项中)。

然后你可以将它们指定为testNG xml中的单独测试,它们将并行运行。

这里可以看到它的样本 Link

答案 2 :(得分:0)

Jithu Paul的回答是通常的处理方式,这主要是因为每个跑步者类都需要具有用于输出测试结果的唯一黄瓜选项(即,唯一的JSON文件名)。这种回旋方式是由于无法参数化Java批注。但是,您可以使用Java反射来动态重命名Cucumber选项。 这个项目有一个很好的例子: https://github.com/workpeter/ARGOS

特别是赛跑者类。截至今天,它位于这里: https://github.com/workpeter/ARGOS/blob/master/src/test/java/integrationTests/cucumber/Runner.java