Автоматизация тестирования с помощью 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»

См. также

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

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

2160 руб.

05.08.2024    1331    15    1    

8

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

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

2400 руб.

04.07.2022    8411    38    1    

29

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

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

1800 руб.

20.01.2022    7815    19    0    

13

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1352    capitan    0    

0

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    2908    leemuar    8    

22

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

Пишете много тестов – хорошо. Покрытие достаточно высокое – отлично. Но баги все равно попадаются – плохо. Раз юниты и фича-файлы – это код, значит, их можно протестировать. Расскажем о подходе «мутационное тестирование», позволяющем оценить надежность тестов и повысить к ним доверие.

30.08.2024    1316    Scorpion4eg    6    

8

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

Иногда возникают ситуации, когда надо развернуть тестовую базу клиента / свою на серверах Windows или Linux. Тестовые базы могут понадобиться в разных ситуациях: у клиента ошибка, на нашей базе она не воспроизводится, реализуем новый функционал и хотелось бы протестировать на Linux и т.д. А теперь представим, что это все на потоке. Что тестовых баз 1С не одна, а 20-30. И получаем проблему, что непонятно, занята она сейчас кем-то или нет. Предлагаю вариант решения этой проблемы.

28.06.2024    1540    Diversus    12    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ivanov660 4578 11.12.18 17:26 Сейчас в теме
Хорошая статья, молодец.
Выдели только отдельно, что эта компонента является частью Фреймворка "Тестирование 3.0".
2. Alien_job 190 11.12.18 17:48 Сейчас в теме
А кнопками конфигуратора тоже можно так счелкать?
3. ivanov660 4578 11.12.18 18:30 Сейчас в теме
Можно.
Но есть некоторые особенности, которые зависят от целевого приложения.
Чем хуже приложение поддерживает api automation ui, тем больше придется управлять мышкой (позиционировать внутри элемента интерфейса).
4. gaglo 12.12.18 14:02 Сейчас в теме
(3) Как узнать, "насколько хуже" приложение поддерживает api automation ui? Проверен ли ui на совместимость с конфигураторами разных версий ? Или это надо спрашивать про весь фреймворк? Вообще какие ограничения, несовместимости, и т.п.?
На testingtool.ru ходил, за пять минут ни слова про ограничения не нашел, только про возможности...
5. ivanov660 4578 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 4578 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 4578 19.12.18 18:33 Сейчас в теме
(9)
1. Посмотрю, попробую сказать в чем проблема может быть.
2. Для записи нажатий мышки используется hook, поэтому если у вас сильно ограничены права, то он может не срабатывать. В этом случае поможет запуск winautomation в административном режиме.
8. gaglo 19.12.18 13:32 Сейчас в теме
В наши задачи не входит тестирование

Ну и на том спасибо...
10. ivanov660 4578 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 4578 20.12.18 18:59 Сейчас в теме
(28)
1. Предыдущее замечание, на мой взгляд, довольно провокационное.
2. Судя по расшифровке, вы поняли мысль.
Однако, внесу замечание технического характера - универсальных механизмов тестирования UI интерфейса как черного ящика нет. Если взять другие инструменты, к примеру от smart bear Test Complete, то принцип и возможности аналогичные. Поэтому обещаний и гарантий, что решатся все проблемы не даем.
12. antz 20.12.18 11:17 Сейчас в теме
Не пашет(

win10 64 бит.

И ругается еще: "Режим менеджера тестирования не доступен. Большая часть функционала будет не доступна!"
Прикрепленные файлы:
13. ivanov660 4578 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 4578 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 4578 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 4578 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 4578 20.12.18 14:04 Сейчас в теме
(20)попробуйте нажмите кнопку "стоп" и затем "запуск"
24. antz 20.12.18 14:11 Сейчас в теме
(23) ага, после стопа пошло, правда теперь ругается "Current element = null. Can't find it." Окошко калькулятора не закрывал.
25. ivanov660 4578 20.12.18 14:19 Сейчас в теме
(24) Это сообщение говорит о том что он не нашел какой-либо элемент. Причиной может быть: не тот процесс, нет больше того процесса, изменились динамически свойства элемента.
Могу посоветовать выполнить процедуру еще раз с самого начала.

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


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