Macaca is an open-source automation test solution for native, mobile, hybrid, web and mobile web application.
Macaca provides automation drivers, environmental support, peripheral tools, and integration solutions designed to address issues such as test automation, and performance on the client end.
Macaca is a kind of Monkey. Monkey testing means smart and agile testing.
Native, Web, Mobile, Hybrid and Mobile web
- Native means apps written with iOS or Android SDKs.
- Hybrid is apps created by WebView in native app.
Macaca is cross-platform. It means you can use the same API to write test scripts, and same test scripts to test your apps running on devices such as iOS, Android or desktops.
# Language Support
Macaca does not limit what languages you will use to write your tests.
- Macaca has a MIT license (opens new window).
- Macaca's App Inspector (opens new window) is web based.
- Macaca's iOS WebDriver (opens new window) is written in Swift and built in-house.
- Macaca's Android WebDrive is built in-house, and supports Android UIAutomator 2.0.
- Macaca has built-in UI recorder (opens new window) functionality.
- Macaca has built-in support for using computer vision (opens new window) to verify UI elements.
- Macaca supports major browsers such as Chrome, Firefox, Safari.
- Macaca follows W3C WebDriver Wire Protocol. It means Macaca has much better chances to be compatible with current and future web standard.
To run Macaca, you need to have
To run your test against a particular platform (iOS, Android or web browsers), you need to set up for this platform. Don't worry, we do have
macaca doctor help you inspect whether your environment is ready.
To quickly get to where you want to know, jump right in our Quick Start.
# Macaca Concepts
Macaca's core is a REST API web server. The server connects with clients, listens for requesting, executes request commands on a mobile device or a desktop browser, and responses with results conforming HTTP response protocol.
The beauty of a client/server architecture is that REST API and W3C WebDriver Wire Protocol opens the opportunities. Test codes can be written any common languages, as long as it has a http client API. On the other hand, the server can be on a different machine, or in cloud.
Besides this Macaca's core, we call it
macaca server, Macaca's extra utility tool is also server/client centric, such as UI Inspector, computer vision tool.
Macaca uses session to accept and respond requests. A client initiates a session with Macaca server by sending
POST /session request. Macaca server will response with this session with a
sessionId. The further request needs to contain this
sessionId to move forward.