0. ripreal1 312 31.05.19 20:04 Сейчас в теме

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. morohon 03.06.19 10:06 Сейчас в теме
Подскажите пожалуйста, а java 1.8 обязательное требование? Заведется ли вся сборка на openJDK (учитывая нынешнюю лицензионную политику Oracle)
4. ripreal1 312 03.06.19 12:29 Сейчас в теме
(1) Я не пробовал, но думаю на openJDK будет также все работать.
2. fishca 1151 03.06.19 10:22 Сейчас в теме
Можно было просто ссыль на репу кинуть, зачет!
3. Pr-Mex 119 03.06.19 11:28 Сейчас в теме
5. artbear 1135 03.06.19 13:03 Сейчас в теме
(0) Ух ты, как круто!

Большое спасибо за статью и применение Ванесса-АДД :)
6. artbear 1135 03.06.19 13:08 Сейчас в теме
(0) Одно но - в статье не увидел применение загрузчика пользовательских настроек - из json-файла или CONSUL

в этом варианте не используете?
9. ripreal1 312 03.06.19 14:51 Сейчас в теме
(6) Да, это advanced техника, я не стал ее включать в туториал.
7. Somebody1 66 03.06.19 13:30 Сейчас в теме
Статья неплоха, но... как-то можно обойтись без фраз типа "првоерить работоспособность слейв ноды на нашем пайплайне"? Ну уши ведь в трубочку.
8. artbear 1135 03.06.19 13:43 Сейчас в теме
(7) это обычные термины данной предметной области.

для тех, кто в контексте Дженкинса или CI, все понятно :)
11. TODD22 17 04.06.19 18:52 Сейчас в теме
(8)
"првоерить работоспособность слейв ноды на нашем пайплайне"

"Проверить работоспособность подчинённого узла на нашем конвейере"
Дмитрий74Чел; vlad.frost; +2 Ответить
30. for_sale 720 24.06.19 11:57 Сейчас в теме
(11)
Когда англы и саксы вторглись на территорию современных Британских островов, в их язык (ныне - английский) из местной культуры кельтов перешло всего несколько десятков слов. Потому что их культура и быт были богаче кельтов. Здесь то же самое - местное население не внесло в эту отрасль совершенно ничего, всё, что используется, придумано у загнивающих капиталистов. Более того, единственный язык программирования, работающий на местном языке, считается уделом низшей касты и осмеивается труЪ-программистами. Поэтому и терминология тут вся оттуда и ничего не изменится.
12. r2d255 04.06.19 19:48 Сейчас в теме
Что из софта требует именно 8.3.10? можно более ранней обойтись?
13. ripreal1 312 04.06.19 20:30 Сейчас в теме
(12)
Требование не жесткое, я тестировал минимум на 8.3.10. Можно поэкспериментировать. Но надо быть готовым к тому, что что-то может пойти не так.
14. sm.artem 12 06.06.19 06:05 Сейчас в теме
Спасибо за интересный материал.
У меня почему-то не сработала настройка кодировки UTF8, все-равно выводились "крякозябры".

В итоге указал параметр через UTF-8 (поставил дефис). - после этого кириллические символы отображаются нормально.

Не знаю с чем этом может быть связано, может версия Java, может Jenkins
15. ripreal1 312 06.06.19 08:39 Сейчас в теме
(14)
Хорошо подмечено, я погуглил UTF-8 более предпочтителен. Поправил в статье.
sm.artem; +1 Ответить
16. sapervodichka 956 10.06.19 10:06 Сейчас в теме
Для более простых проверок, можно это использовать https://infostart.ru/public/1056811/
17. agent100 48 10.06.19 16:29 Сейчас в теме
Делаю по инструкции получаю ошибку https://yadi.sk/i/FGN48vQ0AGinGQ Win10 x64. Помогите понять что не так.
18. ripreal1 312 10.06.19 17:05 Сейчас в теме
(17)
Это ошибка в коде пайплайна. Дело в том, что параметр -file, который ведет к скрипту drop_db.ps1 содержит пробелы, поэтому весь путь нужно оборачивать в кавычки, а я не оборачиваю. Я сейчас исправил этот момент в своем репозитории. Можно обновиться из него и должно заработать.
19. agent100 48 11.06.19 10:34 Сейчас в теме
Пересоздал пайплан, та ошибка ушла. Ругается на ошибку выполнения скрипта https://yadi.sk/i/jdcv9QbjHQvpxg разрешил неподписанные скрипты. Подскажите куда дальше копать.
20. ripreal1 312 11.06.19 11:38 Сейчас в теме
21. agent100 48 11.06.19 15:43 Сейчас в теме
Получилось спасибо! Судя по сценарию он пытается скачать бэкап базы в рабочий каталог, при этом вываливается ошибка что нельзя создать файл. Как задать корректный каталог сохранения бэкапа базы?
22. ripreal1 312 13.06.19 11:35 Сейчас в теме
(21)Да, именно так. У каждой сборки в пайплайне есть свой рабочий каталог (WORKSPACE). Каталог бекапа базы задается автоматически и является относительным WORKSPACE/build/. Т.е. его вручную прописывать не надо. То что не создаются бекапы это странно. Возможно у дженкинса нет прав на этот каталог.

Вообще желательно посмотреть логи
29. agent100 48 20.06.19 17:08 Сейчас в теме
23. artkor 100 16.06.19 22:14 Сейчас в теме
Здравствуйте! Никак не получается побороть ошибку при создании тестовой базы в кластере
22:04:56  [2019-06-16T19:04:56.538Z] ИНФОРМАЦИЯ - Creating server base with 1C...
22:05:35  [2019-06-16T19:05:35.123Z] {Модуль C:\Program Files (x86)\OneScript\lib\v8runner\src\v8runner.os / Ошибка в строке: 1212 / Ошибка создания ИБ: "Ошибка при выполнении операции с информационной базой
22:05:35  [2019-06-16T19:05:35.123Z] Ошибка СУБД:
22:05:35  [2019-06-16T19:05:35.123Z] Microsoft SQL Server Native Client 11.0: Login failed for user 'SERVER\USR1CV8'.
22:05:35  [2019-06-16T19:05:35.123Z] HRESULT=80040E4D, SQLSrvr: SQLSTATE=28000, state=1, Severity=E, native=18456, line=1
22:05:35  [2019-06-16T19:05:35.123Z] 
22:05:35  [2019-06-16T19:05:35.124Z] "}

Почему-то dbcreator.os не читает параметры "логи-пароль" от sql-базы, хотя в параметрах сборки они заданы.
Когда стираю эти параметры по идее должна виндовая авторизация sql отработать, но сборка на 1-ом же шаге сваливается. Может кто сталкивался с таким?
24. ripreal1 312 17.06.19 11:08 Сейчас в теме
(23) Я не тестировал скрипт пайплайна, приведенный в статье на работу с windows-ой авторизациией sql сервера со стороны серевера 1С. Одна теоретически все должно работать т.к. у нас в команде в продакшене используется именно такой подход на схожем скрипте

Чтобы работал пайплайн под доменной авторизацией:
1) Входные параметры sqlUser и sqlPwd нужно оставить пустыми
2) Нода дженкинса должна быть запущена под пользователем, имеющим право доменного входа в sql сервер
3) Базы в кластере 1С должны создаваться без явного прописывания логина и пароля причем под любой машиной (даже если у доменного пользователя этой машины нет права на sql сервер)

ПРоверьте, чтобы были соблюдены эти 3 условия
25. ms-des 17.06.19 15:08 Сейчас в теме
Возникла проблема с Allure, пайплайн отрабатывает, в логах:
Report successfully generated to C:\Program Files (x86)\Jenkins\workspace\test\allure-report
Allure report was successfully generated.
Creating artifact for the build.
Artifact was added to the build.

Но отчет пустой, причем если идти по ссылке 2, адрес будет через localhost(а не имя сервера) и ошибка "Попытка соединения не удалась".
Правильно ли я понимаю, что за выгрузку отчета в формате Allure отвечает этап "Тестирование ADD" ?
Прикрепленные файлы:
26. ripreal1 312 17.06.19 17:00 Сейчас в теме
(25) Нет, отчет формируется на последнем этапе "Declarative: Post Actions". Конкретно за формирование отчета отвечает одна строка в Jenkinsfile:
"allure includeProperties: false, jdk: '', results: [[path: 'build/out/allure']]"

Насчет localhost-а непонятно. Сам веб-интерфейс дженкинса (его главная страница и прочие разделы) доступна по имени или тоже через localhost?

Что можно сейчас сделать - проверить, что в папке build/out/allure (которая находится относительно каталога сборки (см. каталог сборки в логах) была выгрузка папки allure. Если выгрузка есть, то сам отчет сформировался нормально, а проблема в адресе.
27. ms-des 18.06.19 09:00 Сейчас в теме
(26)
Насчет localhost-а непонятно. Сам веб-интерфейс дженкинса (его главная страница и прочие разделы) доступна по имени или тоже через localhost?

Веб-интерфейс доступен по имени, захожу с другой машины. А вот ссылка 2 - адрес к localhost.

В папке build/out/allure есть 3 файла:
Прикрепленные файлы:
28. ms-des 18.06.19 10:01 Сейчас в теме
(27) + проблема с адресом решена, изменил в настройках Jenkins'a
31. vlad.frost 185 27.06.19 08:00 Сейчас в теме
(0) классная статья! Только, похоже, забыли в разделе про настройку подчинённого узла указать, что в батник start.bat в строку запуска agent.jar надо бы добавить ключ
-Dfile.encoding=UTF-8
34. ripreal1 312 29.06.19 09:32 Сейчас в теме
(31)
Спасибо, дополнил пунктик в статье
vlad.frost; +1 Ответить
32. TEENAGER1984 143 27.06.19 22:53 Сейчас в теме
У меня ошибка подключения куда то:

22:46:09 [2019-06-27T19:46:09.202Z]
22:46:09 [2019-06-27T19:46:09.202Z] D:\jenkins\workspace\erp_features>chcp 65001
22:46:09 [2019-06-27T19:46:09.203Z] Active code page: 65001
22:46:09 [2019-06-27T19:46:09.203Z]
22:46:09 [2019-06-27T19:46:09.203Z] D:\jenkins\workspace\erp_features>powershell -file "D:\jenkins\workspace\erp_features/copy_etalon/drop_db.ps1" -server1c localhost -agentPort 1540 -serverSql localhost -infobase test_base_2 -user Администратор -sqluser sa
22:46:13 [2019-06-27T19:46:13.464Z] server_addr=tcp://localhost:1540 descr=[::1]:1540:10061(0x0000274D): No connection could be made because the target mac
22:46:13 [2019-06-27T19:46:13.464Z] hine actively refused it. ;
22:46:13 [2019-06-27T19:46:13.464Z] 127.0.0.1:1540:10061(0x0000274D): No connection could be made because the target machine actively refused it. ;
22:46:13 [2019-06-27T19:46:13.465Z] line=1056 file=src\DataExchangeTcpClientImpl.cpp
22:46:13 [2019-06-27T19:46:13.465Z] At D:\jenkins\workspace\erp_features\copy_etalon\drop_db.ps1:28 char:5
22:46:13 [2019-06-27T19:46:13.465Z] + throw $_.Exception.Message
22:46:13 [2019-06-27T19:46:13.465Z] + ~~~~~~~~~~~~~~~~~~~~~~~~~~
22:46:13 [2019-06-27T19:46:13.465Z] + CategoryInfo : OperationStopped: (server_addr=tcp...pClientImpl.cpp:String) [], RuntimeException
22:46:13 [2019-06-27T19:46:13.465Z] + FullyQualifiedErrorId : server_addr=tcp://localhost:1540 descr=[::1]:1540:10061(0x0000274D): No connection could
22:46:13 [2019-06-27T19:46:13.465Z] be made because the target machine actively refused it. ;
22:46:13 [2019-06-27T19:46:13.465Z] 127.0.0.1:1540:10061(0x0000274D): No connection could be made because the target machine actively refused it. ;
22:46:13 [2019-06-27T19:46:13.466Z] line=1056 file=src\DataExchangeTcpClientImpl.cpp
22:46:13 [2019-06-27T19:46:13.466Z]
33. Fox-trot 99 28.06.19 06:43 Сейчас в теме
(32) стишки все писать умеют, ты вопросы лучше задавай
35. ripreal1 312 29.06.19 09:36 Сейчас в теме
(32) Скрипт не может подключиться к кластеру 1С по адресу localhost:1540. Возможно неправильно указан параметры пайплайна server1cPort и server1c.
36. VladCheSH 04.07.19 11:28 Сейчас в теме
Добрый день, скажите пожалуйста, не появляется кнопка "Собрать с параметрами", после обновления страницы.
Подскажите, в чем может быть проблема?
37. ripreal1 312 04.07.19 16:29 Сейчас в теме
(36)

Чтобы кнопка появилась нужно запустить сначала пайплайн по кнопке Собрать а потом обновить страницу. Если это не работает то можно добавить все необходимые параметры вручную в конфиге пайплайна Configure (Настройки) => галочка This project is parameterized (Проект параметризован) => Add parameter (Добавить параметр). Главное - с именами не ошибиться.
38. VladCheSH 08.07.19 13:40 Сейчас в теме
(37) Добрый день, добавил параметры, но сборка падает, не знаете в чем дело?

hudson.plugins.git.GitException: Command "git.exe fetch --tags --force --progress origin +refs/heads/master:refs/remotes/origin/master --prune" returned status code 128:
stdout:
stderr: fatal: couldn't find remote ref refs/heads/master
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2042)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1761)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$400(CliGitAPIImpl.java:72)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:442)
at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:351)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:198)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:174)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:108)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
39. ripreal1 312 09.07.19 15:49 Сейчас в теме
(38)
Кажется несложная проблема. Указанный в конфиге пайплайна репозиторий на гитхабе либо не существует, либо он пустой, либо у него нет ветки master, либо неправильно указан сам путь к репозиторию
40. VladCheSH 09.07.19 18:19 Сейчас в теме
(39) Спасибо большое, проблема решилась перенастройкой параметров
41. VladCheSH 10.07.19 14:14 Сейчас в теме
(38) Вновь какая-то проблема, зависает, на данном этапе (см.скрин).
Проверил модальные окна, ничего нет.
Подскажите пожалуйста, что может быть не так?
Прикрепленные файлы:
42. ripreal1 312 10.07.19 16:06 Сейчас в теме
(
(41) Это 100% модальное окно, которое выскакивает в процессе открытия внешней обработки ADD и загрузки фич. Чтобы понять проблему, нужно подключить отдельную слейв ноду дженкинса (в туториале описано), запустить пайплайн на ней и тогда все окна интерфейса 1С будут видимы в процессе запуска тестов и легко можно будет узнать точную проблему.
43. VladCheSH 10.07.19 16:34 Сейчас в теме
(42) Я сейчас добавил базу (test_...) в которую восстанавливается бэкап sql, и она пустая. Следовательно, никакого тестирования ADD не может быть...
Но почему она пустая?
44. ripreal1 312 11.07.19 08:35 Сейчас в теме
(43)
Надо смотреть в логах сборки причины. Логи полностью отработанного скрипта восстановления базы из бекапа выглядят так
Прикрепленные файлы:
45. VladCheSH 11.07.19 14:22 Сейчас в теме
(44) Вот, обрывается, на восстановлении, но без ошибки
Прикрепленные файлы:
46. ripreal1 312 11.07.19 16:43 Сейчас в теме
(45)
Насторажет то, что скрипт выполянется в program files. Возможно нет полных прав, чтобы сохранить бекап. Нужно попробовать выполнить всю команду sqlcmd локально из командной строки. Там вывод должен быть более детальным. Если и это не поможет, то нужно будет открыть сам скрипт restore.sql и выполнить его в SQl server studio.

Как правило один их вариантов позволит установить причину ошибки.
47. TEENAGER1984 143 22.07.19 22:28 Сейчас в теме
Очередная ошибка, не могу довести дело до конца))
Не понятно почему не хочет соединяться с SQL
Прикрепленные файлы:
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Руководитель проекта, аналитик, консультант
Санкт-Петербург
По совместительству

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Москва
Полный день