问题标签 [parallel-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 用于并行测试 Rails 应用程序的 JRuby 友好方法
我正在寻找一个系统来并行化使用 JRuby 工作的 Ruby on Rails 应用程序(使用 rspec、黄瓜)中的大量测试。Cucumber 其实还不错,但完整的 rSpec 套件目前需要将近 20 分钟才能运行。
我能找到的系统(hydra、parallel-test)看起来像是使用分叉,这不是 JRuby 环境的理想解决方案。
maven-2 - Maven Surefire:无法分叉并行测试执行
使用 Maven surefire,我无法分叉并行测试执行。也就是说,我的每个测试用例都需要在单独的 JVM 中运行,因此需要分叉。此外,我希望我的测试用例并行运行。第一部分工作没有问题:我能够在自己的 JVM 中运行每个测试用例。然而,第二部分对我来说仍然是一个挑战。我还没有设法让测试用例的并行执行工作。这是我的插件声明的样子:
我已经尝试了方法和类,但没有看到任何并行化。我的 JUnit 版本是 4.7,如依赖声明所示:
任何帮助都会非常有用。
格雷戈里。
selenium - 使用数据驱动测试用例使用 MBUnit/Gallio 进行并行测试
我一直在RemoteWebDriver
使用 Selenium Grid 对 Selenium 2 进行大量阅读。目前我的测试是在Test()
使用[Test]
属性中生成的。
我有一个TestCriteria
类,我填写了信息,然后使用 Selenium WebDriver '页面对象设计模式' 作为一种“控制”如何将这些数据输入到我的测试中的方式。
所以,我有一个简单的标准对象,例如:
然后在 LoginPage 对象中使用此信息。
现在,有了这种结构,一旦我有了测试数据,我就可以在我的测试中创建一些好的方法链接,比如我的 Credentials 对象,需要在其他页面上填写的数据等。
}
这一切都很好,但是......如果我想从可以从 XML 反序列化的序列化 TestData 对象中加载这个测试数据,该怎么办?
我也对使用 感兴趣RemoteWebDriver
,我已经使用过,但是与使用相比仍然很脆弱IWebDriver driver = new FireFoxDriver();
,但是忽略这些问题,我真的很想多次运行 TESTCASE ......同时。这让我想到了并行测试的问题。
我知道 MBUnit 可以处理这是 Gallio 的一部分,我还研究了 PUnit,它是 Nunit 的扩展,但它还有很长的路要走。所以我决定坚持使用 MbUnit。
这使我能够使用属性运行 TestFixtures [Parallelizable]
。因此,如果我编译我的项目并将项目 dll 加载到 Gallio TestRunner GUI 中,我可以同时运行 4 个测试用例,这反过来又会打开 4 个浏览器同时运行每个测试,也可以给网站施加压力当所有 4 个测试都在运行时。(显然,这将增加为在多台机器上使用 selenium RemoteWebDriver 和 Selenium Grid 运行数百个浏览器。
这里有谁知道我可以加载 xml 序列化对象集合的方法,生成新的 TestFixture 对象,这些对象可以将[Parallelizable]
属性添加到测试夹具的顶部,并在加载 1-10 后让它们同时运行.xml 文件,例如:C:\TestCase 目录?
我的想法是加载所有这些,然后让 Selenium Grid 处理浏览器会话,其中 1 - 5 个 Selenium 节点运行连接到主 selenium 网格集线器。
当我找不到允许我生成 a 的框架时,我很难真正利用 Selenium Grid Test Fixture
,其中包括 a[SetUp]
[TearDown]
[Test]
以及根据从 TestCase .xml 加载的内容为测试属性设置某些测试条件的能力文件。
例如,如果 TestCase .xml 文件有一个失败的元素,那么我如何加载这个 .xml 文件并为此在我的 TestFixture 的 [Test] 上设置一个属性,或者将 TestCase .xml 描述映射到[Test(Description = "")]
属性运行。
我已经知道 selenium webdriver 的功能、页面对象设计模式、屏幕截图的 seleniumEventFiringWebDriver
功能。
我如何利用加载几个 XML 序列化 TestCaseData 的能力,在加载这些对象后生成新的 TestFixture 对象?
理想情况下,我希望每个 TestFixture 的 [SetUp] 进行设置,IWebDriver
因为某些 URL 会根据 TestCase.xml 文件包含的内容而有所不同,例如,此测试是在 UAT 环境、测试环境、预生产中运行环境,我需要在测试运行之前进行设置。
有没有人有一个基本示例,它将这些主要概念与 Selenium Grid/Selenium WebDriver 一起使用,并能够并行运行这些测试装置以利用运行多个浏览器的 Selenium Grid 功能。
所以我在伪代码中寻找一些东西。
也许我正在以错误的方式进行这个设计。请对并行化这些的最佳方法有任何建议吗?
cucumber - 使用 Gems 或 Jenkins(或两者)在多台机器上并行 Cucumber BDD 测试
我正在使用 BDD 和Cucumber(带有 page_object gem)、Watir和Jenkins运行一个项目。现在,我们正在寻找并行化测试的最佳方法,以减少在多个虚拟机上使用不同的导航器等进行测试的时间。
我认为有两种方法:
- 使用 Ruby 工具,如 parallel_test、Hydra、TestJour、TestBot...
- 或通过 Jenkins 组织一切,使用路径、标签等。
- 以某种方式同时使用两者
为了以正确的方式努力……您认为 Jenkins 是在多台机器上进行并行测试的好选择,还是应该给另一个工具一个机会?欢迎提出建议:)
selenium - 在 python 中进行 Selenium 并行浏览器测试
我与 Selenium 合作了一段时间并进行了一些测试,这很棒。现在我创建了一个测试用例,我想同时在 IE、Firefox 和 Google Chrome 上运行它。我已经单独运行它并且它们运行得很好,但我想知道是否有办法更改我的脚本并将它们一起运行。
我已经使用集线器和三个遥控器(Firefox 端口=5556、IE 端口=5557 和 Chrome 端口=5558)设置了网格。现在,当涉及到脚本时,我设置了三个潜水员:
然后我创建了三种不同的方法并使用每个驱动程序运行它们。我还没有测试它,但我想知道:有没有一种有效的方法来做到这一点?
提前致谢!
python - 硒+鼻子的平行测试
我正在尝试与多进程插件并行运行功能测试,这有时会给我随机 TimeoutException
我的测试非常简单,他们每个人都只是去一个网页并检查某个元素是否存在。
有人知道可能是什么原因吗?
谢谢
webdriver - nspec 可以运行并行测试吗?
我正在为 C# 寻找 Rspec 风格的工具,并找到了 Nspec。
我将通过 Saucelabds 将它用于 Webdriver 测试,因此并行运行测试的能力是一个关键考虑因素。
这可以在 Nspec 中完成吗?目前我使用 MBunit,它对并行测试有很好的支持,只能真正考虑也支持这个的 BDD 方法。
我相信 Specflow 可以并行运行,但我正在寻找 Rspec 风格而不是 Cucumber 风格的工具
谢谢
junit - 如何在使用页面对象模型时并行运行 Junit 测试?
请分享一些有价值的信息。我没有在互联网上看到任何对此进行详细解释的文档或标准参考。即使您有与 TestNG 相关的信息(使用页面对象模型),我也会很感激。
ruby-on-rails - rspec 的并行测试执行无限期挂起
我正在通过 capybara-webkit 驱动程序上的 parallel_tests 运行我的规范。我有以下红宝石环境:
在包含以下内容的 gemset 上运行 rvm(为了相关性而截断了 capybara、rails、rspec 和 parallel_tests。如果看到我的 gemset 的更大范围会有所帮助,请告诉我):
当我在单个进程上运行我的测试服时rake spec
,我的所有测试都会运行完成。但是,在运行 parallel_tests 时,会发生以下情况:
此后,这些进程最终将开始返回:
但是,在前 6 个进程返回后,parallel_spec 将无限期挂起,永远不会终止,并且永远不会打印剩余 2 个进程的输出。
我在运行 OS X Lion 的 MacBook Pro 上,配备 2.4GHz Intel i7。
所以我的问题很简单:它为什么挂起,我如何调试它挂起的原因,以及如何阻止它挂起并允许 parallel_tests 运行完成?
ruby-on-rails - parallel_tests gem 是否按顺序运行您的测试套件?
我正在阅读parallel_tests 源代码,但还不明白,所以我想我会跳入追逐并在这里问我的问题。
parallel_tests gem 是同时还是按顺序运行你的所有测试?(是否可以同时运行多个测试)
当我运行并行测试时,它看起来像这样:
- 找到我所有的测试
- 将它们分成偶数堆(每个处理器一个)
- 按顺序运行每一堆测试
我想知道这是因为使用四个处理器运行 rake parallel:test(75 分钟)和 rake test(85 分钟)之间的时间差异很小。
并行测试的输出使它看起来像是在按顺序运行测试组。
我的输出如下所示:
它首先表明它已找到我的所有处理器:
然后它似乎按顺序运行每个测试子集:
那么,这是我输出的一个技巧,还是真的一个接一个地运行每组测试。我在想我会得到更好的时间改进,而且这对我需要并行化以使我的测试运行的其他东西有很大的影响。