Skip to content

Latest commit

 

History

History
72 lines (54 loc) · 2.63 KB

README.md

File metadata and controls

72 lines (54 loc) · 2.63 KB

PyUIA

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.

Installation

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

Robot Framework Keyword Implementation

  • 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.

Page Object Implementation

  • 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.

License

MIT