PyUIA stands for Python UI Automation. It is a library/framework aiming to facilitate the implementation of UI test automation on various platforms, including mobile and desktop OSs.
UI test automation is brittle to (inevitable) changes in UI. PyUIA emphasizes keyword-driven testing approach and Page Object Pattern, and that results in test code organized in a more manageable way that scales.
The diagram below indicates where PyUIA fits into.
.------------------------.
| Requirements |
|------------------------|
| Keywords |
'------------------------'
---.
.------------------------. |
| Keyword Impl. | |
'----------/---\---------' |
/ \ |
.-------v---. .---v------. > Where PyUIA fits into
| Page Obj. | | Page Obj.| |
| (Android) | | (iOS) | |
'-----------' '----------' |
---'
.------------------------.
| Testing Tools |
|------------------------|
| Application Under Test |
'------------------------'
For a real example about how PyUIA works with WordPress for Android, refer to imsardine/pyuia-example-wordpress. Here is the testing result worth looking at. Do not miss embedded screenshots and SEPERATED device logs collected during each keyword execution.
If you have Python with Pip or EasyInstall installed, simply run:
pip install pyuia
or
easy_install install pyuia
Alternatively, if you perfer to install it from source, just clone the repository and run:
python setup install
pyuia.robot.BaseAppLibrary
- A base class for creating AN Application Library for your app.pyuia.robot.BasePageLibrary
- A base class for creating Page/Screen Libraries for each page/screen (object) you are going to model.
pyuia.PageObject
- A generic (technology-independent) implementation of Page Object Pattern. It provides several utility methods for asserting/waiting the presence/absence of UI elements.pyuia.selenium.SeleniumPageObject
- A base class for creating page objects that drive Selenium internally.pyuia.appium.AppiumPageObject
- A base class for creating page objects that drive Appium internally.
MIT