Выполнение тестов e2e с использованием конфигурации Protactor multiCapabilities, но ограничение максимальных экземпляров Webdriver
Контекст
Я пытаюсь использовать новый Protractor 0.19.0 с опцией конфигурации multiCapabilities. Он работает, как описано в документах:
- Он упрощает выполнение тестов в нескольких браузерах (нет необходимости в grunt, а не script, только 1 файл конфигурации).
- Он проводит параллельные тесты
Второй момент для меня проблематичен. Одно из моих приложений не обрабатывает множественное соединение с данными, подразумевая, что тесты терпят неудачу.
Мой вопрос:
Можно ли ограничить максимальное количество экземпляров Webdriver, чтобы отключить параллельное тестирование для этого приложения?
Что я пробовал
Я нашел в Selenium Webdriverjs Grid2 wiki, что есть параметр maxSession
, который идеально подходит для моего случая! Но я попытался добавить его в конфигурацию Protractor без успеха.
maxSession
также находится в желаемых возможностях. Кто-нибудь знает, работает ли еще?
Вот ссылка на тему с несколькими связями, я оставил там комментарий.
Если вам нужна дополнительная информация, не стесняйтесь спрашивать:)
Спасибо заранее!
РЕДАКТИРОВАТЬ: Выделенный вопрос GitHub
EDIT2: Недавно я попытался добавить seleniumArgs: ['-maxSession=1']
в мою конфигурацию Protractor, к сожалению, это тоже не работает...
Ответы
Ответ 1
Реализовано в это коммит и выпущено в 0.24.0 (см. Журнал изменений трактатора).
Вам нужно добавить опцию maxSessions
в конфигурационный файл protractor со значением >= 1 (в противном случае считается неограниченным).
Пример protractor.config.js:
exports.config = {
seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
specs: [
'../e2e/**/*.js'
],
multiCapabilities: [
{'browserName': 'chrome'},
{'browserName': 'firefox'},
{'browserName': 'phantomjs'}
],
maxSessions: 1,
baseUrl: 'http://localhost:8000'
};
Протестировано и работает как ожидалось для моего случая.
Ответ 2
Я думаю, вы можете установить это, запустив узлы селена в командной строке и указав:
MaxInstances
Это говорит.... сколько экземпляров одной и той же версии браузера может работать через удаленную систему.
или
MaxSession
Это говорит о том, сколько браузеров (любой браузер и любая версия) может одновременно работать параллельно в удаленной системе. Таким образом, это переопределяет настройки Max Instances и может ограничивать количество экземпляров браузера, которые могут выполняться параллельно.
из этого ответа
Итак, вы запустите свой node как таковой:
java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://******:4444/grid/register -maxSession 5