Друзья, всем привет! Очень нуждаюсь в вашей помощи! Пожалуйста помогите, вдруг кто-то сталкивался с подобной проблемой? Я не могу понять как правильно запустить в Jenkins автотесты, которые используют CryptoPro плагин. Локально я настроил, всё прекрасно работает, браузер подтягивает это расширение, запускается, сертификат сразу же появляется, тесты проходят. А вот, что касается запуска в Jenkins - сразу же начинаются проблемы. Тупо не видит сертификат. Что только я уже не пробовал((((
Может Crypto Pro вообще не может работать в headless-режиме?(
UPD (Все проблемы удалось решить самому)
Если кто-то вдруг столкнется с подобным, вот ниже опишу мой путь и решения:
Первый момент (очевидный, самый простой и тупой, про который я забыл ) - КриптоПро требует внести в список доверенных ресурсов страницу, чтобы не выдавалось окно подтверждения, а поскольку скриншот делал автотест на основе Selenium, он тупо не видел и не воспринимал этого окна подтверждения и поэтому мне казалось, что все стопорится на этапе “Идет перечисление объектов плагина”, а он просто ждал действия. Ок. С этим решил, внес в список ресурс. Все заработало.
Дальше была основная проблема - стала появляться ошибка об отсутствии личных сертификатов. Тут я уже крепко задумался, поскольку личный тестовый сертификат был установлен под другим пользователем и все работало отлично от него. В эту сторону и начал копать.
- Jenkins запускается и работает от лица Системы, то соответственно даже в этом случае он не может получить доступы к личным сертификатам, установленными под другими пользователями.
- Jenkins при запуске автотеста само собой и Chrome запускает от лица Системы.
Я понял, что возможное решение кроется в этом: попробовать открыть руками Chrome, но от лица Системы, далее открыть эту страницу КриптоПро сгенерить и добавить личный тестовый сертификат.
Чтобы запустить Хром от имени Системы, я скачал и использовал утилиту PsExec (Sysinternals).
Всё заработало.
можно просто серт положить в машину, а не в пользователя, и он будет всем доступен