Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Graptos opened this issue Jan 26, 2021 · 5 comments
Open
Labels

Comments

@Graptos
Copy link

Graptos commented Jan 26, 2021

Добрый день

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

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

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

@ivanov660
Copy link
Owner

Уточните:

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

@ivanov660 ivanov660 added the bug label Jan 26, 2021
@Graptos
Copy link
Author

Graptos commented Feb 1, 2021

  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. Падения производительности не наблюдал

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
Copy link
Owner

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

@Graptos
Copy link
Author

Graptos commented Feb 3, 2021

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

@ivanov660
Copy link
Owner

ivanov660 commented Feb 4, 2021

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants