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

14.03.14

Разработка - Тестирование QA

В данной статье будет рассмотрен новый механизм системы "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", но на момент написания статьи я рекомендую использовать его в ознакомительных целях, т.к. механизм довольно новый и возможно, еще не до конца отлажен разработчиками. 

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

 

 

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

См. также

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.15.111.

2220 руб.

04.07.2022    6932    26    1    

24

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 3.0 и Бухгалтерия предприятия 3.0 (vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.144.49.

1728 руб.

20.01.2022    6706    10    0    

9

Нагрузочное тестирование для определения производительности системы

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

10 стартмани

08.04.2024    1207    3    user1527257    1    

4

Выполнение тестов и обработка их результатов в 1С: Тестировщик

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье мы рассмотрим имитацию действий пользователя 1С и протоколирование тестов в инструменте 1С: Тестировщик.

14.03.2024    1401    Koder_Line    1    

11

Создание и модификация тестов в 1С:Тестировщик

Тестирование QA Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

23.01.2024    717    Koder_Line    1    

4

Настройка Allure для Gitlab (self-hosted)

Тестирование QA Абонемент ($m)

Заметка о том, как использовать Allure с self-hosted Gitlab, чтобы быстро и с минимальными усилиями получить удобные отчёты о результатах тестирования и навигацию внутри них.

1 стартмани

11.01.2024    2280    comptr    4    

25

Анализ документов: свертка базы, автотесты, динамика роста базы

Статистика базы данных Инструментарий разработчика Тестирование QA Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

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

3 стартмани

29.12.2023    1193    8    RustIG    5    

8

Быстрый старт в 1С: Тестировщик

Тестирование QA Платформа 1С v8.3 Бесплатно (free)

В данной статье мы рассмотрим начало работы, установку и подключение программы системы 1С: Тестировщик, рабочую область.

14.12.2023    2177    Koder_Line    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. speshuric 1328 06.03.14 16:51 Сейчас в теме
Шаг далеко вперёд по сравнению со сценарным тестированием из ЦУПа
+
2. M.Shalimov 200 06.03.14 17:11 Сейчас в теме
(1) speshuric, по информации с "Экспертского" тренинга проходившего на прошлой неделе, в скором времени ЗАО "1С" выпустит обновленное сценарное тестирование входящее в ЦУП предоставляющее больше возможностей. Не исключено, что данный механизм будет в нем задействован.
+
3. speshuric 1328 06.03.14 17:46 Сейчас в теме
(2) Спасибо, я в курсе. 1С в общем-то сразу позиционировала этот механизм, как замену костылям из сценарного тестирования. И я даже с полгода назад смотрел, как там и что реализовано, но на тот момент была куча нереализованных моментов, если я правильно помню. Вам спасибо за краткий how-to с которого можно начать большинству разработчиков.
POWone; cleaner_it; +2
4. StaticUnsafe 07.03.14 10:30 Сейчас в теме
Радует что платформа развивается.
POWone; +1
6. M.Shalimov 200 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?


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

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

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

Прикрепленные файлы:
alest; gradi; vlad.frost; wunderland; artbear; +5
13. M.Shalimov 200 07.03.14 16:04 Сейчас в теме
(11) pumbaE, Хорошо, учту!
+
14. artbear 1522 07.03.14 17:00 Сейчас в теме
(11) На все вопросы ИМХО ответ один - нету ничего подобного :) :(
+
15. M.Shalimov 200 07.03.14 18:15 Сейчас в теме
(14) artbear, по работе с хранилищем, вполне вероятно, ничего не добавили (все таки это платформа, а не конфигурация) а вот в целом механизмы тестирования будет интересно рассмотреть.
+
27. lustin 02.04.14 03:00 Сейчас в теме
(11) pumbaE, докладываю предварительно и коротко перед сном ;-)

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

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

Так что результаты не окончательные и финального понимания не возникло. Особенно не удалось понять как методически закладывается любимая тема Артура при создании и затем очистке тестовых данных.
+
9. artbear 1522 07.03.14 15:05 Сейчас в теме
(0)
но на момент написания статьи я рекомендую использовать его в ознакомительных целях, т.к. механизм довольно новый и возможно, еще не до конца отлажен разработчиками.

Механизм уже не очень новый и для целей тестирования вполне можно использовать.
Но к нему все равно есть вопросы. Не все удобно и просто :(
В открытом доступе нет примеров подобных сценариев для типовых конфигураций (я вообще не слышал о таких тестах).
В конце 2012 или начале 2013 г. общался на партнерской конференции 1С и разработчики сценарного тестирования в кулуарах сообщили мне, что им неизвестно о подобных автоматических тестах для типовых конфигураций 1С.
Для тестового фреймворка https://github.com/xUnitFor1C/xUnitFor1C уже есть готовые шаблоны для написания и автоматического выполнения сценарных тестов 8.3 и получения результатов тестирования.
Этот фреймворк уже используется в т.н. "ночных" сборках и прогоне автоматических тестов.
Например, у нашей системы на базе УТ 11 у нас свыше 500 автоматических юнит-тестов и сценарных тестов. автосборка и прогон тестов выполняется несколько раз в сутки.
Flashill; Danil.Potapov; vlad.frost; Alever; JohnyDeath; ivanov660; speshuric; M.Shalimov; lustin; +9
10. lustin 07.03.14 15:28 Сейчас в теме
(9) artbear, Уже 500 ? Молодцы мужики. Я тут всем говорю что около 200.
+
12. pumbaE 07.03.14 15:46 Сейчас в теме
(10) lustin, ну так не за один же день накапливаются у меня в среднем в месяц плюс 20-50 тестов добавляется, ну а сколько переписывается уже устал считать :)
+
16. KillHunter 7 09.03.14 19:44 Сейчас в теме
Я так понимаю все изменения связаны с использованием веб-интерфейса, хотя по большому счету он для основной массы просто навсего не нужен!
+
17. M.Shalimov 200 10.03.14 23:49 Сейчас в теме
(16) KillHunter, Не веб интерфейса а управляемого приложения ( в т.ч. веб морда). УУ нужно всем, многие типовые уже управляемы и в скором времени управляемыми станут все. Переход с УПП на ERP20 только вопрос времени, вспомните зарю 7.7.
+
20. Сисой 87 13.03.14 14:24 Сейчас в теме
(17) Вы за всех так уверенно не говорите.
Большинство крупных контор, поверивших в 8-ку и вложивших миллионы долларов в КИС на ее базе, кроют 1С матом за полную несовместимость новых и старых типовых.
Вот объясните мне, почему компания должна потратить еще полмиллиона долларов, если НИКАКИХ преимуществ при этом она не получит (все задачи УЖЕ решены), а багов и глюков будет немеряно.
Используемые продукты: БП, ЗУП, УПП, Консолидация.
При этом не переходить на УФ нельзя - регламентированный учет требует обновлений.

Ах да, можно еще даунгрейд на 7.7 сделать. Лицензии остались.
+
21. M.Shalimov 200 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 200 13.03.14 22:22 Сейчас в теме
(22) pumbaE, Этот вопрос лучше задать в фирму "1С", рассуждения о том что можно было бы им сделать выходят за рамки данной статьи.
+
24. speshuric 1328 19.03.14 10:59 Сейчас в теме
(22) А с другой стороны, да, у них исходники есть, но отношение к тестированию мягко говоря "не TDDшное". Я всё время ворчу на 1С-ную арифметику, потому что она не имеет заявленных четких границ, из-за этого сложно предсказать результат зачастую. Причем не только для прикладного программиста, но и для разработчика платформы. Почему это плохо? Нет четкой границы, нет и не будет граничных тестов. Вот, например, ЧислоПрописью:
Сообщить(ЧислоПрописью(-1000000000000000, ""));
выводится "-Одна тысяча 00". а для
Сообщить(ЧислоПрописью(-1000000000001000, ""));
выводится "-Одна тысяча одна тысяча 00". Причем для больших положительных чисел проверку не забыли - исключение вываливается. На самом деле аналогичная ситуация почти везде в платформе - и работа с большими (2+ ГБ) объектами, и в системных полях ввода, да много где. Ошибки такие, конечно, исправляются (по мере нахождения), но системного "прочесывания" даже базовых объектов в общем-то нет. Причем, даже баг-репорты даже прекрасно оформленные в 1С слать через v8 дело достаточно неблагодарное (а вот через партнерский доступ проще) - фиг пробьёшь первую линию.

Так что пусть хотя бы в управляемых делают. Авось постепенно пройдут per aspera ad astra.
TheOldGuard; vlad.frost; CratosX; +3
18. pumbaE 11.03.14 15:00 Сейчас в теме
( в т.ч. веб морда)
хм, не видел возможности реального тестирования веб-морды... Так что бы с firefox или chromium запустить, разве что selenium, но пока правил конвертации еще никто не делал http://www.screencast.com/t/RMoppLTOMz
+
19. M.Shalimov 200 11.03.14 15:48 Сейчас в теме
(18) pumbaE, Не использовал, но в описанном методе есть возможность запуска теста через веб.
+
25. worker1c 115 19.03.14 14:56 Сейчас в теме
Менеджер подключается к клиенту, при запуске сценария, сгенерированного обработкой из 1С ошибка:
{Форма.Форма.Форма(81)}: Значение не является значением объектного типа (Нажать)
	ОкноПриложенияОсновноеКомандныйИнтерфейсКнопкаКомандногоИнте­рфейсаКлиенты.Нажать();

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

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

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

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

M.Shalimov; +1
29. M.Shalimov 200 25.04.14 11:09 Сейчас в теме
(28) pumbaE, Можете выложить ее, а я у себя в публикации добавлю ссылку.
З.ы. в 1С планировали это сделать:)
+
30. pumbaE 25.04.14 15:15 Сейчас в теме
(29) там 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
TheOldGuard; stas_ganiev; M.Shalimov; +3
31. M.Shalimov 200 25.04.14 15:46 Сейчас в теме
(30) pumbaE, Я просто доношу информацию из уст представителей фирмы "1С":)
+
47. TheOldGuard 10 18.02.22 14:28 Сейчас в теме
(30) Ого, какая удобная штукенция)
+
32. abryazgin 2 25.09.15 11:09 Сейчас в теме
Я так понимаю, что методом автоматизированного тестирования мы не сможем выполнить нагрузочное тестирование при параллельной работе нескольких клиентов.

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

Могу ли я как-то запустить тест, чтобы последовательность процедур выполнялась одновременно на клиенте 1 и клиенте 2?
Через фоновые задания не параллелится, так как это клиентские действия...
+
33. pumbaE 25.09.15 12:41 Сейчас в теме
(32) abryazgin, это не предназначено для нагрузочного тестирования, для нагрузочного пользуйтесь тест центром.
+
34. abryazgin 2 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 200 26.09.15 09:39 Сейчас в теме
(34) abryazgin, С тест-центром все верно. Именно его нужно использовать для нагрузочного тестирования. Рассмотренный вариант подходит для функционального.
По косякам, лучше попробуйте платформу 8.3.6 свежего релиза, рассматриваемая Вами уже довольно устарела.
+
36. Boson 29.01.16 12:24 Сейчас в теме
Добрый день, может кто-нибудь знает возможно ли настроить Конфу Сценарного Тестирования на работу с тонким клиентом через web соединение по протоколу HTTP?
+
37. tormozit 7140 07.07.16 17:10 Сейчас в теме
Хочу новую статью или обновления этой.
TheOldGuard; user1647001; Gisborn; add063; dj_serega; +5
38. gavril 44 21.11.16 15:07 Сейчас в теме
Возможно ли запустить в принципе с ключем /TESTCLIENT и в толстом клиенте?.
Куда будет писать журнал?

Так ничего не получилось из вышеперечисленного.
+
39. st4rk 12.12.16 11:16 Сейчас в теме
Для обычных форм есть решение?
+
40. DimaP 63 23.01.17 15:45 Сейчас в теме
Кто-нибудь на практике использует автоматизированное тестирование от 1С?
Какие результаты?
С какими проблемами столкнулись?
+
41. Cyberhawk 135 28.09.18 13:04 Сейчас в теме
Внешняя обработка UILogToScript, что лежит на ИТС, не умеет преобразовывать интерактивные действия по выбору значений из выпадающих меню (метод управляемой формы "ПоказатьВыборИзМеню").

В типовых конфигурациях, например, это выпадающее меню можно увидеть в группе "Контактная информация" форм объектов (например, при нажатии кнопки "Добавить" предлагается выбрать тип добавляемой контактной информации - "Электронная почта", "Телефон" и т.д.).
artbear; +1
42. Cyberhawk 135 28.09.18 13:53 Сейчас в теме
(41)
Текст ошибки выглядит следующим образом: {ВнешняяОбработка.UILogToScript.МодульОбъекта(511)}: Неопознанный узел executeChoiceFromMenu:
Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;


Для ее исправления нужно в методе "ConvertCommand" в конструкцию "Если" добавить еще одну ветку:

	ElsIf Reader.Name = "executeChoiceFromMenu" Then
		Presentation = "";
		While Reader.ReadAttribute() Do
			If Reader.Name = "presentation" Then
				Presentation = Reader.Value;
			Else
				Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
			EndIf;
		EndDo;
		AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteChoiceFromMenu(""", ".ВыполнитьВыборИзМеню(""") + DoubleQuotationMarks(Presentation) + """);", True);
		LastProcessedCommand = ? (ScriptVariant = "en", "ExecuteChoiceFromMenu", "ВыполнитьВыборИзМеню");
		Reader.Read();
Показать
Casey1984; Lych1; +2
43. Cyberhawk 135 28.09.18 15:12 Сейчас в теме
Обнаружена еще одна ошибка в обработке UILogToScript, на этот раз в создаваемом этой обработкой коде сценария на встроенном языке 1С.

Ошибка имеет вид "Переменная не определена (ОкноПриложения...CommandInterface)" и проявляется, если:
1) в сценарии присутствует взаимодействие пользователя с панелью навигации формы
и
2) такое взаимодействие не является самым первым действием в этой форме

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

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

Вариант, не требующий изменения сценария, заключается в доработке обработки UILogToScript и будет приведен ниже.
+
44. Cyberhawk 135 28.09.18 15:30 Сейчас в теме
(43)
В методе "ConvertWindowCommandInterface" достаточно вызов метода "AddLine" вынести из условия, в котором этот вызов присутствует. Например, расположить сразу после условия (хотя можно и до).

Негативным моментом здесь будет являться то, что если в сценарии присутствует несколько интерактивных взаимодействий пользователя с панелью навигации (в рамках одной и той же формы), то в сформированном обработкой UILogToScript программном коде будет повторяться инициализация переменной, хранящей командный интерфейс формы (будут повторяться вызовы метода "ПолучитьКомандныйИнтерфейс" перед каждый взаимодействием пользователя с панелью навигации формы).
Кажется, что "защититься" от такого избыточного поведения не так просто, как может поначалу показаться: например, если реализовывать кэш, то стоит следить не только за добавлением в него признака, что командный интерфейс формы проинициализирован, но и учитывать, что одна и та же форма может открываться многократно. Поэтому в этом направлении доработку обработки осуществлять не стал.
+
45. artbear 1522 30.09.18 21:21 Сейчас в теме
(44) Спасибо за выполненный анализ
+
46. improg 574 19.03.20 13:12 Сейчас в теме
(0) Очень похоже на нагрузочное тестирование из "Настольной книги 1С:Эксперта по технологическим вопросам" Е. Филиппова. В чем изюминка этой статьи от написанного в книге?
+
48. пользователь 24.06.22 12:58
Сообщение было скрыто модератором.
...
49. RustIG 1556 29.12.23 09:50 Сейчас в теме
спасибо! полезно.
+
Оставьте свое сообщение