Имя: Пароль:
1C
1С v8
Сценарное тестирование в Медицина. Больница 1.4 (Объект ТестируемоеПриложение)
0 rion
 
23.08.18
13:27
"Накликал" простой тест.
С помощью обработки с ИТС UILogToScript.epf преобразовал в код 1С.
Во внешней обработке с одной кнопкой Выполнить запускаю этот код.
Падает с ошибкой {ВнешняяОбработка.Тест2.Форма.Форма.Форма(50)}: Значение не является значением объектного типа (НайтиОбъект)
ОкноПриложенияВсеФункцииФормаВсеФункции = ОкноПриложенияВсеФункции.НайтиОбъект(Тип("ТестируемаяФорма"), "Все функции");
<pre>&НаКлиенте
Процедура ВыполнитьКод(Команда)
    
    ТестовоеПриложение = Новый ТестируемоеПриложение();
    ВремяОкончанияОжидания = ТекущаяДата() + 60;
    Подключен = Ложь;
    ОписаниеОшибкиСоединения = "";
    Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
        Попытка
            ТестовоеПриложение.УстановитьСоединение();
            Подключен = Истина;
            Прервать;
        Исключение
            ОписаниеОшибкиСоединения = ОписаниеОшибки();
        КонецПопытки;
    КонецЦикла;
    Если Не Подключен Тогда
        ТестовоеПриложение = Неопределено;
        Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
        Возврат;
    КонецЕсли;
    
    APDEX_ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени("ТЦ №1", , Ложь);
    
    ТестовыйСценарий_21_08_2018(ТестовоеПриложение);
    
    APDEX_ОценкаПроизводительностиКлиентСервер.ЗакончитьЗамерВремени("ТЦ №1");

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

&НаКлиенте
Процедура ТестовыйСценарий_21_08_2018(ТестовоеПриложение)

    ОкноПриложенияВсеФункцииТаблицаTableЗакрыть(ТестовоеПриложение);
    //ОкноПриложенияПросмотрЗанятостиПолеРабочиеМестаВыбрать(ТестовоеПриложение);
    //ОкноПриложенияСписокЗначенийКнопкаПодборНажать(ТестовоеПриложение);
    //ОкноПриложенияМедицинскиеРабочиеМестаТаблицаСписокПерейтиКСтроке(ТестовоеПриложение);
    //ОкноПриложенияНайтиКнопкаНайтиНажать(ТестовоеПриложение);
    //ОкноПриложенияМедицинскиеРабочиеМестаКнопкаВыбратьЗакрыть(ТестовоеПриложение);
    //ОкноПриложенияСписокЗначенийКнопкаОКНажать(ТестовоеПриложение);
    //ОкноПриложенияПросмотрЗанятостиКнопкаФормаОбновитьСменныеЗаданияНажать(ТестовоеПриложение);

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

&НаКлиенте
Процедура ОкноПриложенияВсеФункцииТаблицаTableЗакрыть(ТестовоеПриложение)
    ОкноПриложенияВсеФункции = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Все функции", , 30); // <-- объект ТестовоеПриложение существует, но метод возвращает Неопределено
    ОкноПриложенияВсеФункцииФормаВсеФункции = ОкноПриложенияВсеФункции.НайтиОбъект(Тип("ТестируемаяФорма"), "Все функции"); // <-- здесь вываливается с ошибкой
    ТаблицаTable = ОкноПриложенияВсеФункцииФормаВсеФункции.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"), "Table");
    ОписаниеСтроки = Новый Соответствие();
    ОписаниеСтроки.Вставить("Имя", "Обработки");
    ТаблицаTable.Развернуть(ОписаниеСтроки);

    ОписаниеСтроки = Новый Соответствие();
    ОписаниеСтроки.Вставить("Имя", "Просмотр занятости");
    ТаблицаTable.ПерейтиКСтроке(ОписаниеСтроки, НаправлениеПереходаКСтроке.Вниз);

    ТаблицаTable.Выбрать();

    ОкноПриложенияВсеФункции.Закрыть();

КонецПроцедуры</pre>

1С:Предприятие 8.3 (8.3.10.2561)
Конфигурация Медицина. Больница, редакция 1.4.3.1
Режим управления блокировкой данных Управляемый
Режим совместимости интерфейса Такси
Режим совместимости Не использовать

пробовал другие тесты, пару интерактивных действий выполняет, но как только встречается код "ТестовоеПриложение.НайтиОбъект(" вылетает ошибка.
1 quest
 
23.08.18
13:32
http://www.test1c.com/ глянь сюда. Удобнее чем голая обработка с ИТС
2 rion
 
24.08.18
11:53
quest, спасибо за вариант. Но вопрос остается, это типовой механизм 1С и хочется понять в чем дело. В других конфигурациях этот подход к тестированию работает.