问题标签 [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.

0 投票
1 回答
1229 浏览

ruby-on-rails - parallel_tests 使用 rspec --only-failures 运行失败的测试

我在我的 rails 项目上运行 parallel_tests gem,失败测试的输出进入文件 tmp/failing_specs.log。问题是该文件的输出格式不适合与“rspec --only-failures”一起使用。

parallel_test 输出文件在我的 .rspec_parallel 文件中定义;

该 failed_specs.log 文件的输出是这样的

rspec --only-failures 期望的输出如下所示;

我怎样才能让这两个很好地协同工作?

0 投票
2 回答
70 浏览

selenium - 如何知道并行测试执行中哪个系统测试失败?

我在 3 个不同的系统上并行运行 11 个测试场景。

S1:Win7 Firefox46.0
S2:Win10 Chrome58.0
S3:Mac Safari9.0

完成后,我可以在 TestNG 报告中看到测试失败,但我无法跟踪场景在哪个系统中失败。

有什么方法可以让我跟踪哪个系统或环境测试失败。

0 投票
2 回答
4165 浏览

java - 如何在 Selenium Web 驱动程序中登录到与不同用户并行的网站?

这是我需要自动化的场景:

  1. 我需要用不同的用户说“gmail”登录网站。
  2. 执行不同的操作,比如“撰写”、“更改设置”等。
  3. 然后注销。

我需要并行执行上述所有步骤。

  • class1 - 打开多个 Chrome 驱动程序。
  • class2 - 执行诸如导航、输入文本、点击等操作的方法。
  • class3 - 包含测试用例。

下面是我的代码:

使用上面的代码,我可以打开具有不同会话 ID 的多个浏览器实例。

然后,在同一浏览器中进行多次操作,即导航到gmail.com3 次,然后输入用户名 3 次(user1user1user1)。

它没有在 3 个不同的浏览器实例中运行。

请帮助我实现这一目标。

0 投票
1 回答
662 浏览

python - 在setting.py中设置django并行测试

您好,我知道可以通过--parallel标志在 django 中并行运行测试,例如。python manage.py test --parallel 10. 它确实加快了我正在工作的项目中的测试,这真的很棒。但是公司的开发人员共享不同的硬件设置。因此,理想情况下,我想将并行参数放入其中,./app_name/settings.py以便每个开发人员在测试中使用至少 4 个线程或多处理库提供的内核数量。

我知道我可以制作另一个脚本,比如说run_test.py我在其中使用--parallel.

总结一下 - 我的问题是:我可以在 django 应用程序的设置中放置并行测试运行的数量吗?如果答案是肯定的。还有第二个问题 - 命令行参数 (X)manage.py --parallel X会覆盖来自 './app_name/settings' 的设置

任何帮助深表感谢。

0 投票
0 回答
1686 浏览

spring - 如何使用 Spring 与动态 DB 端口并行运行集成测试

描述

我们有一个不断增长的应用程序,其中包含许多涉及到 redis 数据库连接的集成测试。由于数量不断增长,我们希望至少在类级别上将它们并行化。到目前为止,我们确实按顺序运行了所有测试,并com.github.kstyrc embedded-redis 0.6在静态@BefroreClass/@AfterClass方法(jUnit 4)中启动(停止)了一个嵌入式 redis DB()。DB的端口始终相同-- 9736。这也是在我们的 jedis 连接池的application.propertiesvia中设置的。spring.redis.port=9736为了使并行化工作,我们必须动态获取我们的端口,并将其发布给连接工厂以进行连接池。一段时间后,我通过BeanPostProcessor在配置中实施解决了这个问题。我剩下的问题是正确拦截 bean 生命周期和 Web 应用程序上下文。

代码片段并行测试

应用程序属性

BeanPostProcessor实施配置

使用动态端口进行并行测试的启动和关闭

测试并行化是通过槽实现的maven-surefire-plugin 2.18.1

补充

发生的情况是,在 springs bean 初始化阶段,我们的 TestConfig 挂钩到 bean 的生命周期,并在连接池启动之前在JedisConnectionFactory随机选择的端口上启动一个 redis 服务器。spring.redis.port=${random.int[4000,5000]}由于 redisServer 本身是一个 bean,我们使用destroyMethodbean 销毁时停止服务器,因此将其留给应用程序上下文生命周期。从静态端口到动态端口的从顺序到并行的过渡进展顺利。

问题

但是当我并行运行测试时,我会遇到如下错误:
java.lang.IllegalStateException: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@22b19d79 has been closed already通过


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties': Initialization of bean failed; nested exception is java.lang.IllegalStateException: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@22b19d79 has been closed already通过

帮助

我不太确定这个问题。也许我们可以省略 tearDown 调用, offerRepository.deleteAll()
因为@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
但是设置时的错误webAppContextSetup(this.wac).apply(springSecurity()).build()仍然存​​在。

并行运行时应用程序上下文是否搞砸了,或者为什么设置中的应用程序上下文已经关闭?
我们是否选择了错误的方法(错误的模式)?如果是这样,我们应该改变什么?

0 投票
1 回答
1408 浏览

ruby - 如何获得 rspec 的整个错误回溯?

目前我正在使用并行测试 rspec allure 0.8.0

运行测试后,我收到以下错误:

RSpec::Core::MultipleExceptionError

我需要错误的整个回溯。它是我需要传递给我用来运行的命令的一些参数吗?是否有一种永久的方式,以便它始终打印整个错误

0 投票
1 回答
797 浏览

java - TestNG 从父类继承@Parameters

我正在尝试使用 TestNG 为并发跨浏览器测试框架工作。但似乎我无法从父类中获取 @Parameters 并继续获取

测试NG.xml

基础测试

儿童测试

我没有找到有关如何使其工作的足够信息,因此如果您有任何想法,我想听听。

已检查但信息不足: TestNG Annotations in a Superclass

0 投票
2 回答
1031 浏览

ruby - 带有选项的 paralell_rspec --exclude-pattern

尝试在并行运行期间排除 /home 目录中的规范。

尝试了一些类似于以下的事情:

parallel_rspec myproj -n 4 -o '--exclude-pattern "myproj/spec/home/*_spec.rb"'

parallel_rspec ./myproj -n 4 -o '--exclude-pattern "./myproj/spec/home/*_spec.rb"'

但它不排除 /home 目录中的规范。它运行 myproj 中的所有规范。

以下命令确实排除了 /home 目录中的规范,但我需要并行运行它们:

rspec myproj --exclude-pattern "myproj/spec/home/*_spec.rb"

rspec ./myproj --exclude-pattern "./myproj/spec/home/*_spec.rb"

0 投票
1 回答
1583 浏览

selenium - 并行运行 cucumberJS 功能文件

我想知道 CucumberJS 是否可以并行处理正在运行的功能文件。目前,我们通过使用少数同时指向不同测试目录的 Jenkins 作业来处理并行测试,并将其传递给 selenium 网格集线器。这是可行的,因为集线器现在将处理它接收到的请求并以一种强制“并行”的方式运行它们。我们想要的主要目标是运行我们的测试,并设置最大会话数,比如 4 个,这样就有 4 个特性文件基本上可以一次运行。

我知道 cucumber 对此没有很好的支持,我怀疑 cucumberjs 是否会支持——但我确信那里有某种 npm 模块,有人已经取得了一些成功。任何帮助都会对我的团队大有裨益,而且在其他地方很少能找到 cucumberjs/protractor 用户!

0 投票
2 回答
711 浏览

java - 如何使用 selenium 网格 testng 数据提供程序执行并行跨浏览器测试

我正在尝试使用 selenium 网格和 TestNG 运行 chrome 和 Firefox 的并行测试。

我正在使用 @DataProvider 使其数据由单个 excel 文件驱动

但是,每次我尝试运行我的套件时,其中一个浏览器都会关闭并抛出以下错误堆栈,而其中一个浏览器仍然可以正常运行测试脚本:

我在 testng.xml 中有以下项目

对于之前的测试,我有以下内容,该测试位于名为 Framework 的类中,由名为 TestAll 的子类继承:

我的数据提供者方法如下,它在继承框架类的子类 TestAll 中:

我的测试方法包括以下子类 TestAll 继承框架类:

}