t.me/atinfo_chat Telegram группа по автоматизации тестирования

Jenkins server +Allure plugin =>AutTests (Java+Webdriver+Selenium-Selenide+TestNG)

infrastructure
jenkins
selenide
java
allure
testng
webdriver
Теги: #<Tag:0x00007fb2f6f43890> #<Tag:0x00007fb2f6f43700> #<Tag:0x00007fb2f6f43598> #<Tag:0x00007fb2f6f43458> #<Tag:0x00007fb2f6f43318> #<Tag:0x00007fb2f6f431d8> #<Tag:0x00007fb2f6f43098>

(Yuriy Logvinov) #1

Проблема (Вопрос) заключается …
Есть АвтоТест клиент на котором гоняются тесты (Java+TestNG+Selenium-Selenide+Allure )… когда запускаю бат-ник локально - все работает как надо… json-ы создаются в allure-results. Все работает как и задумано.

Но когда батник запускается по команде с Есть Jenkins server +Allure plugin -a (через утилитку psexec) то файлы отчетов json не создаются в указанной директории (папка allure-results.)
json файлы отчетов создаются в папке allure-results! только сама єта папка расположена по такому пути C:\Windows\SysWOW64\allure-results
в скрипте бат4 - я прописал проверку что виден ли файл allure.properties ( allure.results.directory = абсолютній путь). єтот файл виден.

вот строка батч комманды от Jenkins-a (удаленный запуск автотестов на выполнение на АТ клиенте):

C:\temp\remote>psexec -u “юзер” -p “пароль” \ИП-адрес-АТ-компа -accepteula -h -s -i 2 cmd.exe /c “C:\путь-к-батнику\bin\run4.bat”

содержание run4.bat:

rem set all variables than may be changed
 set app.version=2019.xyz
 set root.dir=C:\SomeDir\WebAppPath
 set report.folder=C:\allure-report
 set allure.wow.dir=C:\Windows\SysWOW64\allure-results
 rem set all variables than may be changed
 Rem compose path's for automated tests
 set cp=%root.dir%\lib\*;
 set allure.prop=%root.dir%\cfg\allure.properties
 set common.prop=%root.dir%\cfg\common.properties
 set log=%root.dir%\cfg\log4j2.properties
 set main=org.testng.TestNG
 set suite.default=%root.dir%\Suites\testng-smoke-scenario-create-cw-tr-suite.xml
 set suite.param=%1
 
if defined suite.param (
 	set suite=%suite.param%
 ) else (
	set suite=%suite.default%
 )
 Rem compose path's for automated tests
 Rem compose path's for copy report files
 set report.source=%root.dir%\bin\allure-results
 set report.dest.dir=%report.folder%\%app.version%
 set report.dir=%root.dir%\report 

 rem run java app automated tests
 echo java -cp %cp% -Dallure.cfg=%allure.prop% -Dcommon.cfg=%common.prop% -Dlog4j.configurationFile=%log% %main%  %suite% -d %report.dir%
java -cp %cp% -Dallure.cfg=%allure.prop% -Dcommon.cfg=%common.prop% -Dlog4j.configurationFile=%log% %main% %suite% -d %report.dir%

это содержимое
allure.properties

allure.results.directory=C:/AutoTesting_TestMode/Adonis_selenide2-1.0-SNAPSHOT/bin/build/allure-results

Я думаю проблема состоит в том что джава приложения при запуске через psexec не воспринимают пути для вывода отчета и потому генерят его “прямо на месте” (то есть в SysWOW64).
На АТ клиент происходит логин с креденшиалами того же самого пользователя что и локально (когда прямо на АТклиенте запускается бат4.бат)

У меня получилось …
я сделал воркэраунд - в батч файле проверяю есть ли такая папка (allure-results в SysWOW64) и если она там есть то она переносится в ту что мне нужна.
вот так

REM workaround for allure-results placed in %allure.wow.dir%
 IF EXIST %allure.wow.dir%  (
 	echo workaround for allure-results placed in %allure.wow.dir% >> C:\temp\adonis-log\allure-sult-file.txt
     echo %allure.wow.dir% exist >> C:\temp\adonis-log\allure-result-file.txt
 	echo Robocopy /MOV /S /E %allure.wow.dir% %report.dest.dir%	>>C:\temp\adonis-log\allure-result-file.txt
	Robocopy /MOV /S /E %allure.wow.dir% %report.dest.dir%	
 ) ELSE (
     echo %allure.prop% missing >> C:\temp\adonis-log\allure-result-file.txt
	echo Robocopy  %report.source% %report.dir%
 	Robocopy  %report.source% %report.dest.dir%	
 )
 REM COPY allure-results FILES

И дженкинс потом уже копирует из нее файлы к себе в воркспейс где и генерит там отчет Аллюр.

У меня не получилось … указать все-таки путь как надо. я пробовал указывать 64 битную версию psexec64 но результата не изменялся (папка с отчетами все также генерится не там где ожидается.).

Версии ОС и софта следующие …
AT client OS WindowsServer 2012 R2 Datacenter x64
Аллюр 2.13.0
ТестНГ 7.0
psexec 2.2


(Yuriy Logvinov) #2

апдейт.
при удаленном запуске - json файлы отчетов создаются в папке allure-results! только сама єта папка расположена не там где ее прописана! она создается по такому пути C:\Windows\SysWOW64\allure-results
в скрипте бат4 - я прописал проверку что виден ли файл allure.properties ( allure.results.directory = абсолютній путь).
файл виден.

пока сделал костыль - просто копирую файлы отчетов из системной папки…