Skip to content

Commit

Permalink
Интерактивная справка. Часть 3.#1686
Browse files Browse the repository at this point in the history
  • Loading branch information
Pr-Mex committed Aug 26, 2022
1 parent 5f4c6fc commit 0701708
Show file tree
Hide file tree
Showing 42 changed files with 6,508 additions and 51 deletions.
137 changes: 125 additions & 12 deletions tools/onescript/MakeInteractiveHelp.os
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,68 @@
Возврат Стр;
КонецФункции

Процедура ЗапуститьСборку(СтрокаЗапускаСборки, Параметры)

Процесс = СоздатьПроцесс(СтрокаЗапускаСборки,,Истина);
Процесс.Запустить();
Sleep(5000);
Пока Истина Цикл
Если НайтиПроцессПоИдентификатору(Процесс.Идентификатор) = Неопределено Тогда
//Если НадоЧитатьЛог Тогда
// ВывестиНовыеСообщения(ИмяФайлаЛога,КолСтрокЛогаПрочитано);
//КонецЕсли;

Прервать;
КонецЕсли;

Sleep(2000);
//Если ЗначениеЗаполнено(ИмяФайлаЛога) И НадоЧитатьЛог Тогда
// Sleep(10000);
//Иначе
// Sleep(2000);
//КонецЕсли;

//Если НадоЧитатьЛог Тогда
// Если ЗначениеЗаполнено(ИмяФайлаЛога) Тогда
// ВывестиНовыеСообщения(ИмяФайлаЛога,КолСтрокЛогаПрочитано);
// КонецЕсли;
//
// Попытка
// Если НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Тогда
// Если Процесс.ПотокВывода.ЕстьДанные Тогда
// ОчереднаяСтрокаВывода = Процесс.ПотокВывода.Прочитать();
// Если Не ПустаяСтрока(ОчереднаяСтрокаВывода) Тогда
// Сообщить(ОчереднаяСтрокаВывода, СтатусСообщения.Информация);
// КонецЕсли;
// КонецЕсли;
//
// Если Процесс.ПотокОшибок.ЕстьДанные Тогда
// ОчереднаяСтрокаОшибок = Процесс.ПотокОшибок.Прочитать();
// Если Не ПустаяСтрока(ОчереднаяСтрокаОшибок) Тогда
// Сообщить(ОчереднаяСтрокаОшибок, СтатусСообщения.Важное);
// КонецЕсли;
// КонецЕсли;
// КонецЕсли;
// Исключение
// Сообщить(ОписаниеОшибки());
// КонецПопытки;
//
//КонецЕсли;
КонецЦикла;

КонецПроцедуры

Функция ЗначениеСтатуса(ИмяФайла)

Текст = Новый ЧтениеТекста;
Текст.Открыть(ИмяФайла, "UTF-8");
ТекстФайла = СокрЛП(Текст.Прочитать());
Текст.Закрыть();

Возврат ТекстФайла;

КонецФункции

Процедура СоздатьФайлыУроковПоФиче(ИмяФайлаФичи, ИмяКаталога, Параметры)

Файл = Новый Файл(Параметры.ResultPath);
Expand All @@ -85,7 +147,9 @@
ПараметрыVA.Вставить("ИспользоватьКомпонентуVanessaExt", Истина);
ПараметрыVA.Вставить("ВыполнитьСценарии", Истина);
ПараметрыVA.Вставить("ВыгружатьСтатусВыполненияСценариевВФайл", Истина);
ПараметрыVA.Вставить("ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев", ОбъединитьПути(ВременныйКаталогАртефактов, "status.txt"));
ИмяФайлаСтатуса = ОбъединитьПути(ВременныйКаталогАртефактов, "status.txt");
УдалитьФайлы(ИмяФайлаСтатуса);
ПараметрыVA.Вставить("ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев", ИмяФайлаСтатуса);

Для Каждого КлючЗначение Из Параметры Цикл
ПараметрыVA.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
Expand All @@ -99,35 +163,78 @@
ЗаписьJson.Закрыть();

СтрокаЗапускаСборки = ПолучитьСтрокуЗапускаСборки(Параметры, ИмяФайлаПараметрыVA);
Сообщить(СтрокаЗапускаСборки);
//Сообщить(СтрокаЗапускаСборки);
ЗапуститьСборку(СтрокаЗапускаСборки, Параметры);

ФайлСтатуса = Новый Файл(ИмяФайлаСтатуса);
Если НЕ ФайлСтатуса.Существует() Тогда
ВызватьИсключение "Не найден файл статуса: " + ИмяФайлаСтатуса;
КонецЕсли;

ЗначениеСтатуса = ЗначениеСтатуса(ИмяФайлаСтатуса);
Если ЗначениеСтатуса <> "0" Тогда
ВызватьИсключение "Получен статус выполнения сценария: " + ЗначениеСтатуса;
КонецЕсли;

ИмяФайлаВидео = ОбъединитьПути(Параметры.КаталогВыгрузкиИнструкцийВидео, "Video", "result.mp4");
ФайлВидео = Новый Файл(ИмяФайлаВидео);
Если НЕ ФайлВидео.Существует() Тогда
ВызватьИсключение "Не найден файл видео: " + ИмяФайлаВидео;
КонецЕсли;

КаталогРезультата = ОбъединитьПути(Параметры.ResultPath, "FinalVideo");
ОбеспечитьКаталог(КаталогРезультата);

КаталогГлавы = ОбъединитьПути(КаталогРезультата, ИмяКаталога);
ОбеспечитьКаталог(КаталогГлавы);

ФайлИмяФайлаФичи = Новый Файл(ИмяФайлаФичи);
НовоеИмяФайлаВидео = ОбъединитьПути(КаталогГлавы, ФайлИмяФайлаФичи.ИмяБезРасширения + ".mp4");

УдалитьФайлы(НовоеИмяФайлаВидео);
КопироватьФайл(ИмяФайлаВидео, НовоеИмяФайлаВидео);

КонецПроцедуры

Процедура СоздатьУрокиПоКаталогуФич(КаталогФич, Параметры)
Процедура СоздатьУрокиПоКаталогуФич(КаталогФич, Параметры, ДопПараметры)
Файл = Новый Файл(КаталогФич);
ИмяКаталога = Файл.Имя;

Файлы = НайтиФайлы(КаталогФич, "*.feature", Истина);
Для Каждого Файл Из Файлы Цикл
Сообщить("Работа по фиче: " + Файл.ПолноеИмя);

ДопПараметры.КоличествоОбработанныхФайлов = ДопПараметры.КоличествоОбработанныхФайлов + 1;
СоздатьФайлыУроковПоФиче(Файл.ПолноеИмя, ИмяКаталога, Параметры);

Прервать;
КонецЦикла;

КонецПроцедуры

Процедура СгенерироватьФайлыСправки(Параметры, КаталогУроков)
Процедура СгенерироватьФайлыСправки(Параметры, КаталогУроков, ДопПараметры)
ТаблицаГлав = Новый ТаблицаЗначений;
ТаблицаГлав.Колонки.Добавить("ПолноеИмя");
ТаблицаГлав.Колонки.Добавить("Имя");

Файлы = НайтиФайлы(КаталогУроков, "*", Ложь);
Для Каждого Файл Из Файлы Цикл
Если Найти(НРег(Файл.Имя), "глава 02") = 0 Тогда
Если Найти(НРег(Файл.Имя), "глава") = 0 Тогда
Продолжить;
КонецЕсли;
КонецЕсли;

Если Параметры.Свойство("ОтборКаталогов") И Параметры.ОтборКаталогов.Количество() > 0 Тогда
НадоПродолжить = Истина;
Для Каждого Элем Из Параметры.ОтборКаталогов Цикл
Если Найти(НРег(Файл.Имя), НРег(Элем)) > 0 Тогда
НадоПродолжить = Ложь;
КонецЕсли;
КонецЦикла;

Если НадоПродолжить Тогда
Продолжить;
КонецЕсли;

КонецЕсли;

СтрокаТаблицаГлав = ТаблицаГлав.Добавить();
СтрокаТаблицаГлав.ПолноеИмя = Файл.ПолноеИмя;
Expand All @@ -137,21 +244,27 @@
ТаблицаГлав.Сортировать("Имя");

Для Каждого СтрокаТаблицаГлав Из ТаблицаГлав Цикл
Сообщить("Создание уроков по главе: " + СтрокаТаблицаГлав.Имя);

СоздатьУрокиПоКаталогуФич(СтрокаТаблицаГлав.ПолноеИмя, Параметры);
Сообщить("Создание уроков по главе: " + СтрокаТаблицаГлав.Имя);
СоздатьУрокиПоКаталогуФич(СтрокаТаблицаГлав.ПолноеИмя, Параметры, ДопПараметры);

Сообщить("ПОТОМ УБРАТЬ!!!");
Прервать;
КонецЦикла;

КонецПроцедуры

Процедура СборкаСправки(ИмяФайлаПараметров)
НачалоРаботы = ТекущаяДата();

Параметры = ПараметрыСборки(ИмяФайлаПараметров);
КаталогУроков = ОбъединитьПути(Параметры.VAPath, "training","features");
СгенерироватьФайлыСправки(Параметры, КаталогУроков);

ДопПараметры = Новый Структура;
ДопПараметры.Вставить("КоличествоОбработанныхФайлов", 0);
СгенерироватьФайлыСправки(Параметры, КаталогУроков, ДопПараметры);

ОкончаниеРаботы = ТекущаяДата();
Сообщить("Обработка закончена за " + Окр((ОкончаниеРаботы - НачалоРаботы)/60) + " минут.");
Сообщить("Обработано " + ДопПараметры.КоличествоОбработанныхФайлов + " файлов.");

КонецПроцедуры

Expand Down
13 changes: 13 additions & 0 deletions tools/onescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,16 @@ oscript MakeTrainingFeature.os <ПутьККаталогуФичИнтеракт
```
oscript MakeTrainingFeature.os "C:\Commons\rep\vanessa-automation\training\features" "C:\Commons\rep\vanessa-automation\features\Core\Training\Example.feature"
```


#### MakeInteractiveHelp.os

Скрипт для пакетной сборки интерактивной справки в разных форматах (видео, MD и т.д.)
Как запускать:
```
oscript MakeInteractiveHelp.os <ПутьКФайлуНастроекВФорматеJson>
```
Пример запуска:
```
oscript C:\Commons\rep\vanessa-automation\tools\onescript\MakeInteractiveHelp.os C:\Commons\rep\vanessa-automation\examples\MakeInteractiveHelp\MakeVideoInteractiveHelp.json
```
7 changes: 4 additions & 3 deletions training/List_of_lessons_ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,22 +171,23 @@
1. Как правильно проверить видимость/доступность кнопки, элемента или пункта меню. ![](mortarboard.png)[Запустить урок](КакПравильноПроверитьДоступностьКнопкиПоля)
1. Как программно записать элемент а потом открыть его навигационную ссылку. ![](mortarboard.png)[Запустить урок](КакПрограммноЗаписатьЭлементАПотомОткрытьЕгоНавигационнуюСсылку)
1. Как закрыть браузер после окончания выполнения тестов. ![](mortarboard.png)[Запустить урок](КакЗакрытьБраузерПослеОкончанияВыполненияТестов)
1. Особенности шагов при работе с переключателями, гиперссылками и полями. ![](mortarboard.png)[Запустить урок](ОсобенностиШаговПриВыбореЗначенияПоНомеру)
1. Сравнить текст фича файла с другим файлом. ![](mortarboard.png)[Запустить урок](СравнитьТекстФичаФайлаСДругимФайлом)
1. Как понять, что изменилось в форме.
1. Расследование причин падения тестов.
- Как сравнить состояние формы упавшего теста с текущим состоянием.
1. Как проверить состояние формы
1. Сравнить текст фича файла с другим файлом.

### Глава 9. Allure. Отчет о запуске тестов в формате Allure
* Отчет о выполнении сценариев в формате Allure. ![](mortarboard.png)[Запустить урок]( ОтчетОВыполненииСценариевВФорматеAllure)
* Отчет о выполнении сценариев в формате Allure. ![](mortarboard.png)[Запустить урок](ОтчетОВыполненииСценариевВФорматеAllure)

### Глава 10. Автоинструкции/Автодокументация
* Обзор возможностей. ![](mortarboard.png)[Запустить урок](АвтоинструкцииОбзорВозможностей)

### Глава 11. UI Automation
1. Шаги для работы с UI Automation. ![](mortarboard.png)[Запустить урок](ШагиДляРаботыСUIAutomation)
1. Как закрыть сеанс 1С в обычных формах с помощью UI Automation. ![](mortarboard.png)[Запустить урок](ЗакрытьСеанс1СВОбычныхФормахUIAutomation)
1. Как открыть окно "О программе" и получить оттуда данные лицензий. ![](mortarboard.png)[Запустить урок](КакОткрытьОкноОПрограммеИПолучитьДанныеЛицензий)
1. Как открыть окно "О программе" и получить из него данные лицензий. ![](mortarboard.png)[Запустить урок](КакОткрытьОкноОПрограммеИПолучитьДанныеЛицензий)
1. Как открыть окно "Все функции" с помощью UI Automation. ![](mortarboard.png)[Запустить урок](КакОткрытьОкноВсеФункцииСПомощьюUIAutomation)

### Глава 12. Расширение VAExtension
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.10">
<ExternalDataProcessor uuid="2ce2cc1a-c621-4152-a137-17ba9ddd876d">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>c693f91f-d25f-4144-bc51-8cea9bda2ad3</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.СозданиеСловаряДляУроков" category="Object">
<xr:TypeId>508adbfe-66e9-491f-8240-07385f9106ab</xr:TypeId>
<xr:ValueId>acd74d9c-d865-402b-8900-5ae1eda7b564</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>СозданиеСловаряДляУроков</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Создание словаря для уроков</v8:content>
</v8:item>
</Synonym>
<Comment/>
<DefaultForm>ExternalDataProcessor.СозданиеСловаряДляУроков.Form.Форма</DefaultForm>
<AuxiliaryForm/>
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</ExternalDataProcessor>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.10">
<Form uuid="f0e18bb5-af8c-467c-bac1-f18d901de0c7">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
Loading

0 comments on commit 0701708

Please sign in to comment.