You've already forked devscripts
mirror of
https://github.com/DoublesunRUS/devscripts.git
synced 2026-06-11 22:46:51 +02:00
АвтоФичи VA
This commit is contained in:
@@ -12,9 +12,9 @@
|
||||
В РАЗРАБОТКЕ.<br>
|
||||
Скрипт для непрерывной интеграции с использованием GitLab.<br>
|
||||
|
||||
#### ГенераторФичVA.sbsl
|
||||
#### АвтоФичиVA.sbsl
|
||||
В РАЗРАБОТКЕ.<br>
|
||||
Скрипт, позволяющий по шаблону сгенерировать файлы feature для использования с VanessaAutomation.<br>
|
||||
Скрипт, позволяющий сгенерировать и запустить тесты в VanessaAutomation по шаблонам.<br>
|
||||
|
||||
### Библиотеки
|
||||
#### ЗапускСкриптов.sbsl
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы нового документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы нового документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Перепроведение существующего документа "%ИмяОбъекта%"
|
||||
Дано Перепроведение существующего документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Исправление существующего документа "%ИмяОбъекта%"
|
||||
Дано Исправление существующего документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Печать существующего документа "%ИмяОбъекта%"
|
||||
Дано Печать существующего документа "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,19 @@
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы нового документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы нового документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Перепроведение существующего документа "%ИмяОбъекта%"
|
||||
Дано Перепроведение существующего документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Печать существующего документа "%ИмяОбъекта%"
|
||||
Дано Печать существующего документа "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,15 @@
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы нового документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы нового документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Перепроведение существующего документа "%ИмяОбъекта%"
|
||||
Дано Перепроведение существующего документа "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,7 @@
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка документа "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Документ "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего документа "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,3 @@
|
||||
#report.feature=Журнал документов "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы журнала документов "%ИмяОбъекта%"
|
||||
Дано Открытие формы журнала документов "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,3 @@
|
||||
#report.feature=Обработка "%ИмяОбъекта%"
|
||||
Сценарий: Открытие основной формы обработки "%ИмяОбъекта%"
|
||||
Дано Открытие основной формы обработки "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,3 @@
|
||||
#report.feature=Общая форма "%ИмяОбъекта%"
|
||||
Сценарий: Открытие общей формы "%ИмяОбъекта%"
|
||||
Дано Открытие общей формы "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,3 @@
|
||||
#report.feature=Отчет "%ИмяОбъекта%"
|
||||
Сценарий: Формирование отчета "%ИмяОбъекта%"
|
||||
Дано Формирование отчета "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,19 @@
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего элемента справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего элемента справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы нового элемента справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы нового элемента справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Перезапись существующего элемента справочника "%ИмяОбъекта%"
|
||||
Дано Перезапись существующего элемента справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Печать существующего элемента справочника "%ИмяОбъекта%"
|
||||
Дано Печать существующего элемента справочника "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,15 @@
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего элемента справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего элемента справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы нового элемента справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы нового элемента справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Перезапись существующего элемента справочника "%ИмяОбъекта%"
|
||||
Дано Перезапись существующего элемента справочника "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,7 @@
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы списка справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы списка справочника "%ИмяОбъекта%"
|
||||
|
||||
#report.feature=Справочник "%ИмяОбъекта%"
|
||||
Сценарий: Открытие формы существующего элемента справочника "%ИмяОбъекта%"
|
||||
Дано Открытие формы существующего элемента справочника "%ИмяОбъекта%"
|
||||
@@ -0,0 +1,10 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
|
||||
#report.story=Пользователь "%ПредставлениеПользователя%"
|
||||
Функциональность: Тесты под пользователем "%ПредставлениеПользователя%"
|
||||
|
||||
Контекст:
|
||||
Дано я подключаю TestClient "%ПредставлениеПользователя%" логин "%ИмяПользователя%" пароль "%ПарольПользователя%"
|
||||
И я закрыл все окна клиентского приложения
|
||||
Binary file not shown.
@@ -0,0 +1,120 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
@ExportScenarios
|
||||
|
||||
Функциональность: Проверка Документов
|
||||
|
||||
Сценарий: Открытие формы списка документа "ИмяДокумента"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "Документ.[ИмяДокумента]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму списка документа "ИмяДокумента"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть форму списка документа [ИмяДокумента]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Открытие формы существующего документа "ИмяДокумента"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "Документ.[ИмяДокумента]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я ищу последние 5 документов "ИмяДокумента" по каждой организации в переменную "СписокДокументов"
|
||||
Если '$СписокДокументов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаДокумента" из массива "$СписокДокументов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаДокумента$)' в переменную "НавигационнаяСсылкаДокумента"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаДокумента$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаДокумента$"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Открытие формы нового документа "ИмяДокумента"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "ИнтерактивноеДобавление" к объекту "Документ.[ИмяДокумента]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму документа "ИмяДокумента"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть основную форму документа [ИмяДокумента]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Перепроведение существующего документа "ИмяДокумента"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "ИнтерактивноеДобавление" к объекту "Документ.[ИмяДокумента]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я ищу последние 5 документов "ИмяДокумента" по каждой организации в переменную "СписокДокументов"
|
||||
Если '$СписокДокументов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаДокумента" из массива "$СписокДокументов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаДокумента$)' в переменную "НавигационнаяСсылкаДокумента"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаДокумента$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаДокумента$"
|
||||
И я нажимаю на кнопку "Провести и закрыть"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось перепровести документ $НавигационнаяСсылкаДокумента$"
|
||||
Если в текущем окне есть сообщения пользователю Тогда
|
||||
Тогда я вызываю исключение с текстом сообщения
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Исправление существующего документа "ИмяДокумента"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "ИнтерактивноеДобавление" к объекту "Документ.[ИмяДокумента]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я ищу последние 5 документов "ИмяДокумента" по каждой организации в переменную "СписокДокументов"
|
||||
Если '$СписокДокументов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаДокумента" из массива "$СписокДокументов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаДокумента$)' в переменную "НавигационнаяСсылкаДокумента"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаДокумента$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаДокумента$"
|
||||
И я нажимаю на гиперссылку с именем "Исправить"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось исправить документ $НавигационнаяСсылкаДокумента$"
|
||||
Тогда открылось окно "*(создание)"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось дождаться создания исправленного документа $НавигационнаяСсылкаДокумента$"
|
||||
И я нажимаю на кнопку "Провести"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось записать и провести документ-исправление"
|
||||
Если в текущем окне есть сообщения пользователю Тогда
|
||||
Тогда я вызываю исключение с текстом сообщения
|
||||
И я нажимаю на кнопку "Пометить на удаление / Снять пометку"
|
||||
Затем Если появилось окно диалога я нажимаю на кнопку "Да"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Печать существующего документа "ИмяДокумента"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "Документ.[ИмяДокумента]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я получаю список команд печати для объекта метаданных "Документ.[ИмяДокумента]" в переменную "СписокПечатныхФорм"
|
||||
Если '$СписокПечатныхФорм$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И я ищу последние 5 документов "ИмяДокумента" по каждой организации в переменную "СписокДокументов"
|
||||
Если '$СписокДокументов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаДокумента" из массива "$СписокДокументов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаДокумента$)' в переменную "НавигационнаяСсылкаДокумента"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаДокумента$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаДокумента$"
|
||||
И для каждого значения "ПечатнаяФормаОбъекта" из массива "$СписокПечатныхФорм$"
|
||||
Тогда я запоминаю значение выражения '$ПечатнаяФормаОбъекта$.Представление' в переменную "НаименованиеПечатнойФормы"
|
||||
Если элемент с заголовком "$НаименованиеПечатнойФормы$" присутствует на форме тогда
|
||||
Тогда я нажимаю на кнопку "$НаименованиеПечатнойФормы$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось напечатать форму $НаименованиеПечатнойФормы$ для документа $НавигационнаяСсылкаДокумента$"
|
||||
И я закрываю текущее окно
|
||||
И я закрыл все окна клиентского приложения
|
||||
@@ -0,0 +1,17 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
@ExportScenarios
|
||||
|
||||
Функциональность: Проверка Журналов документов
|
||||
|
||||
Сценарий: Открытие формы журнала документов "ИмяЖурналаДокументов"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "ЖурналДокументов.[ИмяЖурналаДокументов]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму журнала документов "ИмяЖурналаДокументов"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть форму журнала документов [ИмяЖурналаДокументов]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
@@ -0,0 +1,17 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
@ExportScenarios
|
||||
|
||||
Функциональность: Проверка Обработок
|
||||
|
||||
Сценарий: Открытие основной формы обработки "ИмяОбработки"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Использование" к объекту "Обработка.[ИмяОбработки]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму обработки "ИмяОбработки"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть форму основную обработки [ИмяОбработки]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
@@ -0,0 +1,17 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
@ExportScenarios
|
||||
|
||||
Функциональность: Проверка Общих форм
|
||||
|
||||
Сценарий: Открытие общей формы "ИмяОбщейФормы"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "ОбщаяФорма.[ИмяОбщейФормы]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю общую форму "ИмяОбщейФормы"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть общую форму [ИмяОбщейФормы]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
@@ -0,0 +1,21 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
@ExportScenarios
|
||||
|
||||
Функциональность: Проверка Отчетов
|
||||
|
||||
Сценарий: Формирование отчета "ИмяОтчета"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Использование" к объекту "Отчет.[ИмяОтчета]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму отчета "ИмяОтчета"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть форму отчета [ИмяОтчета]"
|
||||
И я нажимаю на кнопку "Сформировать"
|
||||
И я жду заполнение табличного документа 'ОтчетТабличныйДокумент' в течение 10 секунд
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось сформировать отчет [ИмяОтчета]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
@@ -0,0 +1,91 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
@ExportScenarios
|
||||
|
||||
Функциональность: Проверка Справочников
|
||||
|
||||
Сценарий: Открытие формы списка справочника "ИмяСправочника"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "Справочник.[ИмяСправочника]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму списка справочника "ИмяСправочника"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть форму списка справочника [ИмяСправочника]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Открытие формы существующего элемента справочника "ИмяСправочника"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "Справочник.[ИмяСправочника]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я ищу последние 5 элементов объекта "Справочник.[ИмяСправочника]" в переменную "СписокЭлементов"
|
||||
Если '$СписокЭлементов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаСправочника" из массива "$СписокЭлементов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаСправочника$)' в переменную "НавигационнаяСсылкаСправочника"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаСправочника$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаСправочника$"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Открытие формы нового элемента справочника "ИмяСправочника"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "ИнтерактивноеДобавление" к объекту "Справочник.[ИмяСправочника]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я открываю основную форму справочника "ИмяСправочника"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть основную форму элемента справочника [ИмяСправочника]"
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Перезапись существующего элемента справочника "ИмяСправочника"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "ИнтерактивноеДобавление" к объекту "Справочник.[ИмяСправочника]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я ищу последние 5 элементов объекта "Справочник.[ИмяСправочника]" в переменную "СписокЭлементов"
|
||||
Если '$СписокЭлементов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаСправочника" из массива "$СписокЭлементов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаСправочника$)' в переменную "НавигационнаяСсылкаСправочника"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаСправочника$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаСправочника$"
|
||||
И я нажимаю на кнопку "Записать и закрыть"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось перезаписать элемент справочника $НавигационнаяСсылкаСправочника$"
|
||||
Если в текущем окне есть сообщения пользователю Тогда
|
||||
Тогда я вызываю исключение с текстом сообщения
|
||||
И я закрыл все окна клиентского приложения
|
||||
|
||||
Сценарий: Печать существующего элемента справочника "ИмяСправочника"
|
||||
Дано я закрыл все окна клиентского приложения
|
||||
|
||||
Если нет права "Просмотр" к объекту "Справочник.[ИмяСправочника]" тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
|
||||
Дано я получаю список команд печати для объекта метаданных "Справочник.[ИмяСправочника]" в переменную "СписокПечатныхФорм"
|
||||
Если '$СписокПечатныхФорм$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
Дано я ищу последние 5 элементов объекта "Справочник.[ИмяСправочника]" в переменную "СписокЭлементов"
|
||||
Если '$СписокЭлементов$.Количество() = 0' Тогда
|
||||
Тогда я останавливаю выполнение сценария "Skipped"
|
||||
И для каждого значения "СсылкаСправочника" из массива "$СписокЭлементов$"
|
||||
Тогда я запоминаю значение выражения 'ПолучитьНавигационнуюСсылку($СсылкаСправочника$)' в переменную "НавигационнаяСсылкаСправочника"
|
||||
Затем я открываю навигационную ссылку "$НавигационнаяСсылкаСправочника$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось открыть навигационную ссылку $НавигационнаяСсылкаСправочника$"
|
||||
И для каждого значения "ПечатнаяФормаОбъекта" из массива "$СписокПечатныхФорм$"
|
||||
Тогда я запоминаю значение выражения '$ПечатнаяФормаОбъекта$.Представление' в переменную "НаименованиеПечатнойФормы"
|
||||
Если элемент с заголовком "$НаименованиеПечатнойФормы$" присутствует на форме тогда
|
||||
Тогда я нажимаю на кнопку "$НаименованиеПечатнойФормы$"
|
||||
Если появилось предупреждение тогда
|
||||
Тогда я вызываю исключение "Не удалось напечатать форму $НаименованиеПечатнойФормы$ для элемента справочника $НавигационнаяСсылкаСправочника$"
|
||||
И я закрываю текущее окно
|
||||
И я закрыл все окна клиентского приложения
|
||||
@@ -0,0 +1,466 @@
|
||||
#!/usr/bin/executor
|
||||
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Alexander Kapralov and Contributors
|
||||
* This program and the accompanying materials are made available under
|
||||
* the terms of the BSD 3-Clause License which is available at
|
||||
* https://spdx.org/licenses/BSD-3-Clause.html#licenseText
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Contributors:
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
структура ОписаниеНастроек
|
||||
пер НастройкиVA: ОписаниеНастроекVA
|
||||
пер НастройкиТестовойБазы: ОписаниеНастроекТестовойБазы
|
||||
пер НастройкиАвтофич: ОписаниеНастроекАвтофич
|
||||
;
|
||||
|
||||
структура ОписаниеНастроекVA
|
||||
пер ПутьVanessaAutomationSingle: Строка
|
||||
пер КаталогПроекта: Строка
|
||||
пер КаталогФич: Строка
|
||||
пер КаталогиБиблиотек: Массив
|
||||
пер КаталогОтчетов: Строка
|
||||
;
|
||||
|
||||
структура ОписаниеНастроекТестовойБазы
|
||||
пер ВерсияПлатформы: Строка
|
||||
пер ПутьКИБ: Строка
|
||||
пер ИмяПользователя: Строка
|
||||
пер ПарольПользователя: Строка
|
||||
;
|
||||
|
||||
структура ОписаниеНастроекАвтофич
|
||||
пер КаталогАвтофич: Строка
|
||||
пер КаталогШаблоновШагов: Строка
|
||||
пер ФайлШаблонаШапки: Строка
|
||||
пер Пользователи: Массив
|
||||
;
|
||||
|
||||
структура ОписаниеПользователя
|
||||
пер Представление: Строка
|
||||
пер Имя: Строка
|
||||
пер Пароль: Строка
|
||||
;
|
||||
|
||||
структура ОписаниеОбъектаАвтофичи
|
||||
пер Объект: Строка
|
||||
пер ШаблонФичи: Строка
|
||||
пер Пользователи: Массив
|
||||
;
|
||||
|
||||
структура VAParams
|
||||
пер КаталогПроекта: Строка
|
||||
пер КаталогФич: Строка
|
||||
пер ВыполнитьСценарии: Булево = Истина
|
||||
пер ВыполнятьШагиАссинхронно: Булево = Ложь
|
||||
пер ДелатьЛогВыполненияСценариевВЖР: Булево = Ложь
|
||||
пер ЗавершитьРаботуСистемы: Булево = Истина
|
||||
пер ЗакрытьTestClientПослеЗапускаСценариев: Булево = Истина
|
||||
пер ОбновлятьСтатистикуВДереве: Булево = Ложь
|
||||
пер ОбновлятьДеревоПриНачалеВыполненияСценария: Булево = Ложь
|
||||
пер КаталогиБиблиотек: Массив
|
||||
пер ДелатьОтчетВФорматеjUnit: Булево = Истина
|
||||
пер КаталогВыгрузкиjUnit: Строка
|
||||
пер ДелатьОтчетВФорматеАллюр: Булево = Истина
|
||||
пер ОтчетAllure: VAParamsОтчетAllure
|
||||
|
||||
конструктор(КаталогПроекта, КаталогФич, КаталогиБиблиотек, КаталогВыгрузкиjUnit, ОтчетAllure)
|
||||
;
|
||||
|
||||
структура VAParamsОтчетAllure
|
||||
пер КаталогВыгрузкиAllure: Строка
|
||||
пер КаталогОтносительноКоторогоНадоСтроитьИерархию: Строка
|
||||
пер УровеньОтчета1: Строка = "#report.epic=;Каталог1"
|
||||
пер УровеньОтчета2: Строка = "#report.feature="
|
||||
пер УровеньОтчета3: Строка = "#report.story="
|
||||
пер ГруппировкаTestSuites: Строка = "#report.feature="
|
||||
|
||||
конструктор(КаталогВыгрузкиAllure, КаталогОтносительноКоторогоНадоСтроитьИерархию)
|
||||
;
|
||||
|
||||
|
||||
метод CreateFeatures(имяФайлаНастроек: Строка)
|
||||
знч настройки = ПрочитатьНастройки(имяФайлаНастроек)
|
||||
|
||||
пер автофичи = новый Соответствие()
|
||||
|
||||
пер настройкиПоиска = новый НастройкиПоискаФайлов()
|
||||
настройкиПоиска.ИмяСодержит(".tsv")
|
||||
для файлАвтофичи из Файлы.Найти(настройки.НастройкиАвтофич.КаталогАвтофич, настройкиПоиска)
|
||||
пер массивОбъектов = новый Массив()
|
||||
|
||||
исп потокФайлаАвтофичи = файлАвтофичи.ОткрытьПотокЧтения()
|
||||
пер чтениеФайлаАвтофичи = новый ЧтениеДанных(потокФайлаАвтофичи)
|
||||
пока не чтениеФайлаАвтофичи.ЧтениеЗавершено()
|
||||
знч строкаФайла = чтениеФайлаАвтофичи.ПрочитатьСтроку("cp1251")
|
||||
если строкаФайла.Пусто()
|
||||
продолжить
|
||||
;
|
||||
знч массивСтроки = строкаФайла.Разделить("\т", Истина)
|
||||
если массивСтроки.Размер() != 3
|
||||
выбросить новый ИсключениеИндексВнеГраниц(
|
||||
"В каждой строке автофича файла должно быть 3 значения, разделенных табуляцией.")
|
||||
;
|
||||
|
||||
знч пользователиАвтофичи = массивСтроки[2].Разделить(",")
|
||||
знч объектАвтофичи = новый ОписаниеОбъектаАвтофичи(массивСтроки[0], массивСтроки[1], пользователиАвтофичи)
|
||||
массивОбъектов.Добавить(объектАвтофичи)
|
||||
;
|
||||
|
||||
автофичи.Вставить(файлАвтофичи.ИмяБезРасширения, массивОбъектов)
|
||||
;
|
||||
|
||||
пер файлШаблонаШапки = новый Файл("%{настройки.НастройкиАвтофич.КаталогШаблоновШагов}/%{настройки.НастройкиАвтофич
|
||||
.ФайлШаблонаШапки}")
|
||||
исп потокШаблонаШапки = файлШаблонаШапки.ОткрытьПотокЧтения()
|
||||
знч текстШаблонаШапки = потокШаблонаШапки.ПрочитатьКакТекст()
|
||||
|
||||
пер текстыШаблоновОбъектов = новый Соответствие()
|
||||
|
||||
для пользователь из настройки.НастройкиАвтофич.Пользователи
|
||||
пер текстФичи = текстШаблонаШапки
|
||||
текстФичи = текстФичи.Заменить("\%ПредставлениеПользователя\%", пользователь.Представление)
|
||||
текстФичи = текстФичи.Заменить("\%ИмяПользователя\%", пользователь.Имя)
|
||||
текстФичи = текстФичи.Заменить("\%ПарольПользователя\%", пользователь.Пароль)
|
||||
|
||||
для автофича из автофичи
|
||||
для описаниеОбъекта из автофича.Значение
|
||||
если описаниеОбъекта.Пользователи.Найти(пользователь.Представление) == Неопределено
|
||||
продолжить
|
||||
;
|
||||
|
||||
пер текстОбъекта = ""
|
||||
если текстыШаблоновОбъектов.СодержитКлюч(описаниеОбъекта.ШаблонФичи)
|
||||
текстОбъекта = текстыШаблоновОбъектов.Получить(описаниеОбъекта.ШаблонФичи)
|
||||
иначе
|
||||
пер файлШаблонаОбъекта = новый Файл("%{настройки.НастройкиАвтофич
|
||||
.КаталогШаблоновШагов}/%{описаниеОбъекта.ШаблонФичи}")
|
||||
исп потокШаблонаОбъекта = файлШаблонаОбъекта.ОткрытьПотокЧтения()
|
||||
знч текстШаблонаОбъекта = потокШаблонаОбъекта.ПрочитатьКакТекст()
|
||||
текстыШаблоновОбъектов.Вставить(описаниеОбъекта.ШаблонФичи, текстШаблонаОбъекта)
|
||||
|
||||
текстОбъекта = текстШаблонаОбъекта
|
||||
;
|
||||
|
||||
текстОбъекта = текстОбъекта.Заменить("\%ИмяОбъекта\%", описаниеОбъекта.Объект.Разделить(".")[1])
|
||||
текстФичи = текстФичи + Символы.НоваяСтрока + текстОбъекта
|
||||
;
|
||||
|
||||
Файлы.СоздатьКаталог("%{настройки.НастройкиVA.КаталогФич}/%{автофича.Ключ}")
|
||||
пер файлФичи = новый Файл("%{настройки.НастройкиVA.КаталогФич}/%{автофича.Ключ}/%{автофича.Ключ}-%{пользователь
|
||||
.Представление}.feature")
|
||||
исп потокФичи = файлФичи.ОткрытьПотокЗаписи()
|
||||
потокФичи.Записать(текстФичи)
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
метод RunTests(имяФайлаНастроек: Строка)
|
||||
знч настройки = ПрочитатьНастройки(имяФайлаНастроек)
|
||||
|
||||
знч каталогВыгрузкиAllure = "%{настройки.НастройкиVA.КаталогОтчетов}/allure"
|
||||
|
||||
если не Файлы.Найти(каталогВыгрузкиAllure).Пусто()
|
||||
Файлы.Удалить(каталогВыгрузкиAllure)
|
||||
;
|
||||
Файлы.СоздатьКаталог("%каталогВыгрузкиAllure/history")
|
||||
для файлИстории из Файлы.Найти("%{настройки.НастройкиVA.КаталогОтчетов}/allure-report/history")
|
||||
Файлы.Скопировать(файлИстории, "%каталогВыгрузкиAllure/history/%{файлИстории.Имя}")
|
||||
;
|
||||
|
||||
знч исполняемыйФайлПлатформы = ИсполняемыйФайлПлатформыПоМаксимальнойСборке(настройки.НастройкиТестовойБазы
|
||||
.ВерсияПлатформы)
|
||||
|
||||
знч временныйФайлНастроекVA = Файлы.СоздатьВременныйФайл("VAParams", ".json")
|
||||
пер настройкиVAParamsОтчетAllure = новый VAParamsОтчетAllure(каталогВыгрузкиAllure, настройки.НастройкиVA.КаталогФич)
|
||||
пер настройкиVAParams = новый VAParams(настройки.НастройкиVA.КаталогПроекта, настройки.НастройкиVA.КаталогФич, настройки.НастройкиVA
|
||||
.КаталогиБиблиотек, "%{настройки.НастройкиVA.КаталогОтчетов}/junit", настройкиVAParamsОтчетAllure)
|
||||
исп потокНастроекVA = временныйФайлНастроекVA.ОткрытьПотокЗаписи()
|
||||
СериализацияJson.ЗаписатьОбъект(потокНастроекVA, настройкиVAParams)
|
||||
потокНастроекVA.Закрыть()
|
||||
|
||||
знч параметрыVA = "StartFeaturePlayer;VBParams=%временныйФайлНастроекVA"
|
||||
|
||||
ExecuteDataProcessorTestManager(настройки.НастройкиVA.ПутьVanessaAutomationSingle, параметрыVA, настройки.НастройкиТестовойБазы
|
||||
.ПутьКИБ, исполняемыйФайлПлатформы, настройки.НастройкиТестовойБазы.ИмяПользователя, настройки.НастройкиТестовойБазы
|
||||
.ПарольПользователя)
|
||||
|
||||
AllureGenerate(настройки)
|
||||
;
|
||||
|
||||
метод OpenReport(имяФайлаНастроек: Строка)
|
||||
знч настройки = ПрочитатьНастройки(имяФайлаНастроек)
|
||||
|
||||
AllureOpen(настройки)
|
||||
;
|
||||
|
||||
метод ПрочитатьНастройки(имяФайлаНастроек: Строка): ОписаниеНастроек
|
||||
пер файлНастроек = новый Файл(имяФайлаНастроек)
|
||||
исп потокФайлаНастроек = файлНастроек.ОткрытьПотокЧтения()
|
||||
пер настройкиJson = новый НастройкиЧтенияОбъектовJson()
|
||||
настройкиJson.ИгнорироватьНеизвестныеСвойства = Истина
|
||||
пер настройки = СериализацияJson.ПрочитатьОбъект(потокФайлаНастроек, Тип(ОписаниеНастроек),
|
||||
настройкиJson) как ОписаниеНастроек
|
||||
пер пользователи = новый Массив()
|
||||
для пользователь из настройки.НастройкиАвтофич.Пользователи
|
||||
знч описаниеПользователя = новый ОписаниеПользователя(пользователь["ПредставлениеПользователя"],
|
||||
пользователь["ИмяПользователя"], пользователь["ПарольПользователя"])
|
||||
пользователи.Добавить(описаниеПользователя)
|
||||
;
|
||||
настройки.НастройкиАвтофич.Пользователи = пользователи
|
||||
|
||||
возврат настройки
|
||||
;
|
||||
|
||||
метод AllureOpen(настройки: ОписаниеНастроек)
|
||||
пер имяКоманды = ""
|
||||
пер параметрыПроцесса = новый Массив()
|
||||
|
||||
знч версияОС = ИспользуемаяОС()
|
||||
выбор версияОС
|
||||
когда ОперационныеСистемы.Windows
|
||||
имяКоманды = "allure.bat"
|
||||
иначе
|
||||
имяКоманды = "allure"
|
||||
;
|
||||
|
||||
параметрыПроцесса.Добавить("open")
|
||||
параметрыПроцесса.Добавить("%{настройки.НастройкиVA.КаталогОтчетов}/allure-report")
|
||||
|
||||
ВыполнитьКомандуСистемы(имяКоманды, параметрыПроцесса)
|
||||
;
|
||||
|
||||
метод AllureGenerate(настройки: ОписаниеНастроек)
|
||||
пер имяКоманды = ""
|
||||
пер параметрыПроцесса = новый Массив()
|
||||
|
||||
знч версияОС = ИспользуемаяОС()
|
||||
выбор версияОС
|
||||
когда ОперационныеСистемы.Windows
|
||||
имяКоманды = "allure.bat"
|
||||
иначе
|
||||
имяКоманды = "allure"
|
||||
;
|
||||
|
||||
параметрыПроцесса.Добавить("generate")
|
||||
параметрыПроцесса.Добавить("%{настройки.НастройкиVA.КаталогОтчетов}/allure")
|
||||
параметрыПроцесса.Добавить("--clean")
|
||||
параметрыПроцесса.Добавить("-o")
|
||||
параметрыПроцесса.Добавить("%{настройки.НастройкиVA.КаталогОтчетов}/allure-report")
|
||||
|
||||
ВыполнитьКомандуСистемы(имяКоманды, параметрыПроцесса)
|
||||
;
|
||||
|
||||
метод ВыполнитьКомандуСистемы(имяКоманды: Строка, параметры: Массив)
|
||||
знч процесс = новый ПроцессОс(имяКоманды, параметры, Ложь)
|
||||
процесс.Запустить()
|
||||
процесс.ОжидатьЗавершения()
|
||||
|
||||
знч кодВозврата = процесс.ПолучитьКодВозврата()
|
||||
Консоль.Записать("Код возврата:" + кодВозврата)
|
||||
|
||||
пер результатВыполненияСкрипта = процесс.ПолучитьПотокВывода()
|
||||
знч текстРезультата = результатВыполненияСкрипта.ПрочитатьКакТекст(КодировкаПотокаВывода())
|
||||
если не текстРезультата.Пусто()
|
||||
Консоль.Записать("Поток вывода:")
|
||||
Консоль.Записать(текстРезультата)
|
||||
;
|
||||
|
||||
пер ошибкиВыполненияСкрипта = процесс.ПолучитьПотокОшибок()
|
||||
знч текстОшибок = ошибкиВыполненияСкрипта.ПрочитатьКакТекст(КодировкаПотокаВывода())
|
||||
если не текстОшибок.Пусто()
|
||||
Консоль.Записать("Поток ошибок:")
|
||||
Консоль.Записать(текстОшибок)
|
||||
;
|
||||
;
|
||||
|
||||
метод КодировкаПотокаВывода(): Строка
|
||||
возврат "Cp1251"
|
||||
;
|
||||
|
||||
|
||||
перечисление ОперационныеСистемы
|
||||
Windows,
|
||||
MacOS,
|
||||
Linux
|
||||
;
|
||||
|
||||
|
||||
метод ИспользуемаяОС(): ОперационныеСистемы
|
||||
знч имяОС = СредаИсполнения.ПолучитьСвойство("os.name")
|
||||
|
||||
выбор когда имяОС.НачинаетсяС("windows", Истина)
|
||||
возврат ОперационныеСистемы.Windows
|
||||
|
||||
когда имяОС.Содержит("mac", Истина)
|
||||
возврат ОперационныеСистемы.MacOS
|
||||
|
||||
когда имяОС.Содержит("nux", Истина)
|
||||
возврат ОперационныеСистемы.Linux
|
||||
|
||||
иначе
|
||||
выбросить новый ИсключениеНедопустимоеСостояние("Неизвестная ОС")
|
||||
;
|
||||
;
|
||||
|
||||
метод ИсполняемыйФайлПлатформыПоМаксимальнойСборке(версияПлатформы: Строка): Строка
|
||||
знч установленныеПлатформы = УстановленныеПлатформы()
|
||||
если установленныеПлатформы.СодержитКлюч(версияПлатформы)
|
||||
знч путьКПлатформе = установленныеПлатформы.Получить(версияПлатформы)
|
||||
возврат "%путьКПлатформе/bin/1cv8"
|
||||
;
|
||||
|
||||
знч максимальныеПлатформы = МаксимальныеПлатформы()
|
||||
если максимальныеПлатформы.СодержитКлюч(версияПлатформы)
|
||||
знч путьКПлатформе = максимальныеПлатформы.Получить(версияПлатформы)
|
||||
возврат "%путьКПлатформе/bin/1cv8"
|
||||
;
|
||||
|
||||
знч текстОшибки = "Не найдена установленная платформа %версияПлатформы"
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
;
|
||||
|
||||
метод МаксимальныеПлатформы(): Соответствие
|
||||
знч установленныеПлатформы = УстановленныеПлатформы()
|
||||
|
||||
пер максимальныеПлатформы: Соответствие
|
||||
|
||||
для платформа из установленныеПлатформы
|
||||
знч разложенныйТекущийРелиз = платформа.Ключ.Разделить(".")
|
||||
|
||||
пер релизБезВерсииМассивом = новый Массив(разложенныйТекущийРелиз)
|
||||
релизБезВерсииМассивом.УдалитьПоИндексу(3)
|
||||
|
||||
знч релизБезВерсии = Строки.Соединить(релизБезВерсииМассивом, ".")
|
||||
|
||||
если не максимальныеПлатформы.СодержитКлюч(релизБезВерсии)
|
||||
максимальныеПлатформы.Вставить(релизБезВерсии, платформа.Значение)
|
||||
продолжить
|
||||
;
|
||||
|
||||
знч последнийРелиз = максимальныеПлатформы.Получить(релизБезВерсии)
|
||||
знч разложенныйПоследнийРелиз = последнийРелиз.Разделить(".")
|
||||
|
||||
если разложенныйТекущийРелиз[3] > разложенныйПоследнийРелиз[3]
|
||||
максимальныеПлатформы.Вставить(релизБезВерсии, платформа.Значение)
|
||||
;
|
||||
;
|
||||
|
||||
возврат максимальныеПлатформы
|
||||
;
|
||||
|
||||
метод УстановленныеПлатформы(): Соответствие
|
||||
пер установленныеПлатформы: Соответствие
|
||||
|
||||
знч каталогиПлатформы = КаталогиПлатформы()
|
||||
|
||||
знч настройкиПоискаФайлов = новый НастройкиПоискаФайлов()
|
||||
настройкиПоискаФайлов.ИсключитьФайлы(Истина)
|
||||
настройкиПоискаФайлов.МаксимальнаяГлубина(1)
|
||||
|
||||
для каталогПлатформы из каталогиПлатформы
|
||||
знч найденныеФайлы = Файлы.Найти(каталогПлатформы, настройкиПоискаФайлов)
|
||||
для найденныйФайл из найденныеФайлы
|
||||
если не найденныйФайл.Имя.НачинаетсяС("8.3")
|
||||
продолжить
|
||||
;
|
||||
установленныеПлатформы.Вставить(найденныйФайл.Имя, найденныйФайл.Путь)
|
||||
;
|
||||
;
|
||||
|
||||
возврат установленныеПлатформы
|
||||
;
|
||||
|
||||
метод КаталогиПлатформы(): Массив
|
||||
пер списокКаталогов: Массив
|
||||
|
||||
знч используемаяОС = ИспользуемаяОС()
|
||||
|
||||
выбор используемаяОС
|
||||
когда ОперационныеСистемы.Windows
|
||||
знч каталог32 = СредаИсполнения.ПолучитьПеременную("ProgramFiles(x86)")
|
||||
списокКаталогов.Добавить("%каталог32\\1Cv8")
|
||||
знч каталог64 = СредаИсполнения.ПолучитьПеременную("ProgramFiles")
|
||||
списокКаталогов.Добавить("%каталог64\\1Cv8")
|
||||
когда ОперационныеСистемы.MacOS
|
||||
списокКаталогов.Добавить("/opt/1Cv8")
|
||||
когда ОперационныеСистемы.Linux
|
||||
списокКаталогов.Добавить("/opt/1C/v8.3/x86_64")
|
||||
;
|
||||
|
||||
возврат списокКаталогов
|
||||
;
|
||||
|
||||
метод ExecuteDataProcessorTestManager(имяВнешнейОбработки: Строка, вспомогательныеПараметры: Строка, путьКИБ: Строка,
|
||||
имяФайлаПлатформы: Строка, имяПользователя: Строка = "", пароль: Строка = "")
|
||||
пер параметрыПроцесса = новый Массив()
|
||||
параметрыПроцесса.Добавить("ENTERPRISE")
|
||||
параметрыПроцесса.Добавить("/TestManager")
|
||||
параметрыПроцесса.Добавить("/Execute")
|
||||
параметрыПроцесса.Добавить(имяВнешнейОбработки)
|
||||
если не вспомогательныеПараметры.Пусто()
|
||||
параметрыПроцесса.Добавить("/C\"%вспомогательныеПараметры\"")
|
||||
;
|
||||
параметрыПроцесса.Добавить("/IBConnectionString")
|
||||
параметрыПроцесса.Добавить("\"File=\"\"%путьКИБ\"\"\"")
|
||||
параметрыПроцесса.Добавить("/DisableStartupDialogs")
|
||||
параметрыПроцесса.Добавить("/WA-")
|
||||
если не имяПользователя.Пусто()
|
||||
параметрыПроцесса.Добавить("/N")
|
||||
параметрыПроцесса.Добавить("\"%имяПользователя\"")
|
||||
;
|
||||
если не пароль.Пусто()
|
||||
параметрыПроцесса.Добавить("/P")
|
||||
параметрыПроцесса.Добавить(пароль)
|
||||
;
|
||||
|
||||
ВыполнитьКомандуПлатформы(имяФайлаПлатформы, параметрыПроцесса)
|
||||
Консоль.Записать("Обработка запущена.")
|
||||
;
|
||||
|
||||
метод ВыполнитьКомандуПлатформы(имяКоманды: Строка, параметры: Массив, выводитьОшибки: Булево = Истина)
|
||||
знч временныйФайлЛогов = Файлы.СоздатьВременныйФайл()
|
||||
|
||||
параметры.Добавить("/Out")
|
||||
параметры.Добавить(временныйФайлЛогов.Путь)
|
||||
|
||||
пер процесс = новый ПроцессОс(имяКоманды, параметры)
|
||||
процесс.Запустить()
|
||||
процесс.ОжидатьЗавершения()
|
||||
|
||||
исп результатВыполненияСкрипта = процесс.ПолучитьПотокВывода()
|
||||
знч текстРезультата = результатВыполненияСкрипта.ПрочитатьКакТекст()
|
||||
если не текстРезультата.Пусто()
|
||||
Консоль.Записать(текстРезультата)
|
||||
;
|
||||
|
||||
знч кодВозврата = процесс.ПолучитьКодВозврата()
|
||||
|
||||
если кодВозврата == 0
|
||||
возврат
|
||||
;
|
||||
|
||||
пер текстОшибки = "Код возврата: %кодВозврата"
|
||||
если не выводитьОшибки
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
;
|
||||
|
||||
текстОшибки += Строки.Шаблон("\в\нКоманда: $0\в\нПараметры: $1", [имяКоманды, Строки.Соединить(параметры, " ")])
|
||||
|
||||
исп ошибкиВыполненияСкрипта = временныйФайлЛогов.ОткрытьПотокЧтения()
|
||||
текстОшибки += "\в\н" + ошибкиВыполненияСкрипта.ПрочитатьКакТекст(КодировкаПотокаВыводаПлатформы())
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
;
|
||||
|
||||
метод КодировкаПотокаВыводаПлатформы(): Строка
|
||||
если ИспользуемаяОС() == ОперационныеСистемы.Windows
|
||||
возврат "windows-1251"
|
||||
;
|
||||
|
||||
возврат "UTF-8"
|
||||
;
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/executor
|
||||
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2020 Alexander Kapralov and Contributors
|
||||
* This program and the accompanying materials are made available under
|
||||
* the terms of the BSD 3-Clause License which is available at
|
||||
* https://spdx.org/licenses/BSD-3-Clause.html#licenseText
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Contributors:
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
структура ОписаниеНастроек
|
||||
пер КаталогФич: Строка
|
||||
пер ШаблонШапки: Строка
|
||||
пер ШаблонОбъекта: Строка
|
||||
пер ИмяПеременнойОбъекта: Строка
|
||||
пер Объекты: Массив
|
||||
пер Пользователи: Массив
|
||||
;
|
||||
|
||||
структура ОписаниеПользователя
|
||||
пер Представление: Строка
|
||||
пер Имя: Строка
|
||||
пер Пароль: Строка
|
||||
;
|
||||
|
||||
|
||||
метод Скрипт(путьНастройки: Строка, путьШаблоны: Строка, путьФичи: Строка)
|
||||
пер списокНастроек = новый Массив()
|
||||
|
||||
пер настройкиПоиска = новый НастройкиПоискаФайлов()
|
||||
настройкиПоиска.ИмяСодержит(".json")
|
||||
для файлНастроек из Файлы.Найти(путьНастройки, настройкиПоиска)
|
||||
исп потокФайлаНастроек = файлНастроек.ОткрытьПотокЧтения()
|
||||
|
||||
пер настройкиJson = новый НастройкиЧтенияОбъектовJson()
|
||||
настройкиJson.ИгнорироватьНеизвестныеСвойства = Истина
|
||||
|
||||
пер настройки = СериализацияJson.ПрочитатьОбъект(потокФайлаНастроек, Тип(ОписаниеНастроек), настройкиJson) как ОписаниеНастроек
|
||||
пер пользователи = новый Массив()
|
||||
для пользователь из настройки.Пользователи
|
||||
знч описаниеПользователя = новый ОписаниеПользователя(пользователь["ПредставлениеПользователя"], пользователь["ИмяПользователя"],
|
||||
пользователь["ПарольПользователя"])
|
||||
пользователи.Добавить(описаниеПользователя)
|
||||
;
|
||||
настройки.Пользователи = пользователи
|
||||
|
||||
списокНастроек.Добавить(настройки)
|
||||
;
|
||||
|
||||
для настройки из списокНастроек
|
||||
пер файлШаблонаШапки = новый Файл("%путьШаблоны/%{настройки.ШаблонШапки}")
|
||||
исп потокШаблонаШапки = файлШаблонаШапки.ОткрытьПотокЧтения()
|
||||
знч текстШаблонаШапки = потокШаблонаШапки.ПрочитатьКакТекст()
|
||||
|
||||
пер файлШаблонаОбъекта = новый Файл("%путьШаблоны/%{настройки.ШаблонОбъекта}")
|
||||
исп потокШаблонаОбъекта = файлШаблонаОбъекта.ОткрытьПотокЧтения()
|
||||
знч текстШаблонаОбъекта = потокШаблонаОбъекта.ПрочитатьКакТекст()
|
||||
|
||||
пер имяФайлаБезРасширения = файлШаблонаОбъекта.ИмяБезРасширения
|
||||
для пользователь из настройки.Пользователи
|
||||
пер текстФичи = текстШаблонаШапки
|
||||
текстФичи = текстФичи.Заменить("\%ПредставлениеПользователя\%", пользователь.Представление)
|
||||
текстФичи = текстФичи.Заменить("\%ИмяПользователя\%", пользователь.Имя)
|
||||
текстФичи = текстФичи.Заменить("\%ПарольПользователя\%", пользователь.Пароль)
|
||||
|
||||
для объект из настройки.Объекты
|
||||
пер текстОбъекта = текстШаблонаОбъекта
|
||||
текстОбъекта = текстОбъекта.Заменить("\%%{настройки.ИмяПеременнойОбъекта}\%", объект)
|
||||
текстФичи = текстФичи + Символы.НоваяСтрока + текстОбъекта
|
||||
;
|
||||
|
||||
пер файлФичи = новый Файл("%путьФичи/%{настройки.КаталогФич}/%имяФайлаБезРасширения-%{пользователь.Представление}.feature")
|
||||
исп потокФичи = файлФичи.ОткрытьПотокЗаписи()
|
||||
потокФичи.Записать(текстФичи)
|
||||
;
|
||||
;
|
||||
;
|
||||
Reference in New Issue
Block a user