Roman Romanovsky, Sergey Rak - "JavaScript в IoT "IT Event
I've been surprised how easy it is today to program hardware containing Wi-Fi module and start receiving data from a chosen sensor (those perceiving motion, light or sound, etc.). Without a line in C++, all in JavaScript solely.
Together with Sergey, we'll elaborate more on how any frontend engineer can easily jumpstart his journey within the Internet of Things.
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
За последние несколько лет в мире js-разработки особое внимание получили такие проекты как AtScript, TypeScript, SoundScript, Flow, Traceur, Babel, каждый из которых пытается предоставить разработчикам некую "улучшенную" версию JavaScript. Комитет TC39 также стал очень активен и разработал стратегию развития стандарта ECMAScript с более частыми релизами. Движки JavaScript стремительно приближаются к полной поддержке ES6. Огромное количество JS-фреймворков и библиотек выбирают следующую версию стандарта уже сегодня. Это означает, что необходимо уже сегодня обратить внимание на происходящее в мире JavaScript-разработки и разобраться, что ждет язык завтра.
В своем докладе я постараюсь дать ответы на следующие вопросы:
- почему такие фреймворки и библиотеки как Angular, Ember, React начали активно и кардинально меняться;
- почему новая версия стандарта языка ES6 так долго внедряется вендорами браузеров и как TC39 решил ускорить процесс стандартизации и внедрения последующих версий ECMAScript;
- почему CoffeeScript больше не "just JavaScript", и действительно ли он сделал такой значимый вклад в следующую версию JavaScript;
- почему были созданы AtScript, TypeScript, Flow, чем каждый из них отличается от остальных, и как они влияют на дальнейшее развитие JavaScript;
- что такое Strong Mode и SoundScript;
- как начать писать ES6+ код уже сегодня.
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "IT Event
I've been surprised how easy it is today to program hardware containing Wi-Fi module and start receiving data from a chosen sensor (those perceiving motion, light or sound, etc.). Without a line in C++, all in JavaScript solely.
Together with Sergey, we'll elaborate more on how any frontend engineer can easily jumpstart his journey within the Internet of Things.
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
За последние несколько лет в мире js-разработки особое внимание получили такие проекты как AtScript, TypeScript, SoundScript, Flow, Traceur, Babel, каждый из которых пытается предоставить разработчикам некую "улучшенную" версию JavaScript. Комитет TC39 также стал очень активен и разработал стратегию развития стандарта ECMAScript с более частыми релизами. Движки JavaScript стремительно приближаются к полной поддержке ES6. Огромное количество JS-фреймворков и библиотек выбирают следующую версию стандарта уже сегодня. Это означает, что необходимо уже сегодня обратить внимание на происходящее в мире JavaScript-разработки и разобраться, что ждет язык завтра.
В своем докладе я постараюсь дать ответы на следующие вопросы:
- почему такие фреймворки и библиотеки как Angular, Ember, React начали активно и кардинально меняться;
- почему новая версия стандарта языка ES6 так долго внедряется вендорами браузеров и как TC39 решил ускорить процесс стандартизации и внедрения последующих версий ECMAScript;
- почему CoffeeScript больше не "just JavaScript", и действительно ли он сделал такой значимый вклад в следующую версию JavaScript;
- почему были созданы AtScript, TypeScript, Flow, чем каждый из них отличается от остальных, и как они влияют на дальнейшее развитие JavaScript;
- что такое Strong Mode и SoundScript;
- как начать писать ES6+ код уже сегодня.
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...Ontico
Frontend-разработчики и веб-дизайнеры решают совместную задачу – чтобы пользователь получил лучший user experience. Но часто смотрят на проблему с разных позиций — либо наилучшего технического решения проблемы, либо художественного видения мира. Различие инженерных и художественных подходов нередко приводит к конфликту интересов и снижает эффективность работы команды. Однако поле битвы мировоззрений можно превратить в совместное рабочее пространство. В качестве основного подхода к поиску оптимального процесса создания и сопровождения визуального стиля веб-сайта рассматривается подготовка User Interface Kit (или UI Kit). UI Kit содержит элементы, которые служат кирпичами при построении единообразного интерфейса корпоративных веб-сайтов.
Из предлагаемого доклада слушатели смогут узнать следующее:
– какие плюсы предоставляет декомпозиция дизайна;
– что такое UI Kit и какими свойствами он обладает;
– почему работа с UI Kit понравится и разработчикам, и дизайнерам, и даже менеджеру проекта;
– как можно реализовать UI Kit и организовать его хранение.
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Ontico
Microsoft Edge -- новый браузер от Microsoft с новым движком и новым интерфейсом.
Какие цели преследует Microsoft, и что это нововведение означает для веб-разработчиков?
Что нового в движке браузера по сравнению с IE, и как он будет развиваться дальше?
Движок Edge внутри Windows 10: хостинг сайтов внутри приложений и доступ к нативной функциональности.
Дорожная карта: к чему и когда готовиться?
С ростом кодовой базы становится все более очевидной необходимость использования компонентного подхода, когда каждая логическая часть обособлена. Если говорить про JavaScript, то в нем есть области видимости, опираясь на которые можно соорудить изолированные компоненты. Но в CSS нет подобных механизмов, поэтому и придумываются Shadow DOM (Web Components) и различные методики вроде БЭМ.
Но что если взглянуть на проблему под другим углом? Адаптируя подходы, что уже используются для других задач, можно получить куда больше выгоды, чем просто изолированные стили!
Подробная статья по докладу: https://habrahabr.ru/company/mobileup/blog/314838/
Team Lead MobileUp Константин Цховребов выступил в Новосибирске на IT-конференций DevFest.
Поделиться азами гибкой простой и функциональной навигации по экранам при использовании MVP в Android. Рассказал, как сделать код навигации чистым и lifecycle-безопасным, а любую, даже самую навороченную цепочку переходов по экранам – делом пары строк.
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
О том, как перестать вручную контролировать DOM, писать логику навигаций и почему DOM-шаблонизация — это классно, а так же немного самокритики и сравнительных тест-кейсов.
В предыдущем докладе были раскрыты основные секреты и хитрости разработки на Unity Android. На этот раз от теории переходим к практике. Будут показаны примеры и различные демо озвученых ранее технологий. Вы узнаете как написать android java plugin, использовать сторонние android java libraries в Вашем Unity проекте и многое другое.
Кроме доклада, в течении всей конференции, буду рад ответить на Ваши вопросы по Unity Android и помочь практически. Приходите учиться, приходите за ответами, приходите с Вашими Unity проектами. Будет интересно :)
Разработка WPF приложений в стиле ViewModel FirstDenis Tsvettsih
Презентация к докладу «Разработка WPF приложений в стиле ViewModel First» с одиннадцатой конференции dotnetconf (Челябинск, 31 октября 2015)
http://dotnetconf.ru/materialy/viewmodelfirst
"Electron. How the most modern framework works" Oleksii HolubievFwdays
Have you ever wondered why all the top companies are developing their desktop versions of applications? Spotify, Teams, Skype, WhatsApp, VS Code, etc. All these modern programs use one framework and that is Electron. But why? What's in it that WPF or JavaFX doesn't have? A small spoiler - JavaScript. But this is not the only thing.
So in this speech we:
1. Let's remember the history of origin and understand who really maintains this product
2. Let's look under the hood and see how it really works
3. Let's talk about why VS Code has so many processes
4. Let's deal with the main killer features
5. Let's evaluate the framework cons
6. Let's meet the community
This topic is suitable for everyone who is already familiar with JS and is interested in desktop applications.
Субъективная точка зрения на фронтенд разработку.
Площадка: IT-бар КЛЮЧ, https://vk.com/event69759919
Видео с доклада: https://www.youtube.com/watch?v=pyAYbbDJjPo
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...Ontico
Frontend-разработчики и веб-дизайнеры решают совместную задачу – чтобы пользователь получил лучший user experience. Но часто смотрят на проблему с разных позиций — либо наилучшего технического решения проблемы, либо художественного видения мира. Различие инженерных и художественных подходов нередко приводит к конфликту интересов и снижает эффективность работы команды. Однако поле битвы мировоззрений можно превратить в совместное рабочее пространство. В качестве основного подхода к поиску оптимального процесса создания и сопровождения визуального стиля веб-сайта рассматривается подготовка User Interface Kit (или UI Kit). UI Kit содержит элементы, которые служат кирпичами при построении единообразного интерфейса корпоративных веб-сайтов.
Из предлагаемого доклада слушатели смогут узнать следующее:
– какие плюсы предоставляет декомпозиция дизайна;
– что такое UI Kit и какими свойствами он обладает;
– почему работа с UI Kit понравится и разработчикам, и дизайнерам, и даже менеджеру проекта;
– как можно реализовать UI Kit и организовать его хранение.
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Ontico
Microsoft Edge -- новый браузер от Microsoft с новым движком и новым интерфейсом.
Какие цели преследует Microsoft, и что это нововведение означает для веб-разработчиков?
Что нового в движке браузера по сравнению с IE, и как он будет развиваться дальше?
Движок Edge внутри Windows 10: хостинг сайтов внутри приложений и доступ к нативной функциональности.
Дорожная карта: к чему и когда готовиться?
С ростом кодовой базы становится все более очевидной необходимость использования компонентного подхода, когда каждая логическая часть обособлена. Если говорить про JavaScript, то в нем есть области видимости, опираясь на которые можно соорудить изолированные компоненты. Но в CSS нет подобных механизмов, поэтому и придумываются Shadow DOM (Web Components) и различные методики вроде БЭМ.
Но что если взглянуть на проблему под другим углом? Адаптируя подходы, что уже используются для других задач, можно получить куда больше выгоды, чем просто изолированные стили!
Подробная статья по докладу: https://habrahabr.ru/company/mobileup/blog/314838/
Team Lead MobileUp Константин Цховребов выступил в Новосибирске на IT-конференций DevFest.
Поделиться азами гибкой простой и функциональной навигации по экранам при использовании MVP в Android. Рассказал, как сделать код навигации чистым и lifecycle-безопасным, а любую, даже самую навороченную цепочку переходов по экранам – делом пары строк.
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
О том, как перестать вручную контролировать DOM, писать логику навигаций и почему DOM-шаблонизация — это классно, а так же немного самокритики и сравнительных тест-кейсов.
В предыдущем докладе были раскрыты основные секреты и хитрости разработки на Unity Android. На этот раз от теории переходим к практике. Будут показаны примеры и различные демо озвученых ранее технологий. Вы узнаете как написать android java plugin, использовать сторонние android java libraries в Вашем Unity проекте и многое другое.
Кроме доклада, в течении всей конференции, буду рад ответить на Ваши вопросы по Unity Android и помочь практически. Приходите учиться, приходите за ответами, приходите с Вашими Unity проектами. Будет интересно :)
Разработка WPF приложений в стиле ViewModel FirstDenis Tsvettsih
Презентация к докладу «Разработка WPF приложений в стиле ViewModel First» с одиннадцатой конференции dotnetconf (Челябинск, 31 октября 2015)
http://dotnetconf.ru/materialy/viewmodelfirst
"Electron. How the most modern framework works" Oleksii HolubievFwdays
Have you ever wondered why all the top companies are developing their desktop versions of applications? Spotify, Teams, Skype, WhatsApp, VS Code, etc. All these modern programs use one framework and that is Electron. But why? What's in it that WPF or JavaFX doesn't have? A small spoiler - JavaScript. But this is not the only thing.
So in this speech we:
1. Let's remember the history of origin and understand who really maintains this product
2. Let's look under the hood and see how it really works
3. Let's talk about why VS Code has so many processes
4. Let's deal with the main killer features
5. Let's evaluate the framework cons
6. Let's meet the community
This topic is suitable for everyone who is already familiar with JS and is interested in desktop applications.
Субъективная точка зрения на фронтенд разработку.
Площадка: IT-бар КЛЮЧ, https://vk.com/event69759919
Видео с доклада: https://www.youtube.com/watch?v=pyAYbbDJjPo
Steelcon 2014 - Process Injection with Pythoninfodox
This is the slides to accompany the talk given by Darren Martyn at the Steelcon security conference in July 2014 about process injection using python.
Covers using Python to manipulate processes by injecting code on x86, x86_64, and ARMv7l platforms, and writing a stager that automatically detects what platform it is running on and intelligently decides which shellcode to inject, and via which method.
The Proof of Concept code is available at https://github.com/infodox/steelcon-python-injection
Por lo general, gastamos demasiada energía pretendiendo ser quien deberíamos y resistiendo quienes somos en realidad. Mantener ese personaje vivo es un encargo demasiado demandante como para tener tiempo de hacer las cosas que te hacen sentir paz y felicidad. Puede que hoy sea el momento de permitirte mostrar al mundo tu verdadera naturaleza, y empezar a ser la diferencia a tu alrededor. #dejateser
GUI тесты на чистом питоне: Win32, MS UI Automation и щепотка чёрной магииVasily Ryabov
Доклад с NN Python Meetup 2016 December, 10.
GUI tests in pure Python: Win32 API, MS UI Automation & Python black magic
Сначала увидим, какие open source инструменты есть в этой области, какие из них поддеживают Python и какие на нём полностью написаны. Более детально разберём тестирование Windows приложений с помощью разных accessibility технологий и библиотеку pywinauto, написанную на чистом питоне.
Pywinauto объединяет в себе подход на основе Win32 API (как AutoIt) и технологию MS UI Automation (как TestStack.White или Winium.Desktop на C#). Высокоуровневый и внешне простой интерфейс pywinauto использует многослойную концепцию, позволяющую буквально парой строк выразить нетривиальные вещи. А новая расширяемая архитектура позволяет также писать accessibility плагины (backends) для разных оконных систем и платформ.
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
Предлагаем вашему вниманию презентацию «BDD JBehave and Cucumber JVM + Appium for efficient cross-platform Mobile Automation». Этой презентацией сопровождался доклад Антона Семенченко, прочитанный 29 июня на конференции MobileOptimized 2014 в Минске.
Мир мобильных телефонов очень сильно изменил нашу жизнь. В наше время невозможно представить современного человека, без этого чудо устройства. На рынке появляется все больше устройств и приложений. И чтобы удобнее пользоваться этими приложениями пользователи выбирают “умные” телефоны, или как их еще принято называть смартфоны. В своем докладе я хочу поделиться своим опытом автоматизации приложений под Android и iOS. Я расскажу о том, какие инструменты автоматизации я использовал. Поговорим о недостатках этих инструментов и какие из них стоит использовать у себя на проекте.
Основные новшества Java 9, которые, на мой взгляд, наиболее актуальны.
Здоровая критика и дополнения приветствуются. Есть текстовый документ, где всё это расписано немного подробнее.
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Рано или поздно возникает необходимость в собственных инструментах по разным причинам: либо не хватает готовых, либо есть какая-то особенность в проекте. Разработка инструментов, работающих в браузере, является непростой задачей. Самое сложное — чтобы они умели работать удаленно, вне страницы. Это многих пугает — нужно много сделать и во многом разобраться. Но если большая часть проблем уже решена, и можно сосредоточиться лишь на основной функции инструмента? Что если такие инструменты смогут работать в произвольном WebView, будь оно встроено в браузер, редактор или другое приложение на любом устройстве? Доклад про удалённые инструменты: какие есть сложности и как их обойти, как перестать бояться и начать делать инструменты под свои задачи и технологический стек.
Тестирование графического интерфейса пользователя является одним из основных видов тестирования графических приложений. В докладе будут рассмотрены задачи и особенности такого тестирования.
Далее будут рассмотрены плюсы и минусы использования стандартной Qt библиотеки QTest, и представлен проект QSpec, как альтернатива QTest. Также будут представлены примеры использования QSpec и дальнейшие планы по развитию этого проекта.
Адрес проекта: https://github.com/ugeneunipro/QSpec
Similar to Автоматизируем GUI тесты на питоне (20)
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Автоматизируем GUI тесты на питоне
1. Software quality assurance days
20 Международная конференция
по вопросам качества ПО
sqadays.com
Минск. 24–26 ноября
Василий Рябов
Aquantia. Нижний Новгород, Россия
Автоматизируем GUI тесты на питоне:
как подружились pywinauto и MS UI
Automation
2. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Автоматизация десктопного GUI
Задачи:
(1) уметь управлять GUI приложением
(2) уметь получать текстовые данные из него
Проблема: нет единых стандартов
- разные оконные / widget системы
- огромное разнообразие фреймворков и библиотек
3. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Известные подходы
1. Координатный метод (autopy, PyAutoGUI)
click(120, 170)
type_keys(“If I was lucky, I'd be at the edit box.”)
2. Распознавание изображений (Sikuli, Lackey)
find(“OK_button.png”).click()
3. Accessibility технологии
btn = window(title_re=”Browse.*”, class_name=”Button”)
btn.get_text()
4. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Accessibility технологии
MS UI Automation
WinForms, WPF, Qt, браузеры,
Store apps (Inspect.exe)
Apple Accessibility API
Cocoa, ...
AT SPI (через Dbus)
Qt, GTK, wxWidgets, ...
Win32 API
MFC, VCL, частично WinForms
(Spy++)
5. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Open Source Tools for Win32 API
AutoIt
Большое сообщество, pyautoit (Sep, 2014)
Basic-like language, нет отладчика, нет планов на .NET
AutoHotKey
.ahk скрипты (исходный код на C++), есть COM интерфейс
pywinauto
Чистый Python, красивый ООП, permissive license
6. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Пример скрипта на pywinauto
7. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
История pywinauto
(2006-2010) Mark McMahon, 32-bit Python, pywinauto 0.4.0
(2010-2011) портирована на 64-битный Python (Intel)
2014 Python 2/3 compatibility (2.6+, 3.3+)
2015 внутренний fork (Intel) вышел как 0.5.0+
2016 MS UI Automation есть в 0.6.0 (31 октября)
есть планы ещё на 2 года минимум
8. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
MS UI Automation
- Native COM interface (UIAutomationCore.dll)
- .NET interface
Open Source Tools:
TestStack.White (C#) - with a long history (563 stars)
Winium.Desktop (C#) - young but good (105 stars)
9. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Проблемы MS UI Automation
- Громоздко и сложно для изучения
- В .NET интерфейсе есть ошибки, которых нет
в нативном (UiaComWrapper)
- Custom COM interface (не IDispatch)
- Не поддерживает Java AWT/Swing и GTK+
10. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Решение для Python
IronPython
пытались использовать .NET интерфейс
есть ошибка с ArrayList^ (нужен костыль на C#)
CPython
пакет comtypes поддерживает custom COM интерфейсы
Ограничения: недогружает регистрацию
custom controls & custom properties
11. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Изменения в pywinauto
Низкоуровневый слой (backend)
“win32” (Win32 API, pywinauto 0.5.4)
“uia” (MS UI Automation, pywinauto 0.6.0+)
Было: app = Application().start(“sample.exe”)
Стало: app = Application(backend=”uia”).start(“sample.exe”)
12. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Объект Application
app = Application().start(“sample.exe”)
app = Application(backend='win32').connect(path=”sample.exe”)
app = Application(backend='uia').connect(title_re=”^.*Sample$”)
app.kill_()
# process-agnostic way
desktop = Desktop(backend=”uia”)
13. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Спецификация окна/контрола
WindowSpecification
описание критериев поиска (title, class_name, ...)
элемент может ещё/уже не существовать
умеет искать контролы, дожидаться их исчезновения, ...
Wrapper
объект, привязанный к реальному контролу
умеет посылать команды, получать данные
14. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Как создать описание?
app.MainWindow.OK
app[“Main Window”][“OK”]
app.window(best_match=”Main Window”)
.child_window(best_match=”OK”)
app.MainWindow.child_window(title=”OK”,
работает быстрее ---> class_name=”Button”)
15. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Подъёмник за гобеленом
app.Properties.OK.click()
работает так же, как
app.Properties.OK.wrapper_object().click()
Но:
app.Properties.OK возвращает WindowSpecification
app.Properties.OK.wrapper_object() ← ButtonWrapper
17. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Пример для explorer.exe
18. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Пример для explorer.exe
19. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Где взять имена для доступа?
app.MainWindow.print_control_identifiers()
ComboBox - 'Gray' (L789, T594, R906, B615)
'Border sizeComboBox' 'ComboBox' ()
Button - 'Set' (L1083, T592, R1157, B615)
'Button' 'Button0' 'Button1' 'Set' 'SetButton' ()
Button - 'OK' (L1048, T695, R1123, B718)
'Button2' 'OK' 'OKButton' ()
Button - 'Cancel' (L1129, T695, R1204, B718)
'Button3' 'Cancel' 'CancelButton' ()
20. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Способы делать магию
1. By title: app.Properties.OK.click()
2. By title+type: app.PropertiedDialog.OKButton.click()
3. By type+index: app.Properties.Button3.click()
4. By top-left label: app.SaveAs.FileNameEdit.set_text(“”)
5. By item text:
app.Properties.TabControlSharing.select(“General”)
21. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Обработка ожиданий
window = app.Window_(title=”Main Window”)
window.wait(“active”, timeout=20)
window.wait_not(“visible enabled”)
window.exists() / .visible() / .enabled() / .active()
# wait until CPU usage < 2%
app.wait_cpu_usage_lower(threshold=2, timeout=10)
22. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
GUI тесты это ...
23. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Общие проблемы GUI Automation
Нужен активный desktop
чтобы работал ввод: click_input(), type_keys(“”)
Разовый запуск по RDP (Remote Desktop)
держим RDP не свёрнутым, не в полном экране → OK
Для регулярного запуска под Continuous Integration в лабе
настраиваем autologon
ставим VNC server (можно делать безопасный disconnect)
не запускаем Jenkins slave как сервис
24. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Другие платформы
Linux (есть pyatspi2 и LDTP)
реализованы mouse/keyboard модули через python-xlib
AT SPI: пока только планы
OS X (есть pyatom)
простой прототип для окон верхнего уровня
Java (есть Jemmy на Java)
Python-to-Java bridge: JPype (кросс-платформенный)
25. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Ещё больше фич
win32_hooks (a.k.a. hot keys)
работают, но будут улучшены и оттестированы в 0.6.1
Automation Event Handlers (MS UI Automation)
обработчики на любое событие (знаем, как сделать)
Тестирование локализаций
1 скрипт для разных языков (есть тесты, нет реальных примеров)
Поиск типичных ошибок на окне
есть простые проверки, нужно расширять и ревьюить
26. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Процесс разработки
“Unit” тесты на Windows/Linux (модуль unittest)
Cloud Continuous Integration
AppVeyor CI
Travis CI
Code coverage ~95% (codecov.io)
Static analyzers
Landscape.io Quantified Code Codacy
27. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Благодарности
Valentin Kroupkin (Auckland, New Zeland)
MS UI Automation, тесты, Continuous Integration & more
Denis Matiychuk (Kharkiv, Ukraine)
GUI инспектор объектов + генератор кода: SWAPY
Alexander Rumyantsev (Lobachevsky State University, NN)
MS UI Automation, multi-backend
Ivan Magazinnik (Lobachevsky State University, NN)
модули mouse/keyboard на Linux
28. Автоматизируем GUI тесты на питоне: как подружились pywinauto и MS UI Automation
Контакты
@gmail.com & Skype: vasily.v.ryabov
сайт: pywinauto.github.io
GitHub: pywinauto/pywinauto
Доки: pywinauto.readthedocs.io
Русскоязычный чат: room on Gitter
tag “pywinauto” on StackOverflow