NoSmoke Automated UI Crawler

A cross platform UI crawler which scans view trees then generate and execute UI test cases. For full set of documentation, please refer to: wiki

1. Advantages of NoSmoke:

With it you can:

2. How it works?

In order to design a multiplatform UI automation tool, the overall architcture is devided into 3 different layers.

3. Why the name?

Since all the good ones are taken, NoSmoke comes from the ideas across smoke testing, but smoke is not good for health …

4. Features

4.1 Muliplatform

NoSmoke supports UI crawling and testing for iOS, Android and PC Web, macaca-reporter is used to gather and present the crawling process. During the execution of nosmoke, the current page and relevent action info will be revealed on reporter:

For Android


For iOS


For PC-Web


4.2 Configurable

Confirguration params and configuration templates for android/iOS/web demos templates list of configuration

4.3 Hooks

There are several hook API provided to provide further space to realize your own customization. hooks reference

5. Setup

5.1. Requirements:

Note You could also check environment by macaca doctor:

$ npm i macaca-cli -g
$ macaca doctor

5.2. Setup & Run:

Step 1. Setup:

Full list of dependencies:

$ npm i macaca-android -g
$ npm i macaca-ios -g
$ npm i macaca-cli -g
$ npm i macaca-electron -g

Install nosmoke in a single line:

$ npm i nosmoke -g
Step 2. Run it:

In your workspace directory, execute the following command

# initialize macaca server
macaca server --verbose &

# initialize nosmoke

Note: For full set of command please check: nosmoke --help
Note: Invoking nosmoke itself will simply run the default demo application. To run your own application, you should put -h (which is optional) and -c (the path of the configuration file is a must) in order to run the crawler

For more information, please visit macacajs/NoSmoke