appium-solo

1.0.2 • Public • Published

Appium Solo

Having one Appium server for a device farm, on some occasions, may result in flaky tests, non-responding Appium (resulting with various bash scripts to kill it), and other problems that stem from the fact that one Appium server is very stateful.

In fact: why not bring up an Appium, run one test session, and kill it when done?

This is Appium Solo.

Quick Start

In your CI system, you should use one Appium port per job, and fix a device, iOS sim, or Emulator to your capabilities.

This is a simple approach to E2E CI.

const Solo = require('appium-solo')
 
// somewhere in your before() block:
  const solo = new Solo()
  solo.doctor()
  solo.start(desired, ()=>driver.init(desired))
      .then(()=>done())
      .catch((err)=>driver.quit())

Webdriver.io

Appium-Solo includes a quick integration for webdriver.io.

In your wdio.conf.js include this:

    services: [
      require('appium-solo/wdio')
    ],

See the webdriver.io example for more.

Options

There are various knobs you can use, such as to specify locations of binaries, timeouts, ports, Genymotion emulator (see below) and others. See index.js for more.

Android Emulators

Appium launches an iOS simulator when its needed. However, it doesn't do so for Android.

If you install Genymotion, Appium-Solo will launch a Genymotion simulator for you the same way Appium does for iOS.

Contributing

Fork, implement, add tests, pull request, get my everlasting thanks and a respectable place here :).

Thanks:

To all Contributors - you make this happen, thanks!

Copyright

Copyright (c) 2016 Dotan Nahum @jondot. See LICENSE for further details.

Package Sidebar

Install

npm i appium-solo

Weekly Downloads

2

Version

1.0.2

License

MIT

Last publish

Collaborators

  • jondot