Привет Стефан и спасибо за то, что Серенити/JS попробовать!
У вас есть пара вариантов здесь, в зависимости от того, что выберет время.
Поскольку он является транспортиром, который отвечает за таймауты, вам нужно будет заглянуть в свой файл protractor.conf.js
.
Предположим, что ваш файл protractor.conf.js
выглядит более или менее похожим на фрагмент ниже. Я опускаю Serenity/JS и Cucumber.js конфигурации для краткости, как они описаны в serenity-js.org:
exports.config = {
baseUrl: 'http://your.webapp.com',
// Serenity/JS config
framework: ...
specs: [ 'features/**/*.feature' ],
cucumberOpts: {
// ...
},
};
0. Увеличение общего таймаута
Для начала, вы можете увеличить общий тайм-аут всех тестов (для Protractor 5.0.0 значение по умолчанию установлено на 11s).
Чтобы сделать это, добавьте allScriptsTimeout
запись в вашей конфигурации:
exports.config = {
allScriptsTimeout: <appropriate_timeout_in_millis>
// ... rest of the config file
}
1. Загрузка страницы
Если веб-приложение тестируемый медленно загружаться, вы можете настроить getPageTimeout
недвижимость (по умолчанию установлено значение 10s):
exports.config = {
getPageTimeout: <appropriate_timeout_in_millis>
// ... rest of the config file
}
2. Стадия специфических Огурцов
Если конкретный шаг Огурца таймаут (который, скорее всего, дело здесь, как Cucumber.js устанавливает default value of the cucumber step timeout к 5s), вы можете увеличить время ожидания путем изменения шаг определение (значение в Millis):
this.Given(/^When he enters his credentials$/, { timeout: 10 * 1000 },() => {
return stage.theActorInTheSpotlight().attemptsTo(
Login.withTheirCredentials()
);
});
Пожалуйста, обратите внимание, что в ответе выше я предполагаю, что вы используете Serenity/JS с огурцами, чтобы проверить угловое приложение. Если вы используете другой веб-фреймворк (например, React), тест может также занять время, когда Protractor ожидает загрузки Angular.
Если это описывает ваш сценарий, вы можете ignoreSynchronization
:
exports.config = {
onPrepare: function() {
browser.ignoreSynchronization = false;
}
// ... rest of the config file
}
Чтобы узнать больше, проверить Protractor documentation и уже упоминавшийся Cucumber docs.Я также добавлю статью о serenity-js.org в ближайшее время, чтобы описать различные варианты, поэтому все находится в одном месте :-)
Надеюсь, это поможет!
Jan
Это работает, за исключением 'browser.ignoreSynchronization', который устарел. –