Автоматизация тестирования с помощью WinAutomationUI

11.12.18

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

Рассматривается использование инструмента WinAutomationUI для создания автоматизированных сценарных тестов на примере 1 + 1 = 2.

На инфостарте можно найти много публикаций, описывающие преимущества использования тестирования при разработке. На мой взгляд, основная причина почему массово не используется автоматизированное тестирование - отсутствие простого инструмента, которое обеспечивает это тестирование. С позиции разработчика - если я потратил на разработку час времени, не хочется тратить ещё час на создание теста. А если требуемое время сократить до 5 минут? Гораздо интересней.

Цель публикации познакомить с утилитой WinAutomationUI, более подробное описание можно найти на http://testingtool.ru.

Вам потребуется 5 минут времени. Всё.Так что, если картинка из заголовка не про Вас, пожалуйста, потратьте эти 5 минут.

Скачиваем два файла:

Архив с утилитой
Внешнюю обработку МенеджерСценарногоТеста

Распакуйте архив:

Открываем каталог ExternalAutomationUI и запускаем файл WinAutomationUI.exe

У вас откроется окно приложения, нажимаем Server->Start.

Если всё прошло хорошо, после старта у вас появится подменю Open localhost.

Нажав на которое, откроется окно браузера.

 

Подготовка окончена. Вытрем пот со лба.

1. Открываем стандартное приложение калькулятор.

2. Открываем любую конфигурацию (управляемые формы) в режиме предприятия и открываем обработку Менеджер сценарного теста. Нажимаем используемое API Automation UI, кнопку "Обновить список доступных приложений"и ставим флажок рядом с calc:

 

Далее 1) нажимаем на красную кнопочку

2) переходим в калькулятор

На калькуляторе нажимаем мышкой: «сброс», 1+1=2 и в завершении кликаем на панель с цифрами

3) Нажимаем завершить запись

4) Нажимаем преобразовать

Откроется вторая вкладка.

Калькулятор не закрываем, если закроете откроете заново - сменится id приложения и необходимо будем переподключиться к нему.

Проставим флажки по кнопке "1" на картинке.

Встанем на поле "Найти объект "2""

В командах API найдем "Сравнить данные", установим курсор мыши на эту команду и нажмем кнопку Добавить (3). Справа укажем представление 3 и выберем условие сравнение "Равно".

Нажмем кнопки 4 и кнопкой 5 запустим тест. Если всё сделано корректно, у вас откроется калькулятор, выполнится пример 1 + 1 = 2. И появится предупреждение, что ожидаемое значение 3 <>2.

Если у Вас в процессе выполнения возникнут сложности, обратитесь к видео инструкции:

WinAutomationUI тестирование testingtool.ru Фреймворк «Тестирование 3.0»

См. также

Автотесты для типовых конфигураций 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    6732    26    0    

23

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 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    6592    10    0    

9

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

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

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

14.03.2024    1162    Koder_Line    1    

8

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

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

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

23.01.2024    633    Koder_Line    1    

3

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

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

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

1 стартмани

11.01.2024    1944    comptr    4    

24

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

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

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

3 стартмани

29.12.2023    1115    8    RustIG    5    

7

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

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

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

14.12.2023    2030    Koder_Line    0    

6

YAxUnit или модульное тестирование в 1С

Тестирование QA Бесплатно (free)

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

16.11.2023    3780    theshadowco    7    

46
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ivanov660 4332 11.12.18 17:26 Сейчас в теме
Хорошая статья, молодец.
Выдели только отдельно, что эта компонента является частью Фреймворка "Тестирование 3.0".
2. Alien_job 190 11.12.18 17:48 Сейчас в теме
А кнопками конфигуратора тоже можно так счелкать?
3. ivanov660 4332 11.12.18 18:30 Сейчас в теме
Можно.
Но есть некоторые особенности, которые зависят от целевого приложения.
Чем хуже приложение поддерживает api automation ui, тем больше придется управлять мышкой (позиционировать внутри элемента интерфейса).
4. gaglo 12.12.18 14:02 Сейчас в теме
(3) Как узнать, "насколько хуже" приложение поддерживает api automation ui? Проверен ли ui на совместимость с конфигураторами разных версий ? Или это надо спрашивать про весь фреймворк? Вообще какие ограничения, несовместимости, и т.п.?
На testingtool.ru ходил, за пять минут ни слова про ограничения не нашел, только про возможности...
5. ivanov660 4332 12.12.18 15:22 Сейчас в теме
(4)
1. Зависит от поставщика ПО и определяется опытным путем.
2. В наши задачи не входит тестирование конфигураторов разных версий, т.к. автоматизацию тестирования мы нацеливаем на режим предприятия. (Оптимальный api для 1С это автоматизированное тестирование от 1С для управляемых форм)
3. Как выглядит работа с майкрософт api (в двух словах):
а) есть интерфейс автоматизации тестирования от майкрософта (смотрите википедию там детальнее)
б) если приложение полностью поддерживает его, то мы можем достучаться до каждого элемента интерфейса - получить его свойства (положение, активность, текстовое содержимое и др.), выполнить типовые действия (нажатие кнопки, открытие списка, переключение чекбокса и др.)
в) если же не поддерживает или не полностью, то мы не можем нажать кнопки через этот api или не видим состав элементов вообще.
4. Увидеть состав и описание свойств элемента (проверить "совместимость") можно, к примеру, через специальные инструменты (UISpy)
5. Относительно 1С. Мы проверяли интерфейс управляемых форм. Результат следующий:
а) Состав объектов и свойства доступны практически все, кроме "Поля табличного документа"
б) Действия над кнопками и флажками поддерживаются
в) С активными элементами выпадающих списков и другими элементами (выбрать из списка, раскрыть и др.) необходимо использовать "хук" управление мышкой - позиционирование внутри UI элемента управления и выполнить нажатие. В этом случае приложение через враппер для мышки будет перемещать курсор к элементу и выполнять команду нажатия.
6. Makushimo 160 14.12.18 10:34 Сейчас в теме
(5)
Оптимальный api для 1С это автоматизированное тестирование от 1С для управляемых форм

обычные формы в обычном приложении получается тестировать не получится?
7. ivanov660 4332 14.12.18 12:42 Сейчас в теме
(6)
1. получится тестировать обычные формы, используйте тип api: "Automation UI", как в примере.
2. под оптимальным api от 1с я имел ввиду следующее: отработан (уже 3 года используем), создавать сценарии сейчас проще, удобнее, поддержка доступна всего функционала.
3. сейчас мы поддерживаем три api:
1c автоматизированное тестирование - для управляемых форм от 1С
Automation UI - для любых десктопных приложений под Windows.
Selenium - для тестирования приложений в браузерах (chrome, ie, ff, opera) под windows.
4. функционал под два новых api сейчас отрабатывается и улучшается.
5. если будут вопросы или проблемы пишите в issues на (https://github.com/ivanov660/TestingTool-3)
9. Alien_job 190 19.12.18 17:06 Сейчас в теме
(3)
Можно
Не получилось
Прикрепленные файлы:
11. ivanov660 4332 19.12.18 18:33 Сейчас в теме
(9)
1. Посмотрю, попробую сказать в чем проблема может быть.
2. Для записи нажатий мышки используется hook, поэтому если у вас сильно ограничены права, то он может не срабатывать. В этом случае поможет запуск winautomation в административном режиме.
8. gaglo 19.12.18 13:32 Сейчас в теме
В наши задачи не входит тестирование

Ну и на том спасибо...
10. ivanov660 4332 19.12.18 18:27 Сейчас в теме
(8)зачем вырезаете из контекста?
1. Тестировать работоспособность своих приложений должны сами разработчики - в данном случае специалисты 1с. (если они к нам обратятся, то мы сможем помочь в определенной степени)
2. Мы предлагаем БЕСПЛАТНО инструмент и методологию
28. gaglo 20.12.18 15:51 Сейчас в теме
(10) Да чо так обижаться-то? Я понял. (?) Не согласны - переформулируйте ответ.
1. Конфигураторы не проверяем, поскольку они очень смутно относятся к задаче тестирования готовых приложений 1С.
2. Приложения на управляемых формах поддерживаются почти полностью (см. ответ (5) про ограничения)
3. Обычные формы должны поддерживаться с типом api: "Automation UI", но их мы не проверяли, поскольку несовременно.
4. Поскольку мы предлагаем БЕСПЛАТНО инструмент и методологию, их несовместимость с конкретными задачами и/или пользователями каждый проверяет сам на себе.

5. Это уже от себя. Вырезал, потому что цитировать полный контекст не умею... Или много места займет.
29. ivanov660 4332 20.12.18 18:59 Сейчас в теме
(28)
1. Предыдущее замечание, на мой взгляд, довольно провокационное.
2. Судя по расшифровке, вы поняли мысль.
Однако, внесу замечание технического характера - универсальных механизмов тестирования UI интерфейса как черного ящика нет. Если взять другие инструменты, к примеру от smart bear Test Complete, то принцип и возможности аналогичные. Поэтому обещаний и гарантий, что решатся все проблемы не даем.
12. antz 20.12.18 11:17 Сейчас в теме
Не пашет(

win10 64 бит.

И ругается еще: "Режим менеджера тестирования не доступен. Большая часть функционала будет не доступна!"
Прикрепленные файлы:
13. ivanov660 4332 20.12.18 12:44 Сейчас в теме
(12)
1. Режим менеджера тестирования -это для api 1С. Надо будет пофиксить это сообщение для других типов api.
2. Запустите с режимом включения лога следующей командой (WinAutomationUI.exe -Port 8080 -StartWebServer -EnableLog) или через меню "Option->Enable log"
После этого должен сформироваться файл с логом в папке (WinAutomationUI *.txt), в который будут выводиться все сообщения отладочные.
Если проблема с установкой hook, то в сообщении лога должно появится "can't install hook". Это может являться ограничением в правах или блокировкой антивирусом.
3. Сообщите, по результатам отладки.
14. antz 20.12.18 12:59 Сейчас в теме
(13) Как-то то ловит, то не ловит. Вот сейчас поймала, но поймала только это. Может, калькулятор не той системы?
Прикрепленные файлы:
15. ivanov660 4332 20.12.18 13:11 Сейчас в теме
(14)
1) Попробуйте все же включить логирование и посмотреть в сообщениях наличия ошибок или исключений.
2) 10 винды под рукой нет, попробую развернуть на виртуалке и посмотреть что там происходит.
16. antz 20.12.18 13:23 Сейчас в теме
(15) А, лог забыл приложить. Там примерно такое:

20.12.2018 12:56:24: LogEvent: FilePath: C:\Users\Anton\Downloads\ExternalAutomationUI\WinAutomationUI.exe/www/rest.html
20.12.2018 12:56:26: LogEvent: Калькулятор ApplicationFrameTitleBarWindow Window
20.12.2018 12:56:26: LogEvent: el_window_p Калькулятор ApplicationFrameTitleBarWindow Window
20.12.2018 12:56:26: LogEvent: el_window_main_p Калькулятор ApplicationFrameWindow Window
20.12.2018 12:56:34: LogEvent: new Client
20.12.2018 12:56:34: LogEvent: GET /rest.html?&Operation=record_stop&api=Automation%20UI HTTP/1.1
Host: localhost:8080
User-Agent: 1C+Enterprise/8.3
Accept: */*
21. ivanov660 4332 20.12.18 13:58 Сейчас в теме
(16) Судя по логу, запись идет: el_window_p и el_window_main_p это найденный элемент и окно приложения.
При ошибках будет выводится сообщение об ошибке и стек вызовов.

rest.html?&Operation=record_stop&api=Automation%20UI - отвечает за команды передаваемые врапперу из 1С, завершить запись и api Autoamtion UI

Есть еще вариант записи, вне 1С. Если открыть браузер и перейти на вкладку "record", то можно через браузер начать запись и завершить в обход (приложения 1С).
17. antz 20.12.18 13:28 Сейчас в теме
(15) На 1с-ном калькуляторе взлетело)
18. antz 20.12.18 13:35 Сейчас в теме
(15) Сценарий записал, но не запускает. Пишет "Режим менеджера тестирования не доступен. Большая часть функционала не доступна!"
19. ivanov660 4332 20.12.18 13:51 Сейчас в теме
(18)
1. Еще раз сообщение "Режим менеджера тестирования не доступен. Большая часть функционала не доступна!" имеет смысл, только для api автоматизированное тестирование 1С.
2. Что значит не запускает? Должно что-то происходить: выдать сообщение, пройти по флажку, ошибку или еще что-то.
Убедитесь что выполнены следующие условия:
а) Используемый API: Automation UI
б) В списке процессов выбран калькулятор (у меня выглядит так 1cv8v 'Калькулятор') (если выбран с индексом 0, то система будет сама искать по наименованию и это может выполняться очень медленно)
в) В проекте выделены флажки все
г) Попробуйте нажать "стоп" прежде.
20. antz 20.12.18 13:56 Сейчас в теме
(19) Не запускает - значит пишет сообщение "Режим менеджера тестирования не доступен. Большая часть функционала не доступна!" и усе.
Прикрепленные файлы:
23. ivanov660 4332 20.12.18 14:04 Сейчас в теме
(20)попробуйте нажмите кнопку "стоп" и затем "запуск"
24. antz 20.12.18 14:11 Сейчас в теме
(23) ага, после стопа пошло, правда теперь ругается "Current element = null. Can't find it." Окошко калькулятора не закрывал.
25. ivanov660 4332 20.12.18 14:19 Сейчас в теме
(24) Это сообщение говорит о том что он не нашел какой-либо элемент. Причиной может быть: не тот процесс, нет больше того процесса, изменились динамически свойства элемента.
Могу посоветовать выполнить процедуру еще раз с самого начала.

P.S. Думаю, следует в сообщение о проблемах поиска для этого api выдать дополнительную информацию по свойствам поиска.
26. antz 20.12.18 14:28 Сейчас в теме
(25) Спотыкается на первом шаге "НайтиОсновноеОкно "Калькулятор", хотя чего его искать - вот же оно висит)
Попробовал все записать по новой - не записывает ни через 1С, ни через браузер, выдает "[]". Ладно, попозже продолжу, а то работа)
27. ivanov660 4332 20.12.18 14:53 Сейчас в теме
(26) На последок, иногда hook может зависнуть. Помогает перезапуск win*.exe.
30. AlexKo 102 22.12.18 06:58 Сейчас в теме
(26)
все записать по новой - не записывает ни через 1С, ни через браузер, выдает "[]". Ладно, попозже продолжу, а то работа)


Возможно Вы переоткрывали калькулятор?
Если происходит проблема, точно поможет закрытие WinAutomationUI/ открытие заново и повторное открытие обработки менеджера тестирования.
22. ivanov660 4332 20.12.18 14:00 Сейчас в теме
(20) попробуйте нажмите кнопку "стоп" и затем "запуск"
Оставьте свое сообщение