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

Я использую Codeceptjs для автоматического тестирования в javascript, который внутренне использует WebDriverIO. Мне удалось запустить Sauce, используя упомянутую структуру.

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

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

  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"
  }
}

person pskushw    schedule 06.04.2017    source источник


Ответы (2)


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

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

person Andrii    schedule 15.04.2017
comment
Я пробовал все здесь. Однако я не могу запускать несколько браузеров параллельно на своем локальном компьютере. Просто хотел узнать, поддерживает ли его WebdriverIO? Запуск их в соусниках или Browserstack — это нормально, потому что у них реализована собственная сетка Selenium. Как мы достигаем этого на локальном уровне? - person Shweta Sharma; 29.03.2019

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

Добавьте в ваш 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
person fpsthirty    schedule 05.12.2018