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:
+114
-31
@@ -15,11 +15,91 @@
|
||||
|
||||
конст ВЕРСИЯ = "1.0.1"
|
||||
|
||||
|
||||
метод Скрипт()
|
||||
Консоль.Записать("Скрипт для автоматизированного тестирования на Vanessa Automation")
|
||||
Консоль.Записать("Версия %ВЕРСИЯ")
|
||||
Консоль.Записать("Скрипт для автоматизированного тестирования на Vanessa Automation (%ВЕРСИЯ)")
|
||||
|
||||
Консоль.Записать("\нСписок команд:\н")
|
||||
|
||||
Консоль.Записать("АвтотестыVA version")
|
||||
Консоль.Записать("\тВозвращает текущую версию скрипта")
|
||||
|
||||
Консоль.Записать("АвтотестыVA update")
|
||||
Консоль.Записать("\тОбновляет скрипт, VanessaAutomation и необходимые шаблоны шагов")
|
||||
;
|
||||
|
||||
метод version()
|
||||
Консоль.Записать("Версия: %ВЕРСИЯ\н")
|
||||
;
|
||||
|
||||
метод update()
|
||||
Консоль.Записать("Обновление:")
|
||||
|
||||
Консоль.Записать("\тСкрипт АвтотестыVA")
|
||||
Консоль.Записать("\т- скачивание новой версии")
|
||||
пер временныйСкрипт = СкачатьНовуюВерсиюСкрипта()
|
||||
пер версияНовогоСкрипта = ВерсияНовогоСкрипта(временныйСкрипт)
|
||||
Консоль.Записать("\т- Новая версия скрипта %версияНовогоСкрипта")
|
||||
;
|
||||
|
||||
метод СкачатьНовуюВерсиюСкрипта(): Файл
|
||||
пер клиентHttp = КлиентHttp.СБазовымUrl("https://raw.githubusercontent.com/")
|
||||
пер запросGet = клиентHttp.ЗапросGet("/DoublesunRUS/devscripts/master/VA-Тесты/АвтоТестыVA.sbsl")
|
||||
исп ответHttp = запросGet.Выполнить()
|
||||
|
||||
знч временныйСкрипт = Файлы.СоздатьВременныйФайл("АвтотестыVA", ".sbsl", Ложь)
|
||||
исп потокЗаписи = временныйСкрипт.ОткрытьПотокЗаписи()
|
||||
ответHttp.Тело.КопироватьВ(потокЗаписи)
|
||||
|
||||
возврат временныйСкрипт
|
||||
;
|
||||
|
||||
метод КодировкаПотокаВыводаСкриптов(): Строка
|
||||
возврат СредаИсполнения.ПолучитьСвойство("file.encoding")
|
||||
;
|
||||
|
||||
метод ВыполнитьСкрипт(имяФайлаСкрипта: Строка, имяКомандыСкрипта: Строка, параметрыСкрипта: Массив): ПотокЧтения
|
||||
пер расширениеИсполнителя: Строка
|
||||
знч имяОС = СредаИсполнения.ПолучитьСвойство("os.name")
|
||||
выбор когда имяОС.НачинаетсяС("windows", Истина)
|
||||
расширениеИсполнителя = "cmd"
|
||||
иначе
|
||||
расширениеИсполнителя = "sh"
|
||||
;
|
||||
знч путьКИсполнителю = СредаИсполнения.ПолучитьСвойство("logback.configurationFile").Удалить("config" + Файлы.СимволРазделителя
|
||||
+ "logback.xml") + "bin/executor_j11." + расширениеИсполнителя
|
||||
|
||||
пер аргументыПроцессаОс = ["-s", имяФайлаСкрипта, "-m", имяКомандыСкрипта]
|
||||
если не параметрыСкрипта.Пусто()
|
||||
аргументыПроцессаОс.ДобавитьВсе(параметрыСкрипта)
|
||||
;
|
||||
|
||||
знч библиотека = новый ПроцессОс(путьКИсполнителю, аргументыПроцессаОс, Ложь)
|
||||
|
||||
библиотека.Запустить()
|
||||
библиотека.ОжидатьЗавершения()
|
||||
|
||||
знч ошибкиВыполненияСкрипта = библиотека.ПолучитьПотокОшибок()
|
||||
знч текстОшибок = ошибкиВыполненияСкрипта.ПрочитатьКакТекст(КодировкаПотокаВыводаСкриптов())
|
||||
если не текстОшибок.Пусто()
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибок)
|
||||
;
|
||||
|
||||
возврат библиотека.ПотокВывода
|
||||
;
|
||||
|
||||
метод ВерсияНовогоСкрипта(файлСкрипта: Файл): Строка
|
||||
исп потокВывода = ВыполнитьСкрипт(файлСкрипта.Путь, "version", [])
|
||||
знч строкаВерсии = потокВывода.ПрочитатьКакСтроку()
|
||||
если не строкаВерсии.НачинаетсяС("Версия:")
|
||||
знч текстОшибки = "При запуске новой версии скрипта получено сообщение:\н%строкаВерсии"
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
;
|
||||
|
||||
возврат строкаВерсии.Подстрока(8)
|
||||
;
|
||||
|
||||
|
||||
структура ОписаниеНастроек
|
||||
пер НастройкиVA: ОписаниеНастроекVA
|
||||
пер НастройкиТестовойБазы: ОписаниеНастроекТестовойБазы
|
||||
@@ -83,8 +163,7 @@
|
||||
пер ДелатьОтчетВФорматеjUnit: Булево = Истина
|
||||
пер ОтчетJUnit: VAParamsОтчетJUnit
|
||||
|
||||
конструктор(КаталогПроекта, КаталогФич, КаталогиБиблиотек, ВыполнениеСценариев, КлиентТестирования, ОтчетAllure,
|
||||
ОтчетJUnit)
|
||||
конструктор(КаталогПроекта, КаталогФич, КаталогиБиблиотек, ВыполнениеСценариев, КлиентТестирования, ОтчетAllure, ОтчетJUnit)
|
||||
;
|
||||
|
||||
структура VAParamsВыполнениеСценариев
|
||||
@@ -135,11 +214,12 @@
|
||||
пока не чтениеФайлаАвтофичи.ЧтениеЗавершено()
|
||||
знч строкаФайла = чтениеФайлаАвтофичи.ПрочитатьСтроку("utf-8")
|
||||
если строкаФайла.Пусто()
|
||||
продолжить
|
||||
продолжить
|
||||
;
|
||||
знч массивСтроки = строкаФайла.Разделить("\т", Истина)
|
||||
если массивСтроки.Размер() != 3
|
||||
выбросить новый ИсключениеИндексВнеГраниц("В каждой строке автофича файла должно быть 3 значения, разделенных табуляцией.")
|
||||
выбросить новый ИсключениеИндексВнеГраниц(
|
||||
"В каждой строке автофича файла должно быть 3 значения, разделенных табуляцией.")
|
||||
;
|
||||
|
||||
знч пользователиАвтофичи = массивСтроки[2].Разделить(",")
|
||||
@@ -149,15 +229,16 @@
|
||||
|
||||
автофичи.Вставить(файлАвтофичи.ИмяБезРасширения, массивОбъектов)
|
||||
;
|
||||
|
||||
|
||||
возврат автофичи
|
||||
;
|
||||
|
||||
метод СоздатьФайлыФичПоАвтофичам(путьФич: Строка, автофичи: Соответствие, пользователи: Массив, путьШаблонов: Строка, имяФайлаШаблонаШапки: Строка)
|
||||
метод СоздатьФайлыФичПоАвтофичам(путьФич: Строка, автофичи: Соответствие, пользователи: Массив, путьШаблонов: Строка,
|
||||
имяФайлаШаблонаШапки: Строка)
|
||||
если автофичи.Пусто()
|
||||
возврат
|
||||
возврат
|
||||
;
|
||||
|
||||
|
||||
пер файлШаблонаШапки = новый Файл("%путьШаблонов/%имяФайлаШаблонаШапки")
|
||||
если не файлШаблонаШапки.Существует()
|
||||
выбросить новый ИсключениеНедопустимыйАргумент("Файл %{файлШаблонаШапки.Имя} не существует.")
|
||||
@@ -177,7 +258,7 @@
|
||||
|
||||
для описаниеОбъекта из автофича.Значение
|
||||
если описаниеОбъекта.Пользователи.Найти(пользователь.Представление) == Неопределено
|
||||
продолжить
|
||||
продолжить
|
||||
;
|
||||
|
||||
знч объектМассивом = описаниеОбъекта.Объект.Разделить(".") // Массив
|
||||
@@ -216,12 +297,12 @@
|
||||
|
||||
пер автофичи = СписокФайловАвтофич(настройки.НастройкиАвтофич.КаталогАвтофич)
|
||||
если автофичи.Пусто()
|
||||
выбросить новый ИсключениеНедопустимоеСостояние("Нет ни одного файла автофич по пути %{настройки.НастройкиАвтофич.КаталогАвтофич}")
|
||||
выбросить новый ИсключениеНедопустимоеСостояние("Нет ни одного файла автофич по пути %{настройки.НастройкиАвтофич
|
||||
.КаталогАвтофич}")
|
||||
;
|
||||
|
||||
СоздатьФайлыФичПоАвтофичам(
|
||||
настройки.НастройкиVA.КаталогФич, автофичи,
|
||||
настройки.НастройкиАвтофич.Пользователи, настройки.НастройкиАвтофич.КаталогШаблоновШагов, настройки.НастройкиАвтофич.ФайлШаблонаШапки)
|
||||
СоздатьФайлыФичПоАвтофичам(настройки.НастройкиVA.КаталогФич, автофичи, настройки.НастройкиАвтофич.Пользователи,
|
||||
настройки.НастройкиАвтофич.КаталогШаблоновШагов, настройки.НастройкиАвтофич.ФайлШаблонаШапки)
|
||||
;
|
||||
|
||||
метод RunTests(имяФайлаНастроек: Строка)
|
||||
@@ -243,7 +324,8 @@
|
||||
пер временныеИБПользователей = новый Соответствие()
|
||||
для пользователь из настройки.НастройкиАвтофич.Пользователи
|
||||
знч временныйКаталогИБ = Файлы.СоздатьВременныйКаталог("Test1CD")
|
||||
CreateInfobaseFromTemplate(настройки.НастройкиТестовойБазы.ПутьКDT, временныйКаталогИБ.Путь, исполняемыйФайлПлатформы)
|
||||
CreateInfobaseFromTemplate(настройки.НастройкиТестовойБазы.ПутьКDT, временныйКаталогИБ.Путь,
|
||||
исполняемыйФайлПлатформы)
|
||||
|
||||
временныеИБПользователей.Вставить(пользователь.Представление, временныйКаталогИБ)
|
||||
;
|
||||
@@ -264,19 +346,20 @@
|
||||
пер настройкиVAParamsОтчетJUnit = новый VAParamsОтчетJUnit("%{настройки.НастройкиVA.КаталогОтчетов}/junit")
|
||||
|
||||
пер настройкиVAParams = новый VAParams(настройки.НастройкиVA.КаталогПроекта, каталогФич, настройки.НастройкиVA
|
||||
.КаталогиБиблиотек, настройкиVAParamsВыполнениеСценариев, настройкиVAParamsКлиентТестирования,
|
||||
настройкиVAParamsОтчетAllure, настройкиVAParamsОтчетJUnit)
|
||||
.КаталогиБиблиотек, настройкиVAParamsВыполнениеСценариев, настройкиVAParamsКлиентТестирования, настройкиVAParamsОтчетAllure,
|
||||
настройкиVAParamsОтчетJUnit)
|
||||
|
||||
знч временныйФайлНастроекVA = Файлы.СоздатьВременныйФайл("VAParams", ".json")
|
||||
исп потокНастроекVA = временныйФайлНастроекVA.ОткрытьПотокЗаписи()
|
||||
СериализацияJson.ЗаписатьОбъект(потокНастроекVA, настройкиVAParams)
|
||||
потокНастроекVA.Закрыть()
|
||||
|
||||
знч параметрыVA = "StartFeaturePlayer;DisableUserSettingsLoader;DisableLoadTestClientsTable;DisableLoadConfig;ClearStepsCache;VAParams=%временныйФайлНастроекVA"
|
||||
знч параметрыVA =
|
||||
"StartFeaturePlayer;DisableUserSettingsLoader;DisableLoadTestClientsTable;DisableLoadConfig;ClearStepsCache;VAParams=%временныйФайлНастроекVA"
|
||||
|
||||
пер командаПлатформы = ExecuteDataProcessorTestManager(настройки.НастройкиVA.ПутьVanessaAutomationSingle,
|
||||
параметрыVA, временныйКаталогИБ.Путь, исполняемыйФайлПлатформы, настройки.НастройкиТестовойБазы
|
||||
.ИмяПользователя, настройки.НастройкиТестовойБазы
|
||||
пер командаПлатформы = ExecuteDataProcessorTestManager(настройки.НастройкиVA.ПутьVanessaAutomationSingle, параметрыVA,
|
||||
временныйКаталогИБ.Путь, исполняемыйФайлПлатформы, настройки.НастройкиТестовойБазы
|
||||
.ИмяПользователя, настройки.НастройкиТестовойБазы
|
||||
.ПарольПользователя)
|
||||
командыПлатформы.Добавить(командаПлатформы)
|
||||
|
||||
@@ -301,11 +384,12 @@
|
||||
исп потокФайлаНастроек = файлНастроек.ОткрытьПотокЧтения()
|
||||
пер настройкиJson = новый НастройкиЧтенияОбъектовJson()
|
||||
настройкиJson.ИгнорироватьНеизвестныеСвойства = Истина
|
||||
пер настройки = СериализацияJson.ПрочитатьОбъект(потокФайлаНастроек, Тип(ОписаниеНастроек), настройкиJson) как ОписаниеНастроек
|
||||
пер настройки = СериализацияJson.ПрочитатьОбъект(потокФайлаНастроек, Тип(ОписаниеНастроек),
|
||||
настройкиJson) как ОписаниеНастроек
|
||||
пер пользователи = новый Массив()
|
||||
для пользователь из настройки.НастройкиАвтофич.Пользователи
|
||||
знч описаниеПользователя = новый ОписаниеПользователя(пользователь["ПредставлениеПользователя"], пользователь["ИмяПользователя"],
|
||||
пользователь["ПарольПользователя"])
|
||||
знч описаниеПользователя = новый ОписаниеПользователя(пользователь["ПредставлениеПользователя"],
|
||||
пользователь["ИмяПользователя"], пользователь["ПарольПользователя"])
|
||||
пользователи.Добавить(описаниеПользователя)
|
||||
;
|
||||
настройки.НастройкиАвтофич.Пользователи = пользователи
|
||||
@@ -514,8 +598,8 @@
|
||||
Консоль.Записать("ИБ успешно создана.")
|
||||
;
|
||||
|
||||
метод ExecuteDataProcessorTestManager(имяВнешнейОбработки: Строка, вспомогательныеПараметры: Строка, путьКИБ: Строка, имяФайлаПлатформы: Строка,
|
||||
имяПользователя: Строка = "", пароль: Строка = ""): ОписаниеКомандыПлатформы
|
||||
метод ExecuteDataProcessorTestManager(имяВнешнейОбработки: Строка, вспомогательныеПараметры: Строка, путьКИБ: Строка,
|
||||
имяФайлаПлатформы: Строка, имяПользователя: Строка = "", пароль: Строка = ""): ОписаниеКомандыПлатформы
|
||||
пер параметрыПроцесса = новый Массив()
|
||||
параметрыПроцесса.Добавить("ENTERPRISE")
|
||||
параметрыПроцесса.Добавить("/TestManager")
|
||||
@@ -543,8 +627,7 @@
|
||||
возврат командаПлатформы
|
||||
;
|
||||
|
||||
метод ВыполнитьКомандуПлатформы(имяКоманды: Строка, параметры: Массив, выводитьОшибки: Булево =
|
||||
Истина): ОписаниеКомандыПлатформы
|
||||
метод ВыполнитьКомандуПлатформы(имяКоманды: Строка, параметры: Массив, выводитьОшибки: Булево = Истина): ОписаниеКомандыПлатформы
|
||||
знч временныйФайлЛогов = Файлы.СоздатьВременныйФайл()
|
||||
|
||||
параметры.Добавить("/Out")
|
||||
@@ -577,8 +660,8 @@
|
||||
выбросить новый ИсключениеНедопустимоеСостояние(текстОшибки)
|
||||
;
|
||||
|
||||
текстОшибки += Строки.Шаблон("\в\нКоманда: $0\в\нПараметры: $1", [командаПлатформы.имяКоманды, Строки.Соединить(командаПлатформы
|
||||
.параметры, " ")])
|
||||
текстОшибки += Строки.Шаблон("\в\нКоманда: $0\в\нПараметры: $1", [командаПлатформы.имяКоманды, Строки.Соединить(
|
||||
командаПлатформы.параметры, " ")])
|
||||
|
||||
исп ошибкиВыполненияСкрипта = командаПлатформы.временныйФайлЛогов.ОткрытьПотокЧтения()
|
||||
текстОшибки += "\в\н" + ошибкиВыполненияСкрипта.ПрочитатьКакТекст(КодировкаПотокаВыводаПлатформы())
|
||||
|
||||
Reference in New Issue
Block a user