【问题标题】:Tests break when they are running in parallel测试在并行运行时中断
【发布时间】:2018-09-04 07:24:34
【问题描述】:

当我并行运行功能时(通过在wdio.conf.js 中将maxInstances 设置为2)它们每隔一段时间就会失败,但是当maxInstances1 时,一切正常。似乎这两个测试在并行运行时会以某种方式使用彼此的会话。知道它是什么吗?

一件重要的事情。 Webdriver.io 无法进行断言(因为它们是在不同的会话中以某种方式进行的),因此堆栈跟踪对于失败的断言非常简单。

wdio.conf.js

exports.config = {
  specs: [
    './features/*.feature'
  ],
  maxInstances: 2,
  services: ['selenium-standalone'],
  capabilities: [
    { browserName: 'chrome' }
  ],
  baseUrl: 'http://localhost:4000',
  framework: 'cucumber',
  reporters: ['spec'],
  cucumberOpts: {
    require: ['./features/steps.js'],
    strict: true
  }
};

login.feature

Feature: Login page
  Scenario: Click on the search link redirects the user
    Given the user is on the login route
    When the user clicks on the search link
    Then he sees the search route

search.feature

Feature: Search page
  Scenario: Click on the login link redirects the user
    Given the user is on the search route
    When the user clicks on the login link
    Then he sees the login route

steps.js

const { Given, When, Then, Before, After } = require('cucumber');
const { assert } = require('chai');

Given(/^the user is on the login route$/, () => browser.url('/login'));
When(/^the user clicks on the search link$/, () => browser.click('.search-link'));
Then(/^he sees the search route$/, () => assert.equal(browser.isExisting('.search-route'), true));

Given(/^the user is on the search route$/, () => browser.url('/search'));
When(/^the user clicks on the login link$/, () => browser.click('.login-link'));
Then(/^he sees the login route$/, () => assert.equal(browser.isExisting('.login-route'), true));

【问题讨论】:

    标签: cucumber webdriver-io


    【解决方案1】:

    这是因为我试图使用 browser-sync 为应用程序提供目录。当使用任何其他 Web 服务器提供目录时,一切正常。据我了解,这是因为browser-sync 在打开多个浏览器时尝试同步 url。

    【讨论】:

      【解决方案2】:

      我可以知道这个浏览器同步的确切位置。即使我的测试用例在并行运行时也会失败,尽管顺序运行是成功的。

      奇怪的是,我观察到最小化浏览器中的测试用例正在失败,而处于最大化/正常状态的测试用例正在通过。

      修改此浏览器同步可能会解决此问题,但不确定在哪里可以找到浏览器同步代码。绝对不是 package.json 和配置文件的一部分

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 2021-10-25
      • 2019-03-12
      • 2023-02-26
      相关资源
      最近更新 更多