Pull to refresh
11
0
Василий Рябов @vasily-v-ryabov

Python, UI automation, pywinauto

Send message
Спасибо, только сейчас узнал, что есть хабрастатьи на английском. При подписке на узкий список хабов можно что-то упустить.

Кстати, заметил два дубликата в списке по относительному рейтингу: «Про системного администратора, обыски...» и «Русский н##бизнес».
Из наших Genotek. Там полное секвенирование генома стоит 250 тыр. У BioNova, кстати, дешевле, около 150 на наши деньги, но это в штатах. Спасибо за обзор!
Да, конечно, неплохо. Особенно, если проект небольшой и юзеров не так много, даже простое спасибо мотивирует. Но хорошо бы ещё ставить проекту звездочку. Это из программы минимум по заявкам зажравшихся мейнтейнеров. :)

Прошу прощения. Видимо, я слишком далёк от мира IoT. Не знал про этот термин. Подумал греншным делом, что cloud так перевели.

Туманные вычисления порадовали. :)

Уже куплена неделю назад. :) И коллегам нравится. На Хабре как раз месяц назад статья была с отрывком из неё, так и нашёл.

Хороший обзор, скину коллегам почитать. Из мелочей: вроде frozenset через z, и вот этот код можно было бы детальнее прокомментировать:
def func(first, second, *, kwonly):
Насчёт “GDB с плагином к Python” — это может быть чересчур, если есть Visual Studio 2017, которая поддерживает mixed Python+C отладку (это есть ещё с VS 2015 вроде, но там это сильно торомозило и роняло студию, насколько я помню).

Отличная статья! По примеру 4: есть аналогичная фишка в Python (разница между time.time() и timeit.default_timer() — такая же, и мы это видели отнюдь не в UI тестах, мы железо тестируем), ещё там же заметил опечатку в коде: в первом куске long en (должно быть long end).

Единственно, надо понимать, что Appium изначально был для мобилок и его рейтинг будет прихватывать более широкую целевую аудиторию.

Рейтинг тупо по звёздам на гитхабе. Ниже ещё есть по вопросам на StackOverflow, но там я про Appium забыл. В следующем месяце добавлю, он там будет лидером. :)

Так получилось, что pywinauto я использую с 2010 года и начал поддерживать его в опен сорсе с лета 2015-го. Поддержку UIA мы выпустили в ноябре 2016-го, а WinAppDriver появился весной 2016-го. Узнал я про WinAppDriver в июне 2017-го. В этом году гонка продолжается. Мы уже год работаем над "record-replay" фичей (планируем релизить осенью, думали, что будем первыми в опен сорсе с подобным), а Microsoft взял да и выпустил свой UI Recorder в июне этого года. Правда, я его пробовал и пока не смог получить ничего вменяемого.

Вообще, умеет. Как раз майкрософтовский WinAppDriver совместим с Appium, и там есть на 14-м месте appium-for-mac. :)

А десктоп мало чем тестируется, и не всякий. Из юзабельных — топ-12 из рейтинга, который я обновляю раз в месяц. На каждой оси — свои технологии доступа к текстовым свойствам. На Windows большинство покрывается технологией MS UI Automation API: она сложна, поэтому есть более простые в освоении библиотеки (это pywinauto, TestStack.White, MS WinAppDriver, FlaUI и Winium.Desktop). На Линуксе это AT-SPI, но там реально простых библиотек пока нет, есть зубодробительные. На макоси есть встроенный AppleScript и pyatom — очень даже годный, хоть и Python2.7 только и в установке не очень прост. Я со своими студентами пытаюсь все эти технологии собрать в pywinauto в максимально простом виде, тут ещё 2-3 года работы, учитывая, что это хобби (на основной работе я сейчас вообще не GUI занимаюсь). Ещё есть распознавалки эталонных картинок типа Sikuli, pyautogui, lackey. Они менее надёжны и подкушивают CPU, но зато универсальней не придумаешь.

Привет от декстопников. Для десктопного UI точно так же полезно детальнее указывать, где именно находится кнопка, какой у неё class_name, title и так далее. Какие-то вещи вроде ControlID или обычного индекса лучше не использовать. В общем, некоторые отличия разве что в списке стабильных и не очень стабильных пропертей/локаторов.


Что касается вменяемых ошибок, то это вообще к любому коду относится, не только к тестам.

Ну, и под инфраструктуру Selenium есть майкрософтовский WinAppDriver. Они нас внезапно опередили с релизом UI Recorder'а — они пока единственные с такой фичей в опен сорсе (правда, я ещё не пробовал, но полагаю, что он тоже на текстовых свойствах, иначе смысла нет).

Из годных топ-12 вот отсюда: https://github.com/pywinauto/pywinauto/wiki/UI-Automation-tools-ratings Из них pyautogui, sikuli и lackey работают фактически только с картинками, autopy — вообще только с голой мышкой и клавиатурой. Остальные в той или иной степени с текстовыми свойствами элементов (как правило, на одной оси). Из быстрорастущих тулов под C# можно отметить молодой проект FlaUI, автор которого занимался поддержкой TestStack.White, но плюнул и решил сделать с нуля.

SWAPY сейчас не поддерживается. Он совместим только со старой версией pywinauto 0.5.4, где был единственный backend="win32" и все методы в стиле CamelCase. Вроде бы на третьем питоне он работал. В любом случае, pywinauto 0.5.4 работает на третьем питоне, как и более новые.


Вообще, у меня студенты набросали инспектор объектов: https://github.com/pywinauto/py_inspect
Всего на 150 строк кода. Правда, полуручного генератора скриптов там нет, зато можно переключать бэкенды. В будущем мы хотим вернуться к нему и полноценно встроить в экосистему, если раньше кто-нибудь не поможет.


Сейчас главные приоритеты — это генератор скриптов в стиле "record-replay" и поддержка Линукса.

На здоровье! Осталось только machine learning прикрутить. :) Акциями же торгуют боты, почему мебелью нельзя?

Отличное начинание, молодцы! Но сайт у вас не работает. :( И ещё вопрос: насколько строгий у вас пропускной режим? Ну, и все остальные вопросы, которые на сайте, наверно, отражены.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity