gifts2017

Автоматизированное тестирование в 8.3

Опубликовал Шалимов Михаил (M.Shalimov) в раздел Программирование - Инструментарий

В данной статье будет рассмотрен новый механизм системы "1С:Предприятие 8" поддерживаемый начиная с платформы версии 8.3.
Механизм позволяет легко и быстро создавать различные сценарии тестирования, без необходимости написания сложных процедур и функций для имитации действий пользователя.

Автоматизированное тестирование - процесс, представляющий собой имитацию интерактивных действий пользователя и проверку результатов этих действий, официальная информация на сайте 1С: http://v8.1c.ru/overview/Term_000000816.htm

Начиная с версии 8.3 платформа позволяет записать действия пользователя (переход по интерфейсу, нажатие кнопок, ввод текста в поля ввода и т.п.) и сохранить все действия в XML файл для дальнейшего использования при тестировании. Основное назначение данного механизма - сценарное тестирование, но думаю, что при большом желании можно устроить нагрузочное тестирование или использовать механизм при оптимизации системы (анализ ожидания на блокировках, поиск дедлоков и т.п.). Ниже я более подробно опишу настройку тестов.

Я не буду переписывать информацию с сайта 1С, а сразу перейду к описанию настройки теста. Перед созданием теста необходимо записать действия пользователя, для чего необходимо запустить предприятие в режиме записи действий пользователя из конфигуратора:

 

После чего в клиентском приложении станут доступны команды управления записью журнала.

При помощи данных команд можно начать/приостановить запись журнала, прервать запись (без сохранения) или прекратить запись с отображением XML текста содержащим информацию о пользовательских действиях, который потребуется для дальнейшей настройки.

После получения XML текста с информацией о действиях пользователя на его основании можно создавать обработку управления клиентским приложением, сотрудники фирмы "1С" пошли нам на встречу, и уже реализовали обработку преобразующую XML в программный код (ссылка на обработку с сайта ИТС: http://its.1c.ru/db/metod81#content:5014:1 ).

В работе с обработкой сложностей не должно возникнуть, рекомендую установить флаг для генерирования кода подключения к клиенту и установить значение переключателя "Преобразовывать" в "Текст". Далее копируем XML текст в поле "Журнал действий пользователя", выполняем команду "Преобразовать" и в текстовом поле "Сценарий" появится программный код для запуска тестирования, который в дальнейшем нам понадобится. Ниже рассмотрю основную процедуру выполняющую подключение к клиенту и запуск теста, в моем случае процедура называется "ТестовыйСценарий_06_03_2014".

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

   
//Создание объекта "ТестовоеПриложение" при помощи которого будет выполняться
    //подключение к клиенту тестирования.
    //Параметры:
    //  ИмяКомпьютера - Имя или IP адрес компьютера на отором запущено приложение клиента тестирования.
    //  Порт - Порт по которому будет выполняться подключение к клиенту тестирования. По умолчанию 1538,
    //          если необходимо на одном компьютере запускать несколько клиентов, их нужно разнести по разным портам.
    //  ИдентификаторКлиента - Идентификатор веб-клиента.

   
ТестовоеПриложение = Новый ТестируемоеПриложение();

   
//Далее выполняется попытка подключения к клиенту тестирования.
   
ВремяОкончанияОжидания = ТекущаяДата() + 60;
   
Подключен = Ложь;
   
ОписаниеОшибкиСоединения = "";
    Пока Не
ТекущаяДата() >= ВремяОкончанияОжидания Цикл
        Попытка
           
ТестовоеПриложение.УстановитьСоединение();
           
Подключен = Истина;
            Прервать;
        Исключение
           
ОписаниеОшибкиСоединения = ОписаниеОшибки();
        КонецПопытки;
    КонецЦикла;

    Если Не
Подключен Тогда
       
ТестовоеПриложение = Неопределено;
       
Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
        Возврат;
    КонецЕсли;

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

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

Далее, в самом простом варианте, необходимо создать новую обработку (не важно, внешняя или встроенная), добавить управляемую форму на которой разместить команду выполняющую процедуру подключения к клиенту и запуска тестового сценария.

&НаКлиенте
Процедура ЗапуститьСценарий(Команда)
   
ТестовыйСценарий_06_03_2014();
КонецПроцедуры

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

 Обращаю внимание, что если во время теста вводились числа больше 999 (количество, суммы и т.п.) при преобразовании в XML платформа автоматически не удаляет разделитель групп (по умолчанию неразрывный пробел) и его необходимо удалить в самих процедурах!

Для выполнения тестового сценария, необходимо как минимум два клиентских приложения, запущенных в режиме менеджера тестирования и в режиме клиента тестирования соответственно. Есть два варианта запуска приложений:

1. В параметрах конфигуратора (Сервис - Параметры) перейти на закладку "Запуск 1С:Предприятия", раскрыть вкладку "Дополнительно", в группе "Автоматизированное тестирование" выбрать необходимы режим запуска. Т.е. вручную запустить менеджер тестирования и необходимо количество клиентов, перед каждым запуском нужно выбрать необходимый режим и для клиентов указать различные порты (если клиент один, оставить порт по умолчанию).

2. Автоматически запускать менеджера и клиентов тестирования используя ключи "/TESTMANAGER" и "/TESTCLIENT" соответственно. Ниже приведен пример программного кода 1С для файлового варианта (необходимо изменить версию платформы, путь до информационной базы и если запускается более одного клиента тестирования указать порт).

ЗапуститьСистему("C:\Program Files (x86)\1cv8\\bin\1cv8.exe ENTERPRISE /F /N Администратор /TESTMANAGER");
ЗапуститьСистему("C:\Program Files (x86)\1cv8\\bin\1cv8.exe ENTERPRISE /F /N Администратор /TESTCLIENT [-TPort]");

Все действия по настройке теста закончены, осталось на менеджере тестирования запустить выполнение обработки. После подключения к клиенту тестирования менеджер передаст на выполнение команды и в окне клиентского приложения будут эмулироваться все действия пользователя, записанные при создании журнала действий пользователя.

Ниже, привожу пример простого программного кода по работе с двумя клиентами тестирования:

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

   
ТестовоеПриложение1 = Новый ТестируемоеПриложение();//Порт по умолчанию 1538
   
ТестовоеПриложение2 = Новый ТестируемоеПриложение(,1539);

   
ВремяОкончанияОжидания = ТекущаяДата() + 60;
   
Подключен = Ложь;
   
ОписаниеОшибкиСоединения = "";

   
//Подключение к первому клиенту тестирования
   
Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
        Попытка
           
ТестовоеПриложение1.УстановитьСоединение();
           
Подключен = Истина;
            Прервать;
        Исключение
           
ОписаниеОшибкиСоединения = ОписаниеОшибки();
        КонецПопытки;
    КонецЦикла;

   
ВремяОкончанияОжидания = ТекущаяДата() + 60;

   
//Подключение ко второму клиенту тестирования
   
Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
        Попытка
           
ТестовоеПриложение2.УстановитьСоединение();
           
Подключен = Истина;
            Прервать;
        Исключение
           
ОписаниеОшибкиСоединения = ОписаниеОшибки();
        КонецПопытки;
    КонецЦикла;

    Если Не
Подключен Тогда
       
ТестовоеПриложение1 = Неопределено;
       
ТестовоеПриложение2 = Неопределено;
       
Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
        Возврат;
    КонецЕсли;

   
//Для каждого клиента скопируем процедуры тестирования.
   
ОкноПриложенияОсновноеКнопкаКомандногоИнтерфейсаПриходнаяНакладнаяНажать1(ТестовоеПриложение1);
   
ОкноПриложенияОсновноеКнопкаКомандногоИнтерфейсаПриходнаяНакладнаяНажать2(ТестовоеПриложение2);
   
ОкноПриложенияПриходнаяНакладнаяКнопкаСоздатьНажать1(ТестовоеПриложение1);
   
ОкноПриложенияПриходнаяНакладнаяКнопкаСоздатьНажать2(ТестовоеПриложение2);
   
ОкноПриложенияПриходнаяНакладнаяСозданиеПолеНоменклатураВыбрать1(ТестовоеПриложение1);
   
ОкноПриложенияПриходнаяНакладнаяСозданиеПолеНоменклатураВыбрать2(ТестовоеПриложение2);
   
ОкноПриложенияНоменклатураТаблицаСписокВыбрать1(ТестовоеПриложение1);
   
ОкноПриложенияНоменклатураТаблицаСписокВыбрать2(ТестовоеПриложение2);
   
ОкноПриложенияПриходнаяНакладнаяСозданиеКнопкаПровестиИЗакрытьНажать1(ТестовоеПриложение1);
   
ОкноПриложенияПриходнаяНакладнаяСозданиеКнопкаПровестиИЗакрытьНажать2(ТестовоеПриложение2);

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

В результате выполнения данной процедуры менеджер тестирования подключается ко всем инициализированным клиентам тестирования и параллельно запускает на них выполнение теста.

Я вижу следующие варианты использования данного механизма:

1. Вы сотрудник службы технической поддержки и при появлении у пользователя сложной проблемы Вы хотите посмотреть, что именно пользователь выполняет в системе.

Для решения подобной задачи, можно создать bat-файл для запуска системы в режиме клиента тестирования и использовать методы тестового приложения "НачатьЗаписьЖурналаДействийПользователя" и "ЗавершитьЗаписьЖурналаДействийПользователя" для получения журнала. Ниже привожу пример программного кода:

&НаКлиенте
Перем ТестовоеПриложение;

&НаКлиенте
Процедура Запустить(Команда)

   
ТестовоеПриложение = Новый ТестируемоеПриложение();

   
ВремяОкончанияОжидания = ТекущаяДата() + 60;
   
Подключен = Ложь;
   
ОписаниеОшибкиСоединения = "";

    Пока Не
ТекущаяДата() >= ВремяОкончанияОжидания Цикл
        Попытка
           
ТестовоеПриложение.УстановитьСоединение();
           
Подключен = Истина;
            Прервать;
        Исключение
           
ОписаниеОшибкиСоединения = ОписаниеОшибки();
        КонецПопытки;
    КонецЦикла;

    Если Не
Подключен Тогда
       
ТестовоеПриложение = Неопределено;
       
Сообщить("Не смогли установить соединение! " + Символы.ПС + ОписаниеОшибкиСоединения);
        Возврат;
    КонецЕсли;

   
ТестовоеПриложение.НачатьЗаписьЖурналаДействийПользователя();

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

&НаКлиенте
Процедура Остановить(Команда)
   
Сообщить(ТестовоеПриложение.ЗавершитьЗаписьЖурналаДействийПользователя());
КонецПроцедуры

 В результате получится XML текст, который в дальнейшем может быть преобразован в обработку для повторения ошибки пользователя. После исправления ошибки данную обработку можно использовать для тестирования.

2. Не для кого не секрет, что при разработке новых возможностей системы зачастую появляются ошибки в ранее разработанном функционале. Для полноценного тестирования можно заранее создавать тестовые сценарии исправного функционала и выполнять их перед выпуском новых релизов.

3. Для разрешения проблем ожиданий на блокировках или дедлоков. Можно создать несколько тестов, которые явно приведут к проблеме производительности для дальнейшего расследования.

4. Проведение нагрузочного тестирования. Фирма 1С позиционирует функционал как механизм сценарного тестирования, но по большому счету не запрещает запускать большое количество клиентов тестирования. В обработчики можно вставить генераторы случайных чисел для разнородности вводимой информации. На момент написания статьи, мне не известны примеры подобного нагрузочного тестирования, при получении новой информации я обновлю публикацию.

Рассмотренный в статье механизм может существенно облегчить процесс разработки и тестирования бизнес приложений на базе платформы "1С:Предприятие 8", но на момент написания статьи я рекомендую использовать его в ознакомительных целях, т.к. механизм довольно новый и возможно, еще не до конца отлажен разработчиками. 

Все комментарии и дополнения по тексту статьи я с радостью жду в комментариях!

 

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Alexander Speshilov (speshuric) 06.03.14 16:51
Шаг далеко вперёд по сравнению со сценарным тестированием из ЦУПа
2. Шалимов Михаил (M.Shalimov) 06.03.14 17:11
(1) speshuric, по информации с "Экспертского" тренинга проходившего на прошлой неделе, в скором времени ЗАО "1С" выпустит обновленное сценарное тестирование входящее в ЦУП предоставляющее больше возможностей. Не исключено, что данный механизм будет в нем задействован.
3. Alexander Speshilov (speshuric) 06.03.14 17:46
(2) Спасибо, я в курсе. 1С в общем-то сразу позиционировала этот механизм, как замену костылям из сценарного тестирования. И я даже с полгода назад смотрел, как там и что реализовано, но на тот момент была куча нереализованных моментов, если я правильно помню. Вам спасибо за краткий how-to с которого можно начать большинству разработчиков.
cleaner_it; +1 Ответить
4. unsafe (StaticUnsafe) 07.03.14 10:30
Радует что платформа развивается.
6. Шалимов Михаил (M.Shalimov) 07.03.14 12:55
(5) headMade, КИП - отдельное решение, описанный в статье механизм - механизм платформы 8.3. Кроме платформы и тестируемой базы больше ничего не нужно.
7. Евгений Сосна (pumbaE) 07.03.14 13:17
А интерпретация результатов тестирования где?
Информация о том что из 230 тестов упало 2 теста, о том что согласно последнему тестированию у нас появилось две регрессии, о том что программист Иванов поместил в хранилище такое, что поломало другие тесты...

Насколько вижу в users, появилось "1С: Сценарное тестирование 8 3.0.1.35 28.02.14", кто уже щупал подскажите, как CI можно применять? Как происходить связь с хранилищем, настройки полного запуска тестов или минимального набора поддерживаются? Запуск без модификации конфигурации возможнет, экспорт результатов тестов в junit?


kuzyara; Tkal61; Bukaska; Alever; KAPACEB.AA; JohnyDeath; awa; lustin; artbear; marsohod; speshuric; +11 Ответить 1
8. Шалимов Михаил (M.Shalimov) 07.03.14 14:17
(7) pumbaE, В данной статье я описал только процесс настройки тестирования и предложил варианты его использования. Интерпретация результатов (как и новое сценарное тестирование) выходит за рамки данной статьи, но в ближайшее время я буду продолжать решать задачи тестирования в которых пощупаю на практике новое сценарное тестирование и напишу отдельную статью, если конечно меня никто не опередит:)
9. Артур Аюханов (artbear) 07.03.14 15:05
(0)
но на момент написания статьи я рекомендую использовать его в ознакомительных целях, т.к. механизм довольно новый и возможно, еще не до конца отлажен разработчиками.

Механизм уже не очень новый и для целей тестирования вполне можно использовать.
Но к нему все равно есть вопросы. Не все удобно и просто :(
В открытом доступе нет примеров подобных сценариев для типовых конфигураций (я вообще не слышал о таких тестах).
В конце 2012 или начале 2013 г. общался на партнерской конференции 1С и разработчики сценарного тестирования в кулуарах сообщили мне, что им неизвестно о подобных автоматических тестах для типовых конфигураций 1С.
Для тестового фреймворка https://github.com/xUnitFor1C/xUnitFor1C уже есть готовые шаблоны для написания и автоматического выполнения сценарных тестов 8.3 и получения результатов тестирования.
Этот фреймворк уже используется в т.н. "ночных" сборках и прогоне автоматических тестов.
Например, у нашей системы на базе УТ 11 у нас свыше 500 автоматических юнит-тестов и сценарных тестов. автосборка и прогон тестов выполняется несколько раз в сутки.
vlad.frost; Alever; JohnyDeath; ivanov660; speshuric; M.Shalimov; lustin; +7 Ответить 1
10. Алексей Лустин (lustin) 07.03.14 15:28
(9) artbear, Уже 500 ? Молодцы мужики. Я тут всем говорю что около 200.
11. Евгений Сосна (pumbaE) 07.03.14 15:35
(8) M.Shalimov,
пощупаю на практике новое сценарное тестирование и напишу отдельную статью
буду только рад увидеть обзор "нового" сценарного тестирования.

Может тогда обратите внимание:
1. Как там производиться тестирование web интерфейса интересно.
2. Насколько связаны сценарное тестирование с разработкой/хранилищем и другими различными системами баг-трекинга(возможно ли автоматом запускать сценарное тестирование, при каждом помещении в хранилище, возможно ли информировать разработчиков о провалившихся тестах, с diff изменений, которые привели к поломке тестовых сценариев).
3. Связано ли с "Автоматизированная проверка конфигураций", есть ли единая точка, где можно увидеть пульс проекта (результаты тестов, результаты проверки конфигурации, результаты нагрузочного тестирования, code-review исходного кода конфигурации).

p.s.: имхо, 1С надо растить культуру тестирования(автоматического).

Прикрепленные файлы:
alest; gradi; vlad.frost; wunderland; artbear; +5 Ответить 3
12. Евгений Сосна (pumbaE) 07.03.14 15:46
(10) lustin, ну так не за один же день накапливаются у меня в среднем в месяц плюс 20-50 тестов добавляется, ну а сколько переписывается уже устал считать :)
13. Шалимов Михаил (M.Shalimov) 07.03.14 16:04
14. Артур Аюханов (artbear) 07.03.14 17:00
(11) На все вопросы ИМХО ответ один - нету ничего подобного :) :(
15. Шалимов Михаил (M.Shalimov) 07.03.14 18:15
(14) artbear, по работе с хранилищем, вполне вероятно, ничего не добавили (все таки это платформа, а не конфигурация) а вот в целом механизмы тестирования будет интересно рассмотреть.
16. Vlad (KillHunter) 09.03.14 19:44
Я так понимаю все изменения связаны с использованием веб-интерфейса, хотя по большому счету он для основной массы просто навсего не нужен!
17. Шалимов Михаил (M.Shalimov) 10.03.14 23:49
(16) KillHunter, Не веб интерфейса а управляемого приложения ( в т.ч. веб морда). УУ нужно всем, многие типовые уже управляемы и в скором времени управляемыми станут все. Переход с УПП на ERP20 только вопрос времени, вспомните зарю 7.7.
18. Евгений Сосна (pumbaE) 11.03.14 15:00
( в т.ч. веб морда)
хм, не видел возможности реального тестирования веб-морды... Так что бы с firefox или chromium запустить, разве что selenium, но пока правил конвертации еще никто не делал http://www.screencast.com/t/RMoppLTOMz
19. Шалимов Михаил (M.Shalimov) 11.03.14 15:48
(18) pumbaE, Не использовал, но в описанном методе есть возможность запуска теста через веб.
20. Сисой Сисой (Сисой) 13.03.14 14:24
(17) M.Shalimov, Вы за всех так уверенно не говорите.
Большинство крупных контор, поверивших в 8-ку и вложивших миллионы долларов в КИС на ее базе, кроют 1С матом за полную несовместимость новых и старых типовых.
Вот объясните мне, почему компания должна потратить еще полмиллиона долларов, если НИКАКИХ преимуществ при этом она не получит (все задачи УЖЕ решены), а багов и глюков будет немеряно.
Используемые продукты: БП, ЗУП, УПП, Консолидация.
При этом не переходить на УФ нельзя - регламентированный учет требует обновлений.

Ах да, можно еще даунгрейд на 7.7 сделать. Лицензии остались.
21. Шалимов Михаил (M.Shalimov) 13.03.14 18:25
(20) Сисой, Я не утверждаю, что нужно срочно всем выкладывать миллионы и переходить на новую систему. Есть ряд организаций, которые работают на 7.7 и их все устраивает. Но, прогресс не стоит на месте и информационные системы развиваются, так же развивается и бизнес у которого появляются новые требования к ИС и зачастую эти требования уже реализованы в новых версиях типовых.
Как Вы думаете 1С выходит на рынок среднего и крупного бизнеса? Одного желания тут мало, бизнес развивается и будучи небольшим предприятием автоматизировавшим свой учет на 1С бизнес вырастает и хочет продолжать использовать привычный ему софт, отсюда и основные требования к производительности и параллельности.
В фирме 1С тоже не дураки работают, которые ради нескольких сотен тысяч с клиента заставят всех переходить на ERP 2.0, все понимают что множество организаций работают под УПП и не могут быстро перейти на новую систему (а это в любом случае не быстро). Нуралиев не дурак и снимать с поддержки УПП вряд ли будут.
22. Евгений Сосна (pumbaE) 13.03.14 18:38
(21) ну вот не верю, я что имея доступ к исходникам "очень" трудно было сделать тестирование и для толстых форм, а так скорей политическое решение тестирование только для управляемых.
23. Шалимов Михаил (M.Shalimov) 13.03.14 22:22
(22) pumbaE, Этот вопрос лучше задать в фирму "1С", рассуждения о том что можно было бы им сделать выходят за рамки данной статьи.
24. Alexander Speshilov (speshuric) 19.03.14 10:59
(22) А с другой стороны, да, у них исходники есть, но отношение к тестированию мягко говоря "не TDDшное". Я всё время ворчу на 1С-ную арифметику, потому что она не имеет заявленных четких границ, из-за этого сложно предсказать результат зачастую. Причем не только для прикладного программиста, но и для разработчика платформы. Почему это плохо? Нет четкой границы, нет и не будет граничных тестов. Вот, например, ЧислоПрописью:
Сообщить(ЧислоПрописью(-1000000000000000, ""));
выводится "-Одна тысяча 00". а для
Сообщить(ЧислоПрописью(-1000000000001000, ""));
выводится "-Одна тысяча одна тысяча 00". Причем для больших положительных чисел проверку не забыли - исключение вываливается. На самом деле аналогичная ситуация почти везде в платформе - и работа с большими (2+ ГБ) объектами, и в системных полях ввода, да много где. Ошибки такие, конечно, исправляются (по мере нахождения), но системного "прочесывания" даже базовых объектов в общем-то нет. Причем, даже баг-репорты даже прекрасно оформленные в 1С слать через v8 дело достаточно неблагодарное (а вот через партнерский доступ проще) - фиг пробьёшь первую линию.

Так что пусть хотя бы в управляемых делают. Авось постепенно пройдут per aspera ad astra.
vlad.frost; CratosX; +2 Ответить
25. Евгений worker (worker1c) 19.03.14 14:56
Менеджер подключается к клиенту, при запуске сценария, сгенерированного обработкой из 1С ошибка:
{Форма.Форма.Форма(81)}: Значение не является значением объектного типа (Нажать)
	ОкноПриложенияОсновноеКомандныйИнтерфейсКнопкаКомандногоИнте­рфейсаКлиенты.Нажать();

Код:
ОкноПриложенияОсновное = Неопределено;
	КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
	Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
		Если ТестируемоеОкно.Основное Тогда
			ОкноПриложенияОсновное = ТестируемоеОкно;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	ОкноПриложенияОсновноеКомандныйИнтерфейс = ОкноПриложенияОсновное.ПолучитьКомандныйИнтерфейс();
	ОкноПриложенияОсновноеКомандныйИнтерфейсКнопкаКомандногоИнте­рфейсаПродажи = ОкноПриложенияОсновноеКомандныйИнтерфейс.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), "Продажи");
	ОкноПриложенияОсновноеКомандныйИнтерфейсКнопкаКомандногоИнте­рфейсаПродажи.Нажать();

	ОкноПриложенияОсновноеКомандныйИнтерфейсКнопкаКомандногоИнте­рфейсаКлиенты = ОкноПриложенияОсновноеКомандныйИнтерфейс.НайтиОбъект(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), "Клиенты");
	ОкноПриложенияОсновноеКомандныйИнтерфейсКнопкаКомандногоИнте­рфейсаКлиенты.Нажать();
...Показать Скрыть

Платформа 8.3.4.408. Кто-нубудь сталкивался? Проверено на разных серверах, базах.
26. Шалимов Михаил (M.Shalimov) 19.03.14 15:12
(25) worker1c, Судя по коду система не находит кнопки "Клиенты" в подсистеме "Продажи".

при создании сценария нужно сделать идеальную ситуацию, когда у Вас не открываются доп окна, например с информацией, и записывать сценарий сразу после запуска системы с рабочего стола.
Попробуйте переформировать код обработки.
27. Алексей Лустин (lustin) 02.04.14 03:00
(11) pumbaE, докладываю предварительно и коротко перед сном ;-)

1. не найдено, web клиент не держит открыто порта для проброса вызовов тестов.
2. все через специализированную конфигурацию написанную на самом 1С. Наблюдаются попытки состыковать это с СППР.
3. code-review в специализированной конфигурации не нашел - даже такой сущности или ее аналога. Не говоря уже об остальных.

тестирование проводил на чужой площадке с временным доступом по TeamViewer - у людей у кого ЦУП куплен.

Так что результаты не окончательные и финального понимания не возникло. Особенно не удалось понять как методически закладывается любимая тема Артура при создании и затем очистке тестовых данных.
28. Евгений Сосна (pumbaE) 24.04.14 20:05
Подкорректировал обработку UILogToScript.epf , с возможностью сразу формировать внешнюю обработку, имхо удобней получилось, чему 1С, не надо копировать, вставить и т.д.

M.Shalimov; +1 Ответить 1
29. Шалимов Михаил (M.Shalimov) 25.04.14 11:09
(28) pumbaE, Можете выложить ее, а я у себя в публикации добавлю ссылку.
З.ы. в 1С планировали это сделать:)
30. Евгений Сосна (pumbaE) 25.04.14 15:15
(29) M.Shalimov, там v8unpack используется. Думаете 1С может пользоваться не "православным" инструментом?
https://github.com/xUnitFor1C/xUnitFor1C/tree/feature/104-UILogToScriptUnitTest/%D0%93%D0%A3%D0%98_%D0%A2%D0%B5%D1%81%­D1%82%D1%8B_8_3
M.Shalimov; +1 Ответить 1
31. Шалимов Михаил (M.Shalimov) 25.04.14 15:46
(30) pumbaE, Я просто доношу информацию из уст представителей фирмы "1С":)
32. Александр Брязгин (abryazgin) 25.09.15 11:09
Я так понимаю, что методом автоматизированного тестирования мы не сможем выполнить нагрузочное тестирование при параллельной работе нескольких клиентов.

У нас один менеджер управляет действиями на нескольких клиентах, но делает это последовательно.

Могу ли я как-то запустить тест, чтобы последовательность процедур выполнялась одновременно на клиенте 1 и клиенте 2?
Через фоновые задания не параллелится, так как это клиентские действия...
33. Евгений Сосна (pumbaE) 25.09.15 12:41
(32) abryazgin, это не предназначено для нагрузочного тестирования, для нагрузочного пользуйтесь тест центром.
34. Александр Брязгин (abryazgin) 25.09.15 21:58
(33) pumbaE, вы имеете ввиду это http://v8.1c.ru/expert/tc/tc_overview.htm?

Кстати. В процессе экспериментов обнаружено, что записываются не все действия пользователя.
Например [1] переход по произвольной ссылке (Ctrl+F11) сохраняет только открытие окна поиска и нажатие кнопки поиск, ввод текста или его вставка из буфера не фиксируется.
Например [2] нажатие на кнопку добавить договор в поле выбора договора в документе тоже не фиксируется при записи сценария.
Смотрел на платформе 8.3.5.1460 (что было под рукой).
35. Шалимов Михаил (M.Shalimov) 26.09.15 09:39
(34) abryazgin, С тест-центром все верно. Именно его нужно использовать для нагрузочного тестирования. Рассмотренный вариант подходит для функционального.
По косякам, лучше попробуйте платформу 8.3.6 свежего релиза, рассматриваемая Вами уже довольно устарела.
36. Denis Kornilov (Boson) 29.01.16 12:24
Добрый день, может кто-нибудь знает возможно ли настроить Конфу Сценарного Тестирования на работу с тонким клиентом через web соединение по протоколу HTTP?
37. Сергей Старых (tormozit) 07.07.16 17:10
Хочу новую статью или обновления этой.
dj_serega; +1 Ответить
38. gavril (gavril) 21.11.16 15:07
Возможно ли запустить в принципе с ключем /TESTCLIENT и в толстом клиенте?.
Куда будет писать журнал?

Так ничего не получилось из вышеперечисленного.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа