У
возникла та же проблема: « ChromHeadless не перехватил за 60000 мс » (ошибка после 3 попыток) на Jenkins на RHEL 7.5 .Перепробовал несколько конфигураций и, в конечном итоге, добавил - proxy-bypass-list , и - proxy-server заставил его работать.
минимальная рабочая конфигурация
browsers: ['HeadlessChrome'],
customLaunchers:{
HeadlessChrome:{
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--proxy-bypass-list=*',
'--proxy-server=\'http://<my org proxy server>:8080\''
]
}
},
Ниже вы можете увидеть еще несколько опций в конфигурации, подобных той, которую я использовал.У нас есть две конфигурации браузера: Chrome для повседневной работы, где мы хотим видеть открытый браузер, и безголовый Chrome для тестов CI / CD при построении нашего решения на сервере Jenkins.
Командная строка длязапустите его в Jenkins:
npm run test -- -cc -sr --browser HeadlessChrome
В package.json мы добавили пару строк в раздел scripts :
"test": "ng test",
"test-dev": "ng test --browser Chrome",
karma.conf.js
browsers: ['Chrome', 'HeadlessChrome'],
customLaunchers:{
HeadlessChrome:{
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
// '--remote-debugging-port=9222',
// '--enable-logging',
// '--user-data-dir=./karma-chrome',
// '--v=1',
// '--disable-background-timer-throttling',
// '--disable-renderer-backgrounding',
'--proxy-bypass-list=*',
'--proxy-server=\'http://<my org proxy server>:8080\''
]
}
},
После описанных выше шагов он работал из оболочки на компьютере Jenkins.Однако это не удалось при выполнении задания Jenkins с Невозможно запустить ChromeHeadless Попытка запустить ChromeHeadless снова (1/2). выводится на консоль.
Я сравнил переменные env, и послеВ результате нескольких проб и ошибок было обнаружено, что переменная среды XDG_DATA_DIRS существует при входе в оболочку bash (где успешно выполняются тесты chrome без заголовка), и эта переменная не была определена в невыполненном задании Jenkins env.Таким образом, добавление (скопированное из оболочки env | grep XDG_DATA_DIRS ) окончательно решило проблему.Я думаю, мне следует проверить, какую минимальную конфигурацию / каталоги я должен поместить туда, и какова основная причина, но она работает сейчас: -)
Добавил нижеприведенную работу в задание jenkins непосредственно перед запускомтест
export XDG_DATA_DIRS=/users/<jenkins user e.g. jk1003>/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/
Другое возможное решение
Друг сказал мне, что он давно решил такую проблему, используя Xvfb