From 413691dd44b7e6d707eaa0bbd9e009f146e155c3 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sat, 18 Oct 2025 13:52:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20YaxUnit?= =?UTF-8?q?=20=D0=B8=D0=B7=20Jenkins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../МетодыФормированияТестовJenkins.os | 109 +++++++++-- service/templates/jenkins/test_exec.txt | 3 - .../src/CommonModules/OPI_GreenMax/Module.bsl | 173 ++++++++++++++++++ .../OPI_ПолучениеДанныхТестов/Module.bsl | 91 +++++++++ .../src/CommonModules/OPI_Тесты/Module.bsl | 132 ++++++++++++- 6 files changed, 492 insertions(+), 17 deletions(-) delete mode 100644 service/templates/jenkins/test_exec.txt diff --git a/.gitignore b/.gitignore index 932ee70f662..be43415df96 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ fakedata.json /docs/docusaurus/build /docs/docusaurus/docs /Melezh +/test_results target/ .idea/ diff --git a/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os b/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os index 12118f0f375..2299fdfcab5 100644 --- a/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os +++ b/ci/os/internal/Modules/МетодыФормированияТестовJenkins.os @@ -2,14 +2,25 @@ #Использовать "./../../../../src/ru/OInt/tools/" #Использовать "./internal" +Перем Путь1с; +Перем Сервер1с; +Перем База1сRu; +Перем База1сEn; + +Перем КаталогКонфигурацииYaxUnit; +Перем ШаблонКонфигурацииYaxUnit; + Перем СписокРабот; Перем ШаблонCliWindows; Перем ШаблонOsWindows; +Перем Шаблон1cWindows; Перем ШаблонOsLinux; Перем ШаблонCliRpm; Перем ШаблонCliDeb; + Перем ШаблонШага; -Перем ШаблонВыполнения; +Перем ШаблонВыполненияOs; +Перем ШаблонВыполнения1с; Перем ШаблонПайплайна; Перем ШаблонПапки; Перем ЛогинJenkins; @@ -18,6 +29,17 @@ Процедура СоздатьНаборWorkflow(Знач Языки, Знач КаталогПараметров, Знач КаталогWorkflow) Экспорт + Путь1с = "C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe"; + Сервер1с = "DEVSRV"; + База1сRu = "OpenIntegrations"; + База1сEn = "OpenIntegrationsEng"; + + КаталогКонфигурацииYaxUnit = "./service/yaxunit_conf/"; + + ШаблонКонфигурацииYaxUnit = КаталогКонфигурацииYaxUnit + "template.txt"; + ШаблонКонфигурацииYaxUnit = Новый ДвоичныеДанные(ШаблонКонфигурацииYaxUnit); + ШаблонКонфигурацииYaxUnit = ПолучитьСтрокуИзДвоичныхДанных(ШаблонКонфигурацииYaxUnit); + КаталогШаблонов = "./service/templates/jenkins/"; ЛогинJenkins = ПолучитьПеременнуюСреды("JENKINS_LOGIN", РасположениеПеременнойСреды.Машина); ТокенJenkins = ПолучитьПеременнуюСреды("JENKINS_TOKEN", РасположениеПеременнойСреды.Машина); @@ -28,11 +50,13 @@ ПутьШаблонаOsLinux = КаталогШаблонов + "os_test_linux.txt"; ПутьШаблонаCliRpm = КаталогШаблонов + "cli_test_rpm.txt"; ПутьШаблонаCliDeb = КаталогШаблонов + "cli_test_deb.txt"; + ПутьШаблона1cWindows = КаталогШаблонов + "1c_test_windows.txt"; - ПутьШаблонаШага = КаталогШаблонов + "test_stage.txt"; - ПутьШаблонаВыполнения = КаталогШаблонов + "test_exec.txt"; - ПутьШаблонаПайплайна = КаталогШаблонов + "conf_pipeline.txt"; - ПутьШаблонаПапки = КаталогШаблонов + "conf_folder.txt"; + ПутьШаблонаШага = КаталогШаблонов + "test_stage.txt"; + ПутьШаблонаВыполненияOs = КаталогШаблонов + "test_exec_os.txt"; + ПутьШаблонаВыполнения1C = КаталогШаблонов + "test_exec_1c.txt"; + ПутьШаблонаПайплайна = КаталогШаблонов + "conf_pipeline.txt"; + ПутьШаблонаПапки = КаталогШаблонов + "conf_folder.txt"; ШаблонCliWindows = Новый ДвоичныеДанные(ПутьШаблонаCliWindows); ШаблонCliWindows = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliWindows); @@ -49,11 +73,17 @@ ШаблонCliDeb = Новый ДвоичныеДанные(ПутьШаблонаCliDeb); ШаблонCliDeb = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliDeb); + Шаблон1cWindows = Новый ДвоичныеДанные(ПутьШаблона1cWindows); + Шаблон1cWindows = ПолучитьСтрокуИзДвоичныхДанных(Шаблон1cWindows); + ШаблонШага = Новый ДвоичныеДанные(ПутьШаблонаШага); ШаблонШага = ПолучитьСтрокуИзДвоичныхДанных(ШаблонШага); - ШаблонВыполнения = Новый ДвоичныеДанные(ПутьШаблонаВыполнения); - ШаблонВыполнения = ПолучитьСтрокуИзДвоичныхДанных(ШаблонВыполнения); + ШаблонВыполненияOs = Новый ДвоичныеДанные(ПутьШаблонаВыполненияOs); + ШаблонВыполненияOs = ПолучитьСтрокуИзДвоичныхДанных(ШаблонВыполненияOs); + + ШаблонВыполнения1с = Новый ДвоичныеДанные(ПутьШаблонаВыполнения1c); + ШаблонВыполнения1с = ПолучитьСтрокуИзДвоичныхДанных(ШаблонВыполнения1с); ШаблонПайплайна = Новый ДвоичныеДанные(ПутьШаблонаПайплайна); ШаблонПайплайна = ПолучитьСтрокуИзДвоичныхДанных(ШаблонПайплайна); @@ -122,9 +152,11 @@ ФайлWindowsCLI = КаталогWorkflow + "cli_test_" + Язык; ФайлRpmCLI = КаталогWorkflow + "cli_rpm_test_" + Язык; ФайлDebCLI = КаталогWorkflow + "cli_deb_test_" + Язык; + ФайлWindows1c = КаталогWorkflow + "1c_test_" + Язык; - ТекстВыполненияOS = ПолучитьТекстВыполнения(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов); - ТекстВыполненияCLI = ПолучитьТекстВыполнения(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестовCLI); + ТекстВыполненияOS = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов); + ТекстВыполненияCLI = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестовCLI); + ТекстВыполнения1С = ПолучитьТекстВыполнения1c(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов, Язык); ТекстJFCLI = СтрШаблон(ШаблонCliWindows, Язык, ТекстВыполненияCLI); ТекстJFOS = СтрШаблон(ШаблонOsWindows, Язык, ТекстВыполненияOS); @@ -135,6 +167,8 @@ ТекстJFCLIRPM = СтрШаблон(ШаблонCliRpm, Язык, ТекстВыполненияCLI, "Rpm-Agent"); ТекстJFCLIDEB = СтрШаблон(ШаблонCliDeb, Язык, ТекстВыполненияCLI, "Deb-Agent"); + ТекстJF1CWin = СтрШаблон(Шаблон1cWindows, Язык, ТекстВыполнения1С); + ШаблонПредставления = "OPI | Тестирование версии для %1 (%2, %3)"; ПолучитьДвоичныеДанныеИзСтроки(ТекстJFOS).Записать(ФайлJenkinsOS); @@ -173,9 +207,15 @@ , СтрШаблон(ШаблонПредставления, "CLI", "DEB", ЯзыкВрег) , ФайлDebCLI); + ПолучитьДвоичныеДанныеИзСтроки(ТекстJF1CWin).Записать(ФайлWindows1c); + СоздатьПайплайнJenkins(ПутьJenkins + , "Opi1cWin" + ЯзыкТрег + , СтрШаблон(ШаблонПредставления, "1C:Enterprise", "Windows", ЯзыкВрег) + , ФайлWindows1c); + КонецПроцедуры -Функция ПолучитьТекстВыполнения(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Параметры, Знач МодульТестов) +Функция ПолучитьТекстВыполненияOs(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Параметры, Знач МодульТестов) СтрокаРаздел = Параметры["sectionsString"]; СтрокаМетод = Параметры["methodString"]; @@ -200,7 +240,7 @@ Метод = Тест[СтрокаМетод]; - МассивВыполнений.Добавить(СтрШаблон(ШаблонВыполнения, МодульТестов, Метод)) + МассивВыполнений.Добавить(СтрШаблон(ШаблонВыполненияOs, МодульТестов, Метод)) КонецЦикла; @@ -212,6 +252,50 @@ КонецФункции +Функция ПолучитьТекстВыполнения1c(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Параметры, Знач МодульТестов, Знач Язык) + + СтрокаРаздел = Параметры["sectionsString"]; + СтрокаМетод = Параметры["methodString"]; + СтрокаСиноним = Параметры["synonymString"]; + + Если Не ТипЗнч(СписокБиблиотек) = Тип("Структура") Тогда + СписокБиблиотек_ = Новый Структура; + СписокБиблиотек_.Вставить(СписокБиблиотек.Ключ, СписокБиблиотек.Значение); + СписокБиблиотек = СписокБиблиотек_; + КонецЕсли; + + МассивШагов = Новый Массив; + Для Каждого Библиотека Из СписокБиблиотек Цикл + + Раздел = Библиотека.Ключ; + База = ?(Язык = "ru", База1сRu, База1сEn); + YaxConf = КаталогКонфигурацииYaxUnit + Язык + "/" + Раздел + ".json"; + + Выполнение = СтрШаблон(ШаблонВыполнения1с, Путь1с, Сервер1с, База, Раздел, Язык); + + Отбор = Новый Структура(СтрокаРаздел, Раздел); + ТестыТекущегоРаздела = ТаблицаТестов.НайтиСтроки(Отбор); + + МассивМетодов = Новый Массив; + + Для Каждого Тест Из ТестыТекущегоРаздела Цикл + + Метод = Тест[СтрокаМетод]; + МассивМетодов.Добавить("""" + Метод + """" ); + + КонецЦикла; + + ПолучитьДвоичныеДанныеИзСтроки(СтрШаблон(ШаблонКонфигурацииYaxUnit, Раздел, СтрСоединить(МассивМетодов, "," + Символы.ПС))) + .Записать(КаталогКонфигурацииYaxUnit + Язык + "/" + Раздел + ".json"); + + МассивШагов.Добавить(СтрШаблон(ШаблонШага, Раздел, Выполнение)); + + КонецЦикла; + + Возврат СтрСоединить(МассивШагов, Символы.ПС); + +КонецФункции + Процедура СоздатьНачальнуюСтруктуруJenkins() УдалитьЭлементJenkins("/job/OPITest"); @@ -273,4 +357,7 @@ КонецПроцедуры +Языки = Новый Массив; +Языки.Добавить("ru"); +СоздатьНаборWorkflow(Языки, "./service/localization_vars/", "./ci/"); \ No newline at end of file diff --git a/service/templates/jenkins/test_exec.txt b/service/templates/jenkins/test_exec.txt deleted file mode 100644 index 0ec94276034..00000000000 --- a/service/templates/jenkins/test_exec.txt +++ /dev/null @@ -1,3 +0,0 @@ - catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { - runCommand('1testrunner -run "%1" "%2"') - } \ No newline at end of file diff --git a/src/ru/OPI/src/CommonModules/OPI_GreenMax/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_GreenMax/Module.bsl index ec265e0499c..c9277d35ecf 100644 --- a/src/ru/OPI/src/CommonModules/OPI_GreenMax/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_GreenMax/Module.bsl @@ -74,6 +74,69 @@ КонецФункции +// Получить информацию об аккаунте +// Получает информацию об аккаунте +// +// Примечание: +// Метод в документации API: [GetWaSettings](@green-api.com/v3/docs/api/account/GetAccountSettings/) +// +// Параметры: +// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API +Функция ПолучитьИнформациюОбАккаунте(Знач ПараметрыДоступа) Экспорт + + URL = СформироватьОсновнойURL(ПараметрыДоступа, "getAccountSettings"); + Ответ = OPI_ЗапросыHTTP.Get(URL); + + Возврат Ответ; + +КонецФункции + +// Получить настройки инстанса +// Получает текущие настройки инстанса +// +// Примечание: +// Метод в документации API: [GetSettings](@green-api.com/v3/docs/api/account/GetSettings/) +// +// Параметры: +// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API +Функция ПолучитьНастройкиИнстанса(Знач ПараметрыДоступа) Экспорт + + URL = СформироватьОсновнойURL(ПараметрыДоступа, "getSettings"); + Ответ = OPI_ЗапросыHTTP.Get(URL); + + Возврат Ответ; + +КонецФункции + +// Установить настройки инстанса +// Устанавливает настройки инстанса +// +// Примечание +// Метод в документации API: [SetSettings](@green-api.com/v3/docs/api/account/SetSettings/) +// +// Параметры: +// Настройки - Структура Из КлючИЗначение - Настройки инстанса. См. ПолучитьСтруктуруНастроекИнстанса - settings +// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API +Функция УстановитьНастройкиИнстанса(Знач Настройки, Знач ПараметрыДоступа) Экспорт + + OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Настройки); + + URL = СформироватьОсновнойURL(ПараметрыДоступа, "setSettings"); + Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Настройки); + + Возврат Ответ; + +КонецФункции + // Получить код авторизации // Отправляет SMS по указанному номеру для получения кода подтверждения // @@ -147,6 +210,32 @@ КонецФункции +// Установить картинку профиля +// Устанавливает новую картинку профиля +// +// Примечание: +// Метод в документации API: [SetProfilePicture](@green-api.com/v3/docs/api/account/SetProfilePicture/) +// +// Параметры: +// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access +// Картинка - ДвоичныеДанные, Строка - Картинка профиля - picture +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API +Функция УстановитьКартинкуПрофиля(Знач ПараметрыДоступа, Знач Картинка) Экспорт + + OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); + + СоответствиеКартинки = Новый Соответствие(); + СоответствиеКартинки.Вставить("file|file.jpg", Картинка); + + URL = СформироватьОсновнойURL(ПараметрыДоступа, "setProfilePicture"); + Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеКартинки); + + Возврат Ответ; + +КонецФункции + // Разлогинить инстанс // Разлогинивает инстанс // @@ -167,6 +256,90 @@ КонецФункции +// Перезапустить инстанс +// Перезапускает инстанс +// +// Примечание: +// Метод в документации API: [Reboot](@green-api.com/v3/docs/api/account/Reboot/) +// +// Параметры: +// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API +Функция ПерезапуститьИнстанс(Знач ПараметрыДоступа) Экспорт + + URL = СформироватьОсновнойURL(ПараметрыДоступа, "reboot"); + Ответ = OPI_ЗапросыHTTP.Get(URL); + + Возврат Ответ; + +КонецФункции + +// Проверить аккаунт +// Проверяет существование аккаунта Max по номеру телефона +// +// Примечание: +// Метод в документации API: [CheckAccount](@green-api.com/v3/docs/api/account/CheckAccount/) +// +// Параметры: +// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access +// НомерТелефона - Строка, Число - Номер телефона для проверки без знака + - phone +// ИгнорироватьКэш - Булево - Игнорировать кэш при повторном запросе проверки - force +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API +Функция ПроверитьАккаунт(Знач ПараметрыДоступа, Знач НомерТелефона, Знач ИгнорироватьКэш = Ложь) Экспорт + + OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона); + + НомерТелефона = СтрЗаменить(НомерТелефона, "+", ""); + + Параметры = Новый Структура; + OPI_Инструменты.ДобавитьПоле("phoneNumber", НомерТелефона , "Число", Параметры); + OPI_Инструменты.ДобавитьПоле("force" , ИгнорироватьКэш, "Булево", Параметры); + + URL = СформироватьОсновнойURL(ПараметрыДоступа, "checkAccount"); + Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры); + + Возврат Ответ; + +КонецФункции + +// Получить структуру настроек инстанса +// Получает шаблон структуры для установки настроек инстанса +// +// Параметры: +// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty +// +// Возвращаемое значение: +// Структура Из КлючИЗначение - Структура настроек инстанса +Функция ПолучитьСтруктуруНастроекИнстанса(Знач Пустая = Ложь) Экспорт + + OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая); + + СтруктураНастроек = Новый Структура; + + СтруктураНастроек.Вставить("webhookUrl" , ""); + СтруктураНастроек.Вставить("webhookUrlToken" , "<токен для доступа к вашему серверу уведомлений, если требуется>"); + СтруктураНастроек.Вставить("delaySendMessagesMilliseconds" , "<интервал отправки сообщений в миллисекундах>"); + СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "<отмечать входящие сообщения прочитанными: yes, no>"); + СтруктураНастроек.Вставить("markIncomingMessagesReadedOnReply", "<отмечать входящие сообщения прочитанными при отправке сообщения в чат: yes, no>"); + СтруктураНастроек.Вставить("outgoingWebhook" , "<получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений: yes, no>"); + СтруктураНастроек.Вставить("outgoingMessageWebhook" , "<получать уведомления о сообщениях, отправленных с телефона: yes, no>"); + СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "<получать уведомления о сообщениях, отправленных через API: yes, no>"); + СтруктураНастроек.Вставить("stateWebhook" , "<получать уведомления об изменении состояния авторизации инстанса: yes, no>"); + СтруктураНастроек.Вставить("incomingWebhook" , "<получать уведомления о входящих сообщениях и файлах: yes, no>"); + + Если Пустая Тогда + СтруктураНастроек = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураНастроек); + КонецЕсли; + + //@skip-check constructor-function-return-section + Возврат СтруктураНастроек; + +КонецФункции + #КонецОбласти #КонецОбласти diff --git a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl index bed23125c27..7a7b552e6e8 100644 --- a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl @@ -11361,6 +11361,97 @@ КонецФункции +Функция Проверка_GreenMax_ОтправитьКодАвторизации(Знач Результат, Знач Вариант) + + Возврат Неопределено; + +КонецФункции + +Функция Проверка_GreenMax_ПолучитьСостояниеИнстанса(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат["stateInstance"]).Равно("authorized"); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GreenMax_ПерезапуститьИнстанс(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат["isReboot"]).Равно(Истина); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GreenMax_ПолучитьСтруктуруНастроекИнстанса(Знач Результат, Знач Вариант) + + ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина); + + Если Вариант = "Пустая" Тогда + + Для Каждого Элемент Из Результат Цикл + + Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда + ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь); + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция Проверка_GreenMax_ПолучитьНастройкиИнстанса(Знач Результат, Знач Вариант, Параметры = "") + + Попытка + JSON = OPI_Инструменты.JSONСтрокой(Результат); + JSON = СтрЗаменить(JSON, Параметры["GreenMax_AccountID"], "1234567890@c.us"); + + Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина); + Исключение + Сообщить("Ошибка JSON"); + КонецПопытки; + + ОжидаетЧто(Результат["delaySendMessagesMilliseconds"]).Заполнено(); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GreenMax_УстановитьНастройкиИнстанса(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат["saveSettings"]).Равно(Истина); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GreenMax_УстановитьКартинкуПрофиля(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат["setProfilePicture"]).Равно(Истина); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GreenMax_ПолучитьИнформациюОбАккаунте(Знач Результат, Знач Вариант) + + Попытка + Результат["chatId"] = "***"; + Результат["phone"] = "***"; + Исключение + Сообщить("Не удалось заменить секреты!"); + КонецПопытки; + + ОжидаетЧто(Результат["chatId"]).Заполнено(); + ОжидаетЧто(Результат["phone"]).Заполнено(); + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область ReportPortal diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl index d013faec407..a86b883649e 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl @@ -2346,7 +2346,7 @@ GreenAPI_УстановитьНастройкиИнстанса(ПараметрыТеста); GreenAPI_ПолучитьСостояниеИнстанса(ПараметрыТеста); GreenAPI_УстановитьКартинкуПрофиля(ПараметрыТеста); - GreenAPI_ПерезапуститьИнстанс(ПараметрыТеста); + // GreenAPI_ПерезапуститьИнстанс(ПараметрыТеста); // GreenAPI_ПолучитьКодАвторизации(ПараметрыТеста); // GreenAPI_РазлогинитьИнстанс(ПараметрыТеста); // GreenAPI_ПолучитьQR(ПараметрыТеста); @@ -2920,13 +2920,21 @@ OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_IdInstance" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Token" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Phone" , ПараметрыТеста); - //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_AccountID" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_AccountID" , ПараметрыТеста); //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_TestGroupID", ПараметрыТеста); - //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста); GreenMax_СформироватьПараметрыДоступа(ПараметрыТеста); //GreenMax_РазлогинитьИнстанс(ПараметрыТеста); //GreenMax_ПолучитьКодАвторизации(ПараметрыТеста); + //GreenMax_ОтправитьКодАвторизации(ПараметрыТеста); + GreenMax_ПолучитьСостояниеИнстанса(ПараметрыТеста); + GreenMax_ПолучитьНастройкиИнстанса(ПараметрыТеста); + GreenMax_УстановитьНастройкиИнстанса(ПараметрыТеста); + GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыТеста); + GreenMax_УстановитьКартинкуПрофиля(ПараметрыТеста); + GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыТеста); + GreenMax_ПерезапуститьИнстанс(ПараметрыТеста); КонецПроцедуры @@ -23328,7 +23336,125 @@ Обработать(Результат, "GreenMax", "ОтправитьКодАвторизации"); КонецПроцедуры + +Процедура GreenMax_ПолучитьСостояниеИнстанса(ПараметрыФункции) + + ApiUrl = ПараметрыФункции["GreenMax_ApiURL"]; + MediaUrl = ПараметрыФункции["GreenMax_MediaURL"]; + IdInstance = ПараметрыФункции["GreenMax_IdInstance"]; + ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; + + ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); + Результат = OPI_GreenMax.ПолучитьСостояниеИнстанса(ПараметрыДоступа); + + // END + + Обработать(Результат, "GreenMax", "ПолучитьСостояниеИнстанса"); + +КонецПроцедуры + +Процедура GreenMax_ПерезапуститьИнстанс(ПараметрыФункции) + + ApiUrl = ПараметрыФункции["GreenMax_ApiURL"]; + MediaUrl = ПараметрыФункции["GreenMax_MediaURL"]; + IdInstance = ПараметрыФункции["GreenMax_IdInstance"]; + ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; + + ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); + Результат = OPI_GreenMax.ПерезапуститьИнстанс(ПараметрыДоступа); + + // END + + Обработать(Результат, "GreenMax", "ПерезапуститьИнстанс"); + +КонецПроцедуры +Процедура GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыФункции) + + Результат = OPI_GreenMax.ПолучитьСтруктуруНастроекИнстанса(); + + // END + + Обработать(Результат, "GreenMax", "ПолучитьСтруктуруНастроекИнстанса"); + + Результат = OPI_GreenMax.ПолучитьСтруктуруНастроекИнстанса(Истина); + + Обработать(Результат, "GreenMAx", "ПолучитьСтруктуруНастроекИнстанса", "Пустая"); + +КонецПроцедуры + +Процедура GreenMax_ПолучитьНастройкиИнстанса(ПараметрыФункции) + + ApiUrl = ПараметрыФункции["GreenMax_ApiURL"]; + MediaUrl = ПараметрыФункции["GreenMax_MediaURL"]; + IdInstance = ПараметрыФункции["GreenMax_IdInstance"]; + ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; + + ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); + Результат = OPI_GreenMax.ПолучитьНастройкиИнстанса(ПараметрыДоступа); + + // END + + Обработать(Результат, "GreenMax", "ПолучитьНастройкиИнстанса", , ПараметрыФункции); + +КонецПроцедуры + +Процедура GreenMax_УстановитьНастройкиИнстанса(ПараметрыФункции) + + ApiUrl = ПараметрыФункции["GreenMax_ApiURL"]; + MediaUrl = ПараметрыФункции["GreenMax_MediaURL"]; + IdInstance = ПараметрыФункции["GreenMax_IdInstance"]; + ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; + + ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); + + СтруктураНастроек = Новый Структура; + СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "no"); + СтруктураНастроек.Вставить("outgoingWebhook" , "no"); + СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "yes"); + + Результат = OPI_GreenMax.УстановитьНастройкиИнстанса(СтруктураНастроек, ПараметрыДоступа); + + // END + + Обработать(Результат, "GreenMax", "УстановитьНастройкиИнстанса"); + +КонецПроцедуры + +Процедура GreenMax_УстановитьКартинкуПрофиля(ПараметрыФункции) + + ApiUrl = ПараметрыФункции["GreenMax_ApiURL"]; + MediaUrl = ПараметрыФункции["GreenMax_MediaURL"]; + IdInstance = ПараметрыФункции["GreenMax_IdInstance"]; + ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; + + Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные + + ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); + Результат = OPI_GreenMax.УстановитьКартинкуПрофиля(ПараметрыДоступа, Картинка); + + // END + + Обработать(Результат, "GreenMax", "УстановитьКартинкуПрофиля"); + +КонецПроцедуры + +Процедура GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыФункции) + + ApiUrl = ПараметрыФункции["GreenMax_ApiURL"]; + MediaUrl = ПараметрыФункции["GreenMax_MediaURL"]; + IdInstance = ПараметрыФункции["GreenMax_IdInstance"]; + ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; + + ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); + Результат = OPI_GreenMax.ПолучитьИнформациюОбАккаунте(ПараметрыДоступа); + + // END + + Обработать(Результат, "GreenMax", "ПолучитьИнформациюОбАккаунте"); + +КонецПроцедуры + #КонецОбласти #КонецОбласти