@wdio/appium-service

A WebdriverIO service to start & stop Appium Server

Usage no npm install needed!

<script type="module">
  import wdioAppiumService from 'https://cdn.skypack.dev/@wdio/appium-service';
</script>

README

WebdriverIO Appium Service

Handling the Appium server is out of scope of the actual WebdriverIO project. This service helps you to run the Appium server seamlessly when running tests with the WDIO testrunner. It starts the Appium Server in a child process.

Installation

The easiest way is to keep @wdio/appium-service as a devDependency in your package.json, via:

npm install @wdio/appium-service --save-dev

Instructions on how to install WebdriverIO can be found here.

Configuration

In order to use the service you need to add appium to your service array:

// wdio.conf.js
export.config = {
    // ...
    port: 4723, // default appium port
    services: ['appium'],
    // ...
};

Options

The following options can be added to the wdio.conf.js file. To define options for the service you need to add the service to the services list in the following way:

// wdio.conf.js
export.config = {
    // ...
    port: 4723, // default appium port
    services: [
        ['appium', {
            // Appium service options here
            // ...
        }]
    ],
    // ...
};

logPath

Path where all logs from the Appium server should be stored.

Type: String

Example:

export.config = {
    // ...
    services: [
        ['appium', {
            logPath : './'
        }]
    ],
    // ...
}

command

To use your own installation of Appium, e.g. globally installed, specify the command which should be started.

Type: String

Example:

export.config = {
    // ...
    services: [
        ['appium', {
            command : 'appium'
        }]
    ],
    // ...
}

args

Map of arguments for the Appium server, passed directly to appium.

See the documentation for possible arguments. The arguments should be supplied in lower camel case, so --pre-launch true becomes preLaunch: true or passed as an array.

Type: Object or Array

Default: {}

Example:

export.config = {
    // ...
    services: [
        ['appium', {
            args: {
                // ...
                debugLogSpacing: true,
                platformName: 'iOS',
                // ...
            }
            // or
            // args: ['-p', '4722', '--relaxed-security', '--log-level', 'info:info']
        }]
    ],
    // ...
}

For more information on WebdriverIO see the homepage.