使用Cucumber,我们创建包含不同场景的不同功能文件。我们要记住的一件事是每个场景都独立于所有其他场景。
问题:我们可以为所有功能文件或场景执行并行执行吗?
答案 0 :(得分:1)
开箱即用Cucumber不支持并行测试。您可以使用Maven运行并行测试。我们有一个github项目检查此链接。它有一些关于并行测试的细节。
查看以下链接:
答案 1 :(得分:1)
是的,正如其他两个答案所暗示的那样,它不是开箱即用的。
我在上面托管Cucumber-JVM帖子的公司工作。验收测试 - 尤其是基于Web的测试 - 通常非常慢,并行测试是加速测试的好方法。您可能还想考虑在无头浏览器中运行Web测试,例如phantomJS。它们非常适合夜间运行,但我会在发布之前在firefox或chrome上测试它。您可能有浏览器特定的错误。
如果您正在运行Selenium测试,您可能还需要考虑使用Selenium Grid。上述方法在同一台机器上启动多个浏览器 - 但机器只能运行这么多浏览器。 Selenium Grid将在多台机器之间平衡测试。例如,你可以拥有5个节点,每个节点运行5个并行测试,每个节点并行测试25个!
如果并行运行多个测试,请记住测试应该是隔离的 - 理想情况下是否拥有并拆除自己的数据。不要假设任何其他测试的顺序(we use aliasing to get around this)。
哦,如果你打开它真的高,你最终会得到性能测试。所以要小心!
这是一些方便的链接:
答案 2 :(得分:1)
感谢大家的帮助!!我有答案。以下是逐步解决方案 味道 - 黄瓜-JVM IDE - Eclipse 1-什么? - 删除您的测试运行器文件 为什么? - 对于并行测试,JVM会自动为每个并行进程创建每个运行程序 什么时候? - 这个可能是任何配置之前的第一步
2-什么? - 在POM.xml中添加下面提到的属性 为什么? - 稍后会添加 何时? - 编译之前
3-什么? - 在POM.xml中添加下面提到的插件 为什么? - 这会自动创建跑步者 何时? - 编译之前
org.apache.maven.plugins Maven的万无一失,插件 2.19.1
<configuration> <additionalClasspathElements> <additionalClasspathElement>resources</additionalClasspathElement> </additionalClasspathElements> <forkCount>5</forkCount> <reuseForks>true</reuseForks> <includes> <include>**/*IT.class</include> </includes> </configuration>
4-什么? - 在POM.xml中添加下面提到的插件 为什么? - 这将基于FEATURE或SCENARIO创建并行执行 将创建jason,HTML报告 何时? - 编译之前
com.github.temyers 黄瓜-JVM-平行插件 2.2.0 generateRunners 验证 generateRunners
<configuration> <glue>russel.StepDefination.Option1.IN451</glue> <featuresDirectory>Login</featuresDirectory> <cucumberOutputDir>target/Parallel-report</cucumberOutputDir> <format>json,html</format> <parallelScheme>SCENARIO</parallelScheme> <!-- <parallelScheme>FEATURE</parallelScheme> --> </configuration> </execution> </executions>
5-转到控制台并运行commomd - mvn干净 - mvn编译 - mvn验证
答案 3 :(得分:0)
确实可能。
请参阅此链接以获取所有信息和信用:http://shashikantjagtap.net/running-cucumber-features-in-parallel-and-aggregating-reports/
希望这有帮助