Правки по результатам тестов, распаралеливание шагов тестирования

This commit is contained in:
Anton Titovets
2026-06-14 16:44:57 +03:00
parent 35353a4358
commit fae411a16e
20 changed files with 197 additions and 40 deletions
+63 -16
View File
@@ -29,6 +29,7 @@
Перем ШаблонВыполнения1cFatal;
Перем ШаблонПайплайна;
Перем ШаблонПапки;
Перем ШаблонParallelWrapper;
Перем ЛогинJenkins;
Перем ТокенJenkins;
Перем ХостJenkins;
@@ -87,6 +88,7 @@
ПутьШаблонаВыполнения1cFatal = КаталогШаблоновJenkins + "test_exec_1c_fatal.txt";
ПутьШаблонаПайплайна = КаталогШаблоновJenkins + "conf_pipeline.txt";
ПутьШаблонаПапки = КаталогШаблоновJenkins + "conf_folder.txt";
ПутьШаблонаParallelWrapper = КаталогШаблоновJenkins + "test_parallel_wrapper.txt";
ШаблонCliWindows = Новый ДвоичныеДанные(ПутьШаблонаCliWindows);
ШаблонCliWindows = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliWindows);
@@ -137,6 +139,9 @@
ШаблонПапки = Новый ДвоичныеДанные(ПутьШаблонаПапки);
ШаблонПапки = ПолучитьСтрокуИзДвоичныхДанных(ШаблонПапки);
ШаблонParallelWrapper = Новый ДвоичныеДанные(ПутьШаблонаParallelWrapper);
ШаблонParallelWrapper = ПолучитьСтрокуИзДвоичныхДанных(ШаблонParallelWrapper);
СоздатьНачальнуюСтруктуруJenkins();
Для Каждого Язык Из Языки Цикл
@@ -150,7 +155,7 @@
Выполнить(СтрШаблон("СписокБиблиотек = ОбъектПДТ.%1()", МетодСписка));
СформироватьWorkflow(КаталогWorkflowТестов, Язык, СписокБиблиотек, ПутьJenkinsFull, ОбъектПДТ);
СформироватьWorkflow(КаталогWorkflowТестов, Язык, СписокБиблиотек, ПутьJenkinsFull, ОбъектПДТ, Истина);
Для Каждого Библиотека Из СписокБиблиотек Цикл
@@ -181,7 +186,8 @@
, Знач Язык
, Знач СписокБиблиотек
, Знач ПутьJenkins
, Знач ОбъектПДТ)
, Знач ОбъектПДТ
, Знач ПараллельныйРежим = Ложь)
СписокРабот = "";
ТаблицаТестов = Неопределено;
@@ -213,9 +219,9 @@
ФайлWindows1c = СтрШаблон("%1/1c_test_%2.jenkinsfile", КаталогWorkflow, Язык);
ФайлWindows1cf = СтрШаблон("%1/1cf_test_%2.jenkinsfile", КаталогWorkflow, Язык);
ТекстВыполненияOS = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Язык, "OPIt_");
ТекстВыполненияCLI = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Язык, "OPItc_");
ТекстВыполнения1С = ПолучитьТекстВыполнения1c(ТаблицаТестов, СписокБиблиотек, Язык);
ТекстВыполненияOS = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Язык, "OPIt_", ПараллельныйРежим);
ТекстВыполненияCLI = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Язык, "OPItc_", ПараллельныйРежим);
ТекстВыполнения1С = ПолучитьТекстВыполнения1c(ТаблицаТестов, СписокБиблиотек, Язык, ПараллельныйРежим);
ТекстПараметров = ПолучитьТекстПараметров(СписокБиблиотек);
ТекстJFCLI = СтрШаблон(ШаблонCliWindows, Язык, ТекстВыполненияCLI, КаталогOscript, Версия, ТекстПараметров);
@@ -282,7 +288,7 @@
КонецПроцедуры
Функция ПолучитьТекстВыполненияOs(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык, Знач Префикс)
Функция ПолучитьТекстВыполненияOs(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык, Знач Префикс, Знач ПараллельныйРежим = Ложь)
СтрокаРаздел = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("sectionsString", Язык);
СтрокаМетод = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("methodString", Язык);
@@ -294,13 +300,14 @@
СписокБиблиотек = СписокБиблиотек_;
КонецЕсли;
МассивШагов = Новый Массив;
ПоследовательныеШаги = Новый Массив;
ПараллельныеШаги = Новый Массив;
Для Каждого Библиотека Из СписокБиблиотек Цикл
Раздел = Библиотека.Ключ;
ТекущийШаблонШага = ?(СписокКритическихТестов.НайтиПоЗначению(Раздел) = Неопределено
, ШаблонШагаOs
, ШаблонКритическогоШагаOs);
Критический = СписокКритическихТестов.НайтиПоЗначению(Раздел) <> Неопределено;
ТекущийШаблонШага = ?(Критический, ШаблонКритическогоШагаOs, ШаблонШагаOs);
ТестыТекущегоРаздела = НайтиСтрокиТестов(ТаблицаТестов, Раздел, СтрокаРаздел);
@@ -315,15 +322,21 @@
КонецЦикла;
МассивШагов.Добавить(СтрШаблон(ТекущийШаблонШага, Раздел, СтрСоединить(МассивВыполнений, Символы.ПС), МодульТеста));
ТекущийШаг = СтрШаблон(ТекущийШаблонШага, Раздел, СтрСоединить(МассивВыполнений, Символы.ПС), МодульТеста);
Если Критический Или Не ПараллельныйРежим Тогда
ПоследовательныеШаги.Добавить(ТекущийШаг);
Иначе
ПараллельныеШаги.Добавить(ТекущийШаг);
КонецЕсли;
КонецЦикла;
Возврат СтрСоединить(МассивШагов, Символы.ПС);
Возврат ОбъединитьШагиТестирования(ПоследовательныеШаги, ПараллельныеШаги, ПараллельныйРежим);
КонецФункции
Функция ПолучитьТекстВыполнения1c(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык)
Функция ПолучитьТекстВыполнения1c(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык, Знач ПараллельныйРежим = Ложь)
СтрокаРаздел = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("sectionsString", Язык);
СтрокаМетод = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("methodString", Язык);
@@ -336,7 +349,9 @@
СписокБиблиотек = СписокБиблиотек_;
КонецЕсли;
МассивШагов = Новый Массив;
ПоследовательныеШаги = Новый Массив;
ПараллельныеШаги = Новый Массив;
Для Каждого Библиотека Из СписокБиблиотек Цикл
Раздел = Библиотека.Ключ;
@@ -362,11 +377,43 @@
ПолучитьДвоичныеДанныеИзСтроки(СтрШаблон(ШаблонКонфигурацииYaxUnit, Раздел, СтрСоединить(МассивМетодов, "," + Символы.ПС)))
.Записать(КаталогКонфигурацииYaxUnit + Язык + "/" + Раздел + ".json");
МассивШагов.Добавить(СтрШаблон(ТекущийШаблонШага, Раздел, Выполнение));
ТекущийШаг = СтрШаблон(ТекущийШаблонШага, Раздел, Выполнение);
Если Критический Или Не ПараллельныйРежим Тогда
ПоследовательныеШаги.Добавить(ТекущийШаг);
Иначе
ПараллельныеШаги.Добавить(ТекущийШаг);
КонецЕсли;
КонецЦикла;
Возврат СтрСоединить(МассивШагов, Символы.ПС);
Возврат ОбъединитьШагиТестирования(ПоследовательныеШаги, ПараллельныеШаги, ПараллельныйРежим);
КонецФункции
Функция ОбъединитьШагиТестирования(Знач ПоследовательныеШаги, Знач ПараллельныеШаги, Знач ПараллельныйРежим)
Текст = СтрСоединить(ПоследовательныеШаги, Символы.ПС);
Если ПараллельныйРежим И ПараллельныеШаги.Количество() > 0 Тогда
Если ЗначениеЗаполнено(Текст) Тогда
Текст = Текст + Символы.ПС;
КонецЕсли;
Текст = Текст + СтрШаблон(ШаблонParallelWrapper, СтрСоединить(ПараллельныеШаги, Символы.ПС));
ИначеЕсли ПараллельныеШаги.Количество() > 0 Тогда
Если ЗначениеЗаполнено(Текст) Тогда
Текст = Текст + Символы.ПС;
КонецЕсли;
Текст = Текст + СтрСоединить(ПараллельныеШаги, Символы.ПС);
КонецЕсли;
Возврат Текст;
КонецФункции
@@ -128,6 +128,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -674,6 +676,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -128,6 +128,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -674,6 +676,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -128,6 +128,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -674,6 +676,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -128,6 +128,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -674,6 +676,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -122,6 +122,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -797,6 +799,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -122,6 +122,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -797,6 +799,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -123,6 +123,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -798,6 +800,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -123,6 +123,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -798,6 +800,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -203,6 +203,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -878,6 +880,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -203,6 +203,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -878,6 +880,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -133,6 +133,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -808,6 +810,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -133,6 +133,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -808,6 +810,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -133,6 +133,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -808,6 +810,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -133,6 +133,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -808,6 +810,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -130,6 +130,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -805,6 +807,9 @@ pipeline {
}
}
}
}
}
}
post{
@@ -130,6 +130,8 @@ pipeline {
}
}
}
stage('Testing') {
parallel {
stage('Testing-Telegram') {
when {
expression { return params['Telegram'] }
@@ -805,6 +807,9 @@ pipeline {
}
}
}
}
}
}
post{