#shell #jenkins #cmd #jasmine #protractor
#оболочка #дженкинс #cmd #jasmine #транспортир
Вопрос:
У меня и моей команды есть набор из 122 тестов protractor. Тесты jasmine просты
- войдите в систему
- перейдите на страницу
- заполните форму
- подтвердите результаты
Тесты написаны с использованием protractor 5.4, jasmine 3.3 и type script 3.1 и выполняются с использованием NodeJS 10.5.3, npm 6.9.0. Наши тесты нацелены на удаленный сервер разработки.
запуск следующих команд как на моей локальной, так и на удаленной машинах, тесты проходят успешно.
- откройте cmd
git clone ...
cd repo-name
npm install
npm run e2e:dev
тесты выполняются с использованием браузера Chromium без заголовков. вот конфигурация e2e
exports.config = {
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
chromeOptions: {
args: [
'headless',
'disable-gpu',
'window-size=1024,1536',
'disable-browser-side-navigation',
'disable-web-security'
],
useAutomationExtension: false,
prefs: {
'download': {
'prompt_for_download': false,
'directory_upgrade': true,
'default_directory': path.resolve("./target/downloads")
}
}
}
},
directConnect: true,
baseUrl: '[internal server url]',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true
},
onPrepare() {
rmDir(path.resolve("./target/downloads"));
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.e2e.json')
});
var environment = jasmine.getEnv();
environment.addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
environment.addReporter(new jasmineReporters.JUnitXmlReporter({
savePath: 'target/junitreporter',
consolidateAll: true,
captureStdout: true
})
);
}
};
Jenkins работает как служба Windows, используя учетную запись домена с правами локального администратора. До 12 марта задание успешно выполнялось каждую неделю в 10 часов вечера. начиная с 12 марта задание завершается неудачей, потому что в 30-40 тестах истекают тайм-ауты jasmine.
31m Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL
Мы попытались увеличить время ожидания по умолчанию, но это не решило проблему.
Мы запускаем Jenkins 2.169 на Java 1.8. Я исключил файлы конфигурации RAM, AV и проекта. Действительно кажется, что виноваты пакетные команды Jenkins 2.169 Windows, и я не уверен, как это решить.
Мы также пытались запускать команды, используя оболочку git bash от Jenkins, и мы получаем те же результаты.
Кто-нибудь еще сталкивался с подобной проблемой, и смогли ли вы ее решить?
Комментарии:
1. проходит ли неудачный тест при локальном запуске?. И один и тот же тест не выполняется ежедневно?
2. да, неудачные тесты проходят локально, и когда я захожу на удаленный сервер и запускаю тесты, используя ту же учетную запись, запускается Jenkins.
3. Большинство одних и тех же тестов постоянно завершаются неудачей. существует менее 10 периодических сбоев. Похоже, чем больше шагов в тесте, тем больше вероятность сбоя.
4. Поскольку прошло несколько дней, и теперь скрипты выходят из строя из-за несогласованности, сбой может быть связан с недавним обновлением jenkins, библиотек узлов и версии chrome на удаленном компьютере. Можете ли вы подтвердить, что версии были одинаковыми несколько дней назад, и ни одна из них не обновлялась?
5. Мы постоянно обновляем jenkins и плагины. Я знаю, что было по крайней мере 1 обновление jenkins и около дюжины обновлений плагинов. За 3 года его работы это первый случай, когда обновление прервало сборку.