ivanov660 / TestingTool-3

Инструмент автоматизации тестирования ПО
Apache License 2.0
104 stars 24 forks source link

Использование WinAutomationUI для записи тестов #109

Open Graptos opened 3 years ago

Graptos commented 3 years ago

Добрый день

С помощью WinAutomationUI удаётся записать только один раз, в последующие разы после нажатия на кнопку ничего не записывается (Показано только "[]").

При использовании API 1С клиент такого не возникает, столкнулся с этим только при записи API Automation UI После перезапуска WinAutomationUI я снова могу включить запись и она сработает также один раз и не будет работать пока я не перезапущу WinAutomationUI. (Просто перезапуск через Stop и Start не помогает) Порты в WinAutomationUI и Менеджере сценарного теста совпадают. Пробовал запустить WinAutomationUI как и до запуска Тестирование 3.0, так и после, проблема остаётся в обоих случаях.

Необходимо ли перезапускать каждый раз WinAutomationUI или же запись можно делать сколько угодно раз без перезапуска WinAutomationUI? Можете пожалуйста описать инструкцию (Какие тонкости необходимо обязательно соблюдать) по записи тестов с API Automation UI? Чтобы для записи не нужно было постоянно перезапускать WinAutomationUI

ivanov660 commented 3 years ago

Уточните:

  1. Версия windows и разрядность?
  2. Права пользователя, под которым происходит запуск?
  3. Версия приложения последняя?
  4. Какое приложение пробуете записывать (собственный софт, приложение 1С обычный клиент или т.п.)?
  5. Если провести попытки записи с приложением калькулятор. Начать нажать пару кнопок сохранить. Выполнить еще раз процедуру записи. Ситуация происходит такая же как с приложением?
  6. После того как сломалась запись, работает ли проигрывание сценария? Т.е. нажали запись, сохранили, нажали не работает. Нажали проиграть сценарий - кнопки нажимаются/работает или нет?
  7. В момент работы приложения падений производительности компьютера не наблюдается? К примеру, происходят фризы или кратковременные пики нагрузки?
  8. Включите режим отладки в приложении и пришлите ошибки (если можете), которые сообщаются. image лог сохраняется в ту же папку, в которой находится exe файл.
  9. Попробуйте выполнить запись через приложение. а) включите показ отладочных вкладок image б) перейдите на вкладку "Desctop Запись" с) Попробуйте выполнить запись. Нажимайте кнопку start record -> потом на приложении нажимаете кнопки (удобно калькулятор) stop record Повторите несколько раз. image В нижней части окна будут появляться сообщения отладочные их тоже можете скинуть (если есть возможность) там ошибки, гуиды объектов и заголовки. Никакой персональной информации в логах не сохраняется.
Graptos commented 3 years ago
  1. Рабочее место на Windows Server 2012 R2 Standard, а сервер 1С Предприятие на Windows Server 2016 Standard Разрядность x64

  2. Запуск происходит под полными правами

  3. Версии: Тестирование 3.0: Тестирование и разработка (3.20.11.07) Менеджер сценарного теста: Версия 2020.11.08 WInAutomationUI: Версия 2020.08.19

  4. Пробовали записать в 1С 4.1. Управление Коммерческой Службой (Управление торговлей, редакция 11.0 с модулем БИТ:CRM) (11.0.9.15) 4.2. ЗУП - 3.1.15.137

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

  6. После того как возможность записывать пропадает, сценарии воспроизводятся и работают исправно

  7. Падения производительности не наблюдал

  8. WinAutomationUI 21-2-1.txt Самая первая запись с воспроизведением WinAutomationUI 21-2-1_.txt Последующая попытка записи которая не сработала

Без перезапуска WinAutomationUI: 1 После перезапуска: 2

  1. Запись через WinAutomationUI Запись работала только со второго раза, т.е. первый раз нажимаем на старт, ничего не происходит, нажимаем на стоп, снова на старт, только после этого запись работает

Калькулятор: 3 Даже с калькулятором не всегда стабильно работает

1C: 4

В процессе записи выяснилось что запись "ломается" и перестаёт записывать дальнейшие шаги с момента когда выбирается что-либо внутри окна 1С (Выделил красным) Как и в УТ, так и в ЗУП, ошибка повторяется. То же самое подтвердилось и в Менеджере сценарного теста: При записи тестов с API Automation UI, запись работает если только записывать элементы из навигационных панелей и прочие кнопки 1С (Выделено зеленым на 5 скриншоте), если же выбирать строки из списков и т.п. (Выделено красным на 5 скриншоте) то запись ломается и в последующие разы ничего не записывается, даже просто навигационные панели которые записывались ранее (Помогает только перезапуск WinAutomationUI, но опять же до тех пор пока не будут использоваться строки из списков и т.п.)

5

ivanov660 commented 3 years ago
  1. Спасибо, ошибку при записи увидели (Can't uninstall low level keyboard hook!). Система не может почему-то сбросить хук (получается как-то подвисает отдельный поток) - эту проблему в текущий момент можно решить только перезапуском приложения, windows при закрытии приложения принудительно завершает все процессы.
  2. Попробуем промоделировать на виртуальном стенде данную ситуацию. (Со списками в 1С есть проблемы даже в их API, посмотрим что покажет анализ).
Graptos commented 3 years ago

Подскажите пожалуйста, а как вы решаете проблемы со списками в 1С? Может быть есть какие-нибудь советы/рекомендации как лучше записывать моменты в которых присутствуют списки

ivanov660 commented 3 years ago

В видео инструкциях был пример через 1С API поиск документа в динамическом списке. Алгоритм:

  1. Мы для списка нажимаем кнопку "Найти" (расширенный поиск или еще как, чтобы появилось окно поиска)
  2. Или можно активизировать список (если не активен) выполнить команду - отправить сочетание клавиш (send key) или (send key simulate - более низкоуровневая передача) Ctrl+F. Отправлять сочетания кнопок иногда эффективнее чем кликать на элементы особенно для 1С. simulate send key - отправляет сочетания только в текущее окно. Используйте сочетания 'Cntrl+Key', 'Alt+Key', 'Ctrl+Shift+Key', 'F1'-'F12' в любой комбинации. send key - отправляет команду-текст на выбранном элементе. Чтобы отправить горячую клавишу F4 - введите '{F4}', Модификаторы для комбинаций Shift - '+', Alt - '%', Ctrl - '^'. Используйте перед этой операцией команду focus или click. Пример: Ctrl+F1 - '^+{F1}'
  3. В открытом окне поиска - выбираем поле поиска и вводим строку поиска. Это может быть номер документа, наименование или код справочника.

Таким образом мы избегаем проблем - меньший контакт со списком, меньше данных, быстрее и точнее поиск. К тому же ищут реальные работающие пользователи.