#Область ОписаниеТестов
&НаКлиенте
Функция ПолучитьМассивВсехТестов()
Результат = Новый Массив;
//ШаблонПараметров = Новый ФиксированнаяСтруктура;
ШаблонПараметров = Новый Структура;
ШаблонПараметров.Вставить("ПредставлениеВСпискеВопроса");
ШаблонПараметров.Вставить("Файл1СПредприятие", "C:\Program Files (x86)\1cv8\8.3.16.1224\bin\1cv8.exe");
ШаблонПараметров.Вставить("КаталогИнформационнойБазы");
ШаблонПараметров.Вставить("Пользователь", "Администратор (ОрловАВ)");
ШаблонПараметров.Вставить("Пароль");
ШаблонПараметров.Вставить("НаименованиеОтчетаОбработки", "Печать договоров по шаблонам");
ШаблонПараметров.Вставить("ФайлОтчетаОбработки", "D:\ПечатьДоговоровПоШаблонам\20200430 ПечатьДоговоровПоШаблонам_УТ_КА_ERP.epf");
ШаблонПараметров.Вставить("ЗапускОбработки", Истина);
ШаблонПараметров.Вставить("СсылкаНаОбъектНазначения");
ШаблонПараметров.Вставить("НаименованиеОбъектаНазначения");
ШаблонПараметров.Вставить("ЗакрыватьПриложениеПослеТеста", Ложь);
ШаблонПараметров.Вставить("ПаузаДляЗакрытииПриложенмя", 20);
ШаблонПараметров.Вставить("ЗаписьЖурналаДействийПользователя", Истина);
// Служебные параметры устаналивать не надо
ШаблонПараметров.Вставить("ЗаголовокПриложенияСлужебный");
ШаблонПараметров.Вставить("НаименованиеОбъектаНазначенияСлужебный");
ШаблонПараметров.Вставить("ЭтоБСП_2_3Служебный", Ложь);
ШаблонПараметров.Вставить("ДопПараметры", Новый Структура);
// УТ 11.4
ПараметрыТеста = Новый Структура(Новый ФиксированнаяСтруктура(ШаблонПараметров));
ПараметрыТеста.ПредставлениеВСпискеВопроса = "УТ 11.4";
ПараметрыТеста.КаталогИнформационнойБазы = "D:\1SBases\Демо УТ 11.4";
ПараметрыТеста.СсылкаНаОбъектНазначения = "e1cib/data/Справочник.ДоговорыКонтрагентов?ref=af8f0015e9b8c48d11e0e504cc1e1aca";
ПараметрыТеста.НаименованиеОбъектаНазначения = "ТД Договор продажи Б-890 от 01.01.2015";
Результат.Добавить(ПараметрыТеста);
// УТ 11.2
ПараметрыТеста = Новый Структура(Новый ФиксированнаяСтруктура(ШаблонПараметров));
ПараметрыТеста.ПредставлениеВСпискеВопроса = "УТ 11.2.2.94";
ПараметрыТеста.КаталогИнформационнойБазы = "D:\1SBases\Демо УТ 11.2.2.94";
ПараметрыТеста.СсылкаНаОбъектНазначения = "e1cib/data/Справочник.ДоговорыКонтрагентов?ref=92f10050568b35ac11e4e1b2e2f3c5e6";
ПараметрыТеста.НаименованиеОбъектаНазначения = "Договор продажи - ТД-890 от 01.04.2015";
Результат.Добавить(ПараметрыТеста);
// КА 2.4
ПараметрыТеста = Новый Структура(Новый ФиксированнаяСтруктура(ШаблонПараметров));
ПараметрыТеста.ПредставлениеВСпискеВопроса = "КА 2.4";
ПараметрыТеста.КаталогИнформационнойБазы = "D:\1SBases\Демо КА 2";
ПараметрыТеста.СсылкаНаОбъектНазначения = "";
ПараметрыТеста.ЗакрыватьПриложениеПослеТеста = Истина;
Результат.Добавить(ПараметрыТеста);
// ERP 2.4
ПараметрыТеста = Новый Структура(Новый ФиксированнаяСтруктура(ШаблонПараметров));
ПараметрыТеста.ПредставлениеВСпискеВопроса = "ERP 2.4";
ПараметрыТеста.КаталогИнформационнойБазы = "D:\1SBases\Демо ERP 2";
ПараметрыТеста.СсылкаНаОбъектНазначения = "";
ПараметрыТеста.ЗакрыватьПриложениеПослеТеста = Истина;
Результат.Добавить(ПараметрыТеста);
Возврат Результат;
КонецФункции
#КонецОбласти
Процедура ПриНачалеРаботыСистемы()
ТекстВопроса = НСтр("ru = 'Выберите ражим тестирования'");
Режим = Новый СписокЗначений;
МассивВсехТестов = ПолучитьМассивВсехТестов();
Режим.Добавить(МассивВсехТестов, "Все тесты",,);
Для Каждого ЭлементМассива Из МассивВсехТестов Цикл
Режим.Добавить(ЭлементМассива, ЭлементМассива.ПредставлениеВСпискеВопроса);
КонецЦикла;
Режим.Добавить(КодВозвратаДиалога.Прервать, "Завершить",,);
ДатаЗапретаТеста = НачалоДня(ТекущаяДата());
Пока Истина Цикл
Результат = Вопрос(ТекстВопроса, Режим, 0,);
Если Результат = КодВозвратаДиалога.Прервать Тогда
Прервать;
КонецЕсли;
МассивТестов = Новый Массив;
Если ТипЗнч(Результат) = Тип("Структура") Тогда
МассивТестов.Добавить(Результат);
Иначе
МассивТестов = Результат;
КонецЕсли;
ВыполнитьМассивТестов(МассивТестов, ДатаЗапретаТеста);
КонецЦикла;
Если Результат = КодВозвратаДиалога.Прервать Тогда
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьМассивТестов(МассивТестов, ДатаЗапретаТеста)
Для Каждого ПараметрыТеста из МассивТестов Цикл
СтартТеста = ТекущаяДата();
ТаймаутТеста = ДатаЗапретаТеста - ТекущаяДата();
Пауза(ПараметрыТеста, "Пауза для завершения предыдущего теста", ТаймаутТеста);
ВыполнитьТест(ПараметрыТеста);
Если ПараметрыТеста.ЗакрыватьПриложениеПослеТеста Тогда
ДатаЗапретаТеста = ТекущаяДата() + ПараметрыТеста.ПаузаДляЗакрытииПриложенмя;
КонецЕсли;
ВремяТеста = ТекущаяДата() - СтартТеста;
ТекстВремяТеста = "Тест " + ПараметрыТеста.ПредставлениеВСпискеВопроса + ": " + ВремяТеста + " сек.";
Протокол(ПараметрыТеста, ТекстВремяТеста);
Сообщить(ТекстВремяТеста);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьТест(ПараметрыТеста)
ТестовоеПриложение = Новый ТестируемоеПриложение;
// Запуск и соединение
ЗапуститьТестируемоеПриложение(ПараметрыТеста);
ТестовоеПриложение = ПолучитьТестовоеПриложение(ПараметрыТеста, ТестовоеПриложение, 180);
ОкноПриложенияОсновное = ПолучитьТестируемоеОкноКлиентскогоПриложения(ТестовоеПриложение, ПараметрыТеста, 120);
Протокол(ПараметрыТеста, "Получено Основное окно");
ПараметрыТеста.ЗаголовокПриложенияСлужебный = ОкноПриложенияОсновное.Заголовок;
// Получим форму списка Справочника Дополнительные отчеты и обработки
Протокол(ПараметрыТеста, "Обновление (загрузка) обработки");
ОкноПриложенияОсновное.ВыполнитьКоманду("e1cib/list/Справочник.ДополнительныеОтчетыИОбработки");
// Найдем строку с нашим отчетом/обработкой и откроем его
ОкноПриложенияДополнительныеОтчетыИОбработки = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Дополнительные отчеты и обработки", , 30);
ОкноПриложенияДополнительныеОтчетыИОбработкиФормаДополнительныеОтчетыИОбработки = ОкноПриложенияДополнительныеОтчетыИОбработки.НайтиОбъект(Тип("ТестируемаяФорма"), "Дополнительные отчеты и обработки");
ТаблицаСписок = ОкноПриложенияДополнительныеОтчетыИОбработкиФормаДополнительныеОтчетыИОбработки.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Список", , 30);
ОписаниеСтроки = Новый Соответствие();
ОписаниеСтроки.Вставить("Наименование", ПараметрыТеста.НаименованиеОтчетаОбработки);
ОкноПриложенияОсновноеCommandInterface = ОкноПриложенияОсновное.ПолучитьКомандныйИнтерфейс();
КнопкаКомандногоИнтерфейсаДополнительныеОтчетыИОбработки = ОкноПриложенияОсновноеCommandInterface.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), "Дополнительные отчеты и обработки", , 30);
КнопкаКомандногоИнтерфейсаДополнительныеОтчетыИОбработки.Нажать();
ОкноПриложенияПодключениеИнтернетПоддержкиКнопкаОтменаНажать(ТестовоеПриложение);
ТаблицаСписок.ПерейтиКСтроке(ОписаниеСтроки);
ТаблицаСписок.Выбрать();
// Получим окно доп. обработки
ОкноПриложенияПечатьДоговоровПоШаблонамДополнительнаяОбработка = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ПараметрыТеста.НаименованиеОтчетаОбработки +" (Дополнительная обработка)", , 30);
ОкноПриложенияПечатьДоговоровПоШаблонамДополнительнаяОбработкаФормаПечатьДоговоровПоШаблонамДополнительнаяОбработка = ОкноПриложенияПечатьДоговоровПоШаблонамДополнительнаяОбработка.НайтиОбъект(Тип("ТестируемаяФорма"), ПараметрыТеста.НаименованиеОтчетаОбработки + " (Дополнительная обработка)");
// Найдем и нажмем кнопку Обновить из файла
КнопкаОбновитьИзФайла = ОкноПриложенияПечатьДоговоровПоШаблонамДополнительнаяОбработкаФормаПечатьДоговоровПоШаблонамДополнительнаяОбработка.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Обновить из файла...");
Если КнопкаОбновитьИзФайла = Неопределено Тогда
ПараметрыТеста.ЭтоБСП_2_3Служебный = Истина;
КнопкаОбновитьИзФайла = ОкноПриложенияПечатьДоговоровПоШаблонамДополнительнаяОбработкаФормаПечатьДоговоровПоШаблонамДополнительнаяОбработка.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Загрузить из файла...");
КонецЕсли;
ТестовоеПриложение.УстановитьРезультатДиалогаВыбораФайла(Истина, ПараметрыТеста.ФайлОтчетаОбработки);
КнопкаОбновитьИзФайла.Нажать();
Если Не ПараметрыТеста.ЭтоБСП_2_3Служебный Тогда
ОкноПриложенияПредупреждениеБезопасностиКнопкаПродолжитьНажать(ТестовоеПриложение);
Иначе
ОкноПриложенияБСП_2_3ЕслиНовыйФайл(ТестовоеПриложение, ПараметрыТеста, КнопкаОбновитьИзФайла)
КонецЕсли;
// Найдем и нажмем кнопку Записать и закрыть
КнопкаЗаписатьИЗакрыть = ОкноПриложенияПечатьДоговоровПоШаблонамДополнительнаяОбработкаФормаПечатьДоговоровПоШаблонамДополнительнаяОбработка.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Записать и закрыть");
КнопкаЗаписатьИЗакрыть.Нажать();
Если ПараметрыТеста.ЭтоБСП_2_3Служебный Тогда
ОкноПриложения1СПредприятиеКнопкаOKНажать(ТестовоеПриложение);
КонецЕсли;
Если ПараметрыТеста.ЗапускОбработки
И ЗначениеЗаполнено(ПараметрыТеста.ЗапускОбработки) Тогда
ЗапускОбработки(ТестовоеПриложение, ПараметрыТеста);
КонецЕсли;
Протокол(ПараметрыТеста, "Загружен и сохранен файл """ + ПараметрыТеста.ФайлОтчетаОбработки + """");
// Закроем форму списка
ОкноПриложенияДополнительныеОтчетыИОбработки.Закрыть();
Если ПараметрыТеста.ЗакрыватьПриложениеПослеТеста Тогда
Протокол(ПараметрыТеста, "Закрытие приложения");
ЗакрытьТестовоеПриложение(ТестовоеПриложение, ПараметрыТеста);
КонецЕсли;
КонецПроцедуры
// Процедура делается под конктретную обработку
&НаКлиенте
Процедура ЗапускОбработки(ТестовоеПриложение, ПараметрыТеста)
Протокол(ПараметрыТеста, "Запуск обработки, нажатие кнопки Договор");
ОкноПриложенияОсновное = ПолучитьТестируемоеОкноКлиентскогоПриложения(ТестовоеПриложение, ПараметрыТеста, 120);
ОкноПриложенияОсновное.ВыполнитьКоманду(ПараметрыТеста.СсылкаНаОбъектНазначения);
ПараметрыТеста.НаименованиеОбъектаНазначенияСлужебный = ПараметрыТеста.НаименованиеОбъектаНазначения + "*";
//ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентом = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Договор продажи - ТД-890 от * (Договор с клиентом)", , 30);
ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентом = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ПараметрыТеста.НаименованиеОбъектаНазначенияСлужебный, , 30);
//ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентомФормаДоговорПродажиТД890ОтДоговорСКлиентом = ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентом.НайтиОбъект(Тип("ТестируемаяФорма"), "Договор продажи - ТД-890 от * (Договор с клиентом)");
ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентомФормаДоговорПродажиТД890ОтДоговорСКлиентом = ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентом.НайтиОбъект(Тип("ТестируемаяФорма"), ПараметрыТеста.НаименованиеОбъектаНазначенияСлужебный);
КнопкаДоговор = ОкноПриложенияДоговорПродажиТД890ОтДоговорСКлиентомФормаДоговорПродажиТД890ОтДоговорСКлиентом.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Договор");
КнопкаДоговор.Нажать();
ТестовыйСценарий_СозданиеШаблонаДоговора(ТестовоеПриложение, ПараметрыТеста);
КонецПроцедуры
#Область ТестовыйСценарий_СозданиеШаблонаДоговора
&НаКлиенте
Процедура ТестовыйСценарий_СозданиеШаблонаДоговора(ТестовоеПриложение, ПараметрыТеста)
Протокол(ПараметрыТеста, "Создание шаблона договора поставки");
ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияКнопкаДоговорПоставкиНажать(ТестовоеПриложение);
ОкноПриложенияШаблонДоговораСозданиеПолеНаименованиеВвестиТекст(ТестовоеПриложение, ПараметрыТеста);
ОкноПриложенияШаблонДоговораСозданиеКнопкаЗаписатьИЗакрытьНажать(ТестовоеПриложение, ПараметрыТеста);
Протокол(ПараметрыТеста, "Выбор созданного шаблона");
ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияКнопкаВыбратьНажать(ТестовоеПриложение, ПараметрыТеста)
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияКнопкаДоговорПоставкиНажать(ТестовоеПриложение)
ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Выберите или создайте шаблон договора для заполнения", , 30);
ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияФормаВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения = ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения.НайтиОбъект(Тип("ТестируемаяФорма"), "Выберите или создайте шаблон договора для заполнения");
КнопкаДоговорПоставки = ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияФормаВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Договор поставки");
КнопкаДоговорПоставки.Нажать();
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияШаблонДоговораСозданиеПолеНаименованиеВвестиТекст(ТестовоеПриложение, ПараметрыТеста)
ОкноПриложенияШаблонДоговораСоздание = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Шаблон договора (создание)", , 30);
ОкноПриложенияШаблонДоговораСозданиеФормаШаблонДоговораСоздание = ОкноПриложенияШаблонДоговораСоздание.НайтиОбъект(Тип("ТестируемаяФорма"), "Шаблон договора (создание)");
ПолеНаименование = ОкноПриложенияШаблонДоговораСозданиеФормаШаблонДоговораСоздание.НайтиОбъект(Тип("ТестируемоеПолеФормы"), "Наименование");
ПолеНаименование.Активизировать();
ДатаТеста = ТекущаяДата();
ТекстДатыТест = Формат(ДатаТеста,"ДФ=yyyy.MM.dd_hh:mm; ДП=");
НаименованиеШаблона = ТекстДатыТест + " Договор поставки";
ПолеНаименование.ВвестиТекст(НаименованиеШаблона);
ПараметрыТеста.ДопПараметры.Вставить("НаименованиеШаблона", НаименованиеШаблона);
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияШаблонДоговораСозданиеКнопкаЗаписатьИЗакрытьНажать(ТестовоеПриложение, ПараметрыТеста)
Если Не ПараметрыТеста.ЭтоБСП_2_3Служебный Тогда
ОкноПриложенияШаблонДоговораСоздание = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Шаблон договора (создание)", , 30);
ОкноПриложенияШаблонДоговораСозданиеФормаШаблонДоговораСоздание = ОкноПриложенияШаблонДоговораСоздание.НайтиОбъект(Тип("ТестируемаяФорма"), "Шаблон договора (создание)");
ГруппаКоманднаяПанель = ОкноПриложенияШаблонДоговораСозданиеФормаШаблонДоговораСоздание.НайтиОбъект(Тип("ТестируемаяГруппаФормы"), "Командная панель");
КнопкаЗаписатьИЗакрыть = ГруппаКоманднаяПанель.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Записать и закрыть");
КнопкаЗаписатьИЗакрыть.Нажать();
Иначе
ОкноПриложенияШаблонДоговораСоздание = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Шаблон договора (создание) *", , 30);
ОкноПриложенияШаблонДоговораСозданиеФормаШаблонДоговораСоздание = ОкноПриложенияШаблонДоговораСоздание.НайтиОбъект(Тип("ТестируемаяФорма"), "Шаблон договора (создание) *");
ГруппаКоманднаяПанель = ОкноПриложенияШаблонДоговораСозданиеФормаШаблонДоговораСоздание.НайтиОбъект(Тип("ТестируемаяГруппаФормы"), "Командная панель");
КнопкаЗаписатьИЗакрыть = ГруппаКоманднаяПанель.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Записать и закрыть");
КнопкаЗаписатьИЗакрыть.Нажать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияКнопкаВыбратьНажать(ТестовоеПриложение, ПараметрыТеста)
ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Выберите или создайте шаблон договора для заполнения", , 30);
ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияФормаВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения = ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения.НайтиОбъект(Тип("ТестируемаяФорма"), "Выберите или создайте шаблон договора для заполнения");
ТаблицаСписок = ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияФормаВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Список");
ОписаниеСтроки = Новый Соответствие();
ОписаниеСтроки.Вставить("Наименование", ПараметрыТеста.ДопПараметры.НаименованиеШаблона);
ТаблицаСписок.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз);
ГруппаКоманднаяПанель = ОкноПриложенияВыберитеИлиСоздайтеШаблонДоговораДляЗаполненияФормаВыберитеИлиСоздайтеШаблонДоговораДляЗаполнения.НайтиОбъект(Тип("ТестируемаяГруппаФормы"), "Командная панель");
КнопкаВыбрать = ГруппаКоманднаяПанель.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Выбрать");
КнопкаВыбрать.Нажать();
КонецПроцедуры
#КонецОбласти
#Область ПроцедурыЗапускаТестовогоПриложения
&НаКлиенте
Процедура ЗапуститьТестируемоеПриложение(ПараметрыТеста)
Файл1СПредприятие = ПараметрыТеста.Файл1СПредприятие;
ШаблонСтрокиЗапуска = Файл1СПредприятие + " ENTERPRISE /TESTCLIENT |3 /F ""|1"" /N ""|2"" ";
СтрокаЗапуска = ШаблонСтрокиЗапуска;
СтрокаЗапуска = СтрЗаменить(СтрокаЗапуска, "|1", ПараметрыТеста.КаталогИнформационнойБазы);
СтрокаЗапуска = СтрЗаменить(СтрокаЗапуска, "|2", ПараметрыТеста.Пользователь);
Если ПараметрыТеста.ЗаписьЖурналаДействийПользователя Тогда
СтрокаЗапуска = СтрЗаменить(СтрокаЗапуска, "|3", "/UILOGRECORDER");
Иначе
СтрокаЗапуска = СтрЗаменить(СтрокаЗапуска, "|3", "");
КонецЕсли;
ЗапуститьСистему(СтрокаЗапуска);
КонецПроцедуры
&НаКлиенте
Функция ПолучитьТестовоеПриложение(ПараметрыТеста, ТестовоеПриложение, Таймаут)
ТестовоеПриложение = Новый ТестируемоеПриложение();
ПараметрыПрогресса = ПолучитьПараметрыПрогресса(Таймаут);
ВремяОкончанияОжидания = ПараметрыПрогресса.ВремяОкончанияОжидания;
Подключен = Ложь;
ОписаниеОшибкиСоединения = "";
Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
Протокол(ПараметрыТеста, "Установка соединения",ПараметрыПрогресса);
Попытка
ТестовоеПриложение.УстановитьСоединение();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки();
КонецПопытки;
КонецЦикла;
Если Не Подключен Тогда
ТестовоеПриложение = Неопределено;
Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
КонецЕсли;
Возврат ТестовоеПриложение;
КонецФункции
&НаКлиенте
Функция ПолучитьТестируемоеОкноКлиентскогоПриложения(ТестовоеПриложение, ПараметрыТеста, Таймаут)
ОкноПриложенияОсновное = Неопределено;
КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
Если ТестируемоеОкно.Основное Тогда
ОкноПриложенияОсновное = ТестируемоеОкно;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ОкноПриложенияОсновное;
КонецФункции
#КонецОбласти
#Область ПроцедурыДляОбновленияОбработки
&НаКлиенте
Процедура ОкноПриложенияБСП_2_3ЕслиНовыйФайл(ТестовоеПриложение, ПараметрыТеста, КнопкаОбновитьИзФайл)
ОкноПриложения1СПредприятие = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "1С:Предприятие", , 30);
Если ОкноПриложения1СПредприятие = Неопределено Тогда
Возврат;
КонецЕсли;
ОкноПриложения1СПредприятиеФорма1СПредприятие = ОкноПриложения1СПредприятие.НайтиОбъект(Тип("ТестируемаяФорма"), "1С:Предприятие");
КнопкаДа = ОкноПриложения1СПредприятиеФорма1СПредприятие.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Да");
КнопкаДа.Активизировать();
КнопкаДа.Нажать();
ОкноПриложения1СПредприятие = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "1С:Предприятие", , 30);
ОкноПриложения1СПредприятиеФорма1СПредприятие = ОкноПриложения1СПредприятие.НайтиОбъект(Тип("ТестируемаяФорма"), "1С:Предприятие");
КнопкаOK = ОкноПриложения1СПредприятиеФорма1СПредприятие.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "OK");
КнопкаOK.Нажать();
ТестовоеПриложение.УстановитьРезультатДиалогаВыбораФайла(Истина, ПараметрыТеста.ФайлОтчетаОбработки);
КнопкаОбновитьИзФайл.Нажать();
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложения1СПредприятиеКнопкаOKНажать(ТестовоеПриложение)
ОкноПриложения1СПредприятие = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "1С:Предприятие", , 30);
ОкноПриложения1СПредприятиеФорма1СПредприятие = ОкноПриложения1СПредприятие.НайтиОбъект(Тип("ТестируемаяФорма"), "1С:Предприятие");
КнопкаOK = ОкноПриложения1СПредприятиеФорма1СПредприятие.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "OK");
КнопкаOK.Нажать();
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияПодключениеИнтернетПоддержкиКнопкаОтменаНажать(ТестовоеПриложение)
ОкноПриложенияПодключениеИнтернетПоддержки = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Подключение Интернет-поддержки", , 30);
Если ОкноПриложенияПодключениеИнтернетПоддержки = Неопределено Тогда
Возврат;
КонецЕсли;
ОкноПриложенияПодключениеИнтернетПоддержкиФормаПодключениеИнтернетПоддержки = ОкноПриложенияПодключениеИнтернетПоддержки.НайтиОбъект(Тип("ТестируемаяФорма"), "Подключение Интернет-поддержки");
КнопкаОтмена = ОкноПриложенияПодключениеИнтернетПоддержкиФормаПодключениеИнтернетПоддержки.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), , "ФормаКомандаОтмена");
КнопкаОтмена.Нажать();
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияДополнительныеОтчетыИОбработкиТаблицаСписокВыбрать(ТестовоеПриложение, ПараметрыТеста)
ОкноПриложенияДополнительныеОтчетыИОбработки = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Дополнительные отчеты и обработки", , 30);
ОкноПриложенияДополнительныеОтчетыИОбработкиФормаДополнительныеОтчетыИОбработки = ОкноПриложенияДополнительныеОтчетыИОбработки.НайтиОбъект(Тип("ТестируемаяФорма"), "Дополнительные отчеты и обработки");
ОкноПриложенияДополнительныеОтчетыИОбработкиФормаДополнительныеОтчетыИОбработки.Активизировать();
ТаблицаСписок = ОкноПриложенияДополнительныеОтчетыИОбработкиФормаДополнительныеОтчетыИОбработки.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Список");
ОписаниеСтроки = Новый Соответствие();
ОписаниеСтроки.Вставить("Наименование", ПараметрыТеста.НаименованиеОтчетаОбработки);
ТаблицаСписок.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз);
ТаблицаСписок.Выбрать();
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияПредупреждениеБезопасностиКнопкаПродолжитьНажать(ТестовоеПриложение)
ОкноПриложенияПредупреждениеБезопасности = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Предупреждение безопасности", , 30);
Если ОкноПриложенияПредупреждениеБезопасности = Неопределено Тогда
Возврат;
КонецЕсли;
ОкноПриложенияПредупреждениеБезопасностиФормаПредупреждениеБезопасности = ОкноПриложенияПредупреждениеБезопасности.НайтиОбъект(Тип("ТестируемаяФорма"), "Предупреждение безопасности");
КнопкаПродолжить = ОкноПриложенияПредупреждениеБезопасностиФормаПредупреждениеБезопасности.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Продолжить");
КнопкаПродолжить.Нажать();
КонецПроцедуры
#КонецОбласти
#Область ПроцедурыЗакрытияТестовогоПриложения
&НаКлиенте
Процедура ЗакрытьТестовоеПриложение(ТестовоеПриложение, ПараметрыТеста)
ОкноПриложенияОсновноеЗакрыть(ТестовоеПриложение);
ОкноПриложенияИнформационнойБазыКнопкаЗавершитьРаботуНажать(ТестовоеПриложение, ПараметрыТеста);
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияОсновноеЗакрыть(ТестовоеПриложение)
ОкноПриложенияОсновное = Неопределено;
КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
Если ТестируемоеОкно.Основное Тогда
ОкноПриложенияОсновное = ТестируемоеОкно;
Прервать;
КонецЕсли;
КонецЦикла;
ОкноПриложенияОсновное.Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура ОкноПриложенияИнформационнойБазыКнопкаЗавершитьРаботуНажать(ТестовоеПриложение, ПараметрыТеста)
//ОкноПриложенияИнформационнойБазы = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Демонстрационная база / Управление торговлей, редакция *", , 30);
ОкноПриложенияИнформационнойБазы = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), ПараметрыТеста.ЗаголовокПриложенияСлужебный, , 30);
//ОкноПриложенияИнформационнойБазыФормаДемонстрационнаяБазаУправлениеТорговлейРедакция = ОкноПриложенияИнформационнойБазы.НайтиОбъект(Тип("ТестируемаяФорма"), "Демонстрационная база / Управление торговлей, редакция *");
ОкноПриложенияИнформационнойБазыФормаДемонстрационнаяБазаУправлениеТорговлейРедакция = ОкноПриложенияИнформационнойБазы.НайтиОбъект(Тип("ТестируемаяФорма"), ПараметрыТеста.ЗаголовокПриложенияСлужебный);
Если Не ОкноПриложенияИнформационнойБазыФормаДемонстрационнаяБазаУправлениеТорговлейРедакция = Неопределено Тогда
КнопкаЗавершитьРаботу = ОкноПриложенияИнформационнойБазыФормаДемонстрационнаяБазаУправлениеТорговлейРедакция.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Завершить работу");
КнопкаЗавершитьРаботу.Нажать();
Иначе // Вариант для БСП 2.0
ОкноПриложенияЗавершениеРаботы = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Завершение работы", , 30);
ОкноПриложенияЗавершениеРаботыФормаЗавершениеРаботы = ОкноПриложенияЗавершениеРаботы.НайтиОбъект(Тип("ТестируемаяФорма"), "Завершение работы");
КнопкаЗавершить = ОкноПриложенияЗавершениеРаботыФормаЗавершениеРаботы.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Завершить");
КнопкаЗавершить.Нажать();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИфункции
&НаКлиенте
Процедура Пауза(ПараметрыТеста, Текст, Таймаут)
Если Таймаут <= 0 Тогда
Возврат;
КонецЕсли;
ПараметрыПрогресса = ПолучитьПараметрыПрогресса(Таймаут);
ВремяОкончанияОжидания = ПараметрыПрогресса.ВремяОкончанияОжидания;
Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
Протокол(ПараметрыТеста, Текст, ПараметрыПрогресса);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Протокол(ПараметрыТеста, Текст, ПараметрыПрогресса = Неопределено)
ТекстПротокола = Текст;
ТекстПротокола = ПараметрыТеста.ПредставлениеВСпискеВопроса + ": " + ТекстПротокола;
Если ЗначениеЗаполнено(ПараметрыПрогресса) Тогда
Таймаут = ПараметрыПрогресса.Таймаут;
ВремяНачалаОжидания = ПараметрыПрогресса.ВремяНачалаОжидания;
СекундПрошло = ТекущаяДата() - ВремяНачалаОжидания;
ТекстПротокола = ТекстПротокола + ": " + СекундПрошло + " из " + Таймаут + " сек.";
Прогресс = СекундПрошло/Таймаут*100;
Состояние(ТекстПротокола, Прогресс);
Иначе
Состояние(ТекстПротокола);
//Сообщить("" + ТекущаяДата() + " - " + Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьПараметрыПрогресса(Таймаут);
Результат = Новый Структура;
Результат.Вставить("Таймаут", Таймаут);
Результат.Вставить("ВремяНачалаОжидания", ТекущаяДата());
Результат.Вставить("ВремяОкончанияОжидания", ТекущаяДата() + Таймаут);
Возврат Результат;
КонецФункции
#КонецОбласти