Распараллелить выполнение браузеров с помощью CodeceptJS/WebdriverIO

Я использую Codeceptjs для автоматизации тестирования в JavaScript, который внутренне использует WebDriverIO. Я добился запуска на Соус, используя упомянутые рамки.

Мне удалось запустить тесты автоматизации в разных браузерах в лаборатории соуса, используя нужные возможности, но только один браузер за раз.

Запрос помощи

  1. Распараллелить все тестовые файлы запускается на одном браузере в соусной лаборатории.
  2. распараллелить тестовые прогоны на нескольких браузерах в соусной лаборатории.

Было бы здорово иметь обе вышеуказанные комбинации.

Какую конфигурацию я должен предоставить, чтобы выполнить два вышеуказанных требования для WebDriverIO / CodeceptJS.

Вот моя конфигурация, которая будет передана в лаборатории соусов.

--- --- codecept.conf.js

WebDriverIO: {
  url: "http://localhost:3000",
  browser: chrome,
  waitforTimeout: 60000,
  restart: false,
  logLevel: "silent",
  cssSelectorsEnabled: "true",
  timeouts: {
    script: 60000,
    "page load": 60000,
    implicit : 0
  },
  "host": "ondemand.saucelabs.com",
  "port":80,
  "user":"<SAUCE_USER_NAME>",
  "key": "<SAUCE_ACCESS_KEY>”,
  desiredCapabilities :{
    "chrome": {
      "browserName": "chrome",
      "name": "TEST_CHROME",
      "platform": "ANY",
      "version": "55.0"
    }
  }
}

Это список желаемых возможностей, которые я использую и выбираю одну возможность на основе выбранного имени браузера:

{
  "internet explorer": {
    "browserName": "internet explorer",
    "name": "TEST_IE",
    "platform": "Windows 7",
    "ignoreZoomSetting": true,
    "nativeEvents": false,
    "ignoreProtectedModeSettings": true,
    "version": "11"
  },
  "chrome": {
    "browserName": "chrome",
    "name": "TEST_CHROME",
    "platform": "ANY",
    "version": "55.0"
  },
  "firefox": {
    "browserName": "firefox",
    "name": "TEST_FIREFOX",
    "platform": "ANY",
    "version": "51.0"
  },
  "safari": {
    "browserName": "safari",
    "name": "TEST_SAFARI",
    "platform": "OS X 10.11",
    "version": "10.0"
  },
  "opera": {
    "browserName": "opera",
    "name": "TEST_OPERA",
    "platform": "Windows 7",
    "version": "ANY"
  },
  "MicrosoftEdge": {
    "browserName": "MicrosoftEdge",
    "name": "TEST_IEEdge",
    "platform": "Windows 10",
    "version": "13"
  }
}

3 ответа

Я никогда не использовал CodeceptJS. Однако, поскольку он использует Wdio, можно использовать свойство maxInstances для настройки количества браузеров, запускаемых параллельно.

Взгляните на документацию Wdio: http://webdriver.io/guide/testrunner/configurationfile.html

Руководство: параллельное исполнение

Добавьте к своему codecept.conf.js:

"multiple": {
  "internet explorer": {
    "browsers": ["internet explorer"]
  },
  "chrome": {
    "browsers": ["chrome"]
  },
  "firefox": {
    "browsers": ["firefox"]
  },
  "safari": {
    "browsers": ["safari"]
  },
  "opera": {
    "browsers": ["opera"]
  },
  "MicrosoftEdge": {
    "browsers": ["MicrosoftEdge"]
  },
  "parallel": {
    // Splits tests into chunks
    // for example: 2 chunks x 6 browsers = 12 threads
    "chunks": 2,
    // run all tests in each browser:
    "browsers": ["internet explorer", "chrome", "firefox", "safari", "opera", "MicrosoftEdge"]
  }
}

множественные вызовы для выборочных браузеров:

codeceptjs run-multiple chrome opera "internet explorer" firefox // create threads (four in all) for each browser: chrome, opera, internet explorer and firefox.

множественные вызовы для каждого браузера в несколько частей:

codeceptjs run-multiple parallel

Below is the codecept config for single and multiple run

To execute in single browser run codeceptjs run as per below config test will run on FF only.

To execute multiple browser test run codeceptjs run-multiple --all it will execute your test on safari and chrome both as below config is for safari and chrome.

        tests: '**/.funcspec.js',
  output: './output',
  helpers: {
    WebDriver: {
      url: '<YOUR URL>',
      browser: "firefox",
      show:true,
      desiredCapabilities: {
        'record_video': 'true',
         name: 'Single browser run',
      },
      "user": "USERNAME",
      "key": "KEY"
    }
  },
  multiple: {
    smoke:{
      browsers: [
        {
          browser: 'Safari',
          desiredCapabilities: {
            version: "latest-1",
            platform: 'OS X 10.11',
            name: 'Safari Parallel run',
          }
        },
        {
          browser: "Chrome",
          desiredCapabilities: {
            version: "latest-1",
            platform: 'Windows 10',
            name: 'Chrome Parallel run',

          }
        },
      ],
    },
  },
  include: {
    I: './steps_file.js'
  },
  bootstrap: null,
  mocha: {},
  name: 'somename',
  plugins: {
    pauseOnFail: {},
    retryFailedStep: {
      enabled: true
    },
    tryTo: {
      enabled: true
    },
    screenshotOnFail: {
      enabled: true
    }
  }
}
Другие вопросы по тегам