How to integrate using Appium Node?

High Confidence (77%)

How to Integrate Appium (Node) with Genymotion?

To run Appium tests using Node.js on Genymotion virtual devices (Desktop or SaaS), simply follow some simple configuration steps. Below, we describe the most common scenarios:

---

1️⃣ Genymotion Installation and Configuration

| Type | Steps | Notes | |------|--------|-------------| | Genymotion Desktop | 1. Download and install the latest version (Windows/macOS/Linux) from the official website. <br>2. Open the emulator and create a Virtual Device (you can choose the latest Android image). | Genymotion Desktop does not work on Windows 7. | | Genymotion SaaS | 1. Create an account on <https://cloud.genymotion.com> (free access with credits). <br>2. On the dashboard, start one or more virtual devices (you can set the number of instances). | SaaS devices are accessible via adb on port localhost:XXXXX (the port number varies). |

---

2️⃣ Install Node.js Dependencies

# 1. Create a project (if it does not exist yet)
npm init -y

# 2. Install Appium and WebdriverIO libraries (or pure Webdriver)
npm install --save-dev appium webdriverio

> Tip: If you want to use WebdriverIO, just install the package @wdio/appium-service.

---

3️⃣ Connect Appium to Genymotion

3.1. Using Genymotion Desktop

// appium.config.js (for WebdriverIO) or in your test script
const wdio = require('webdriverio');

const opts = {
  path: '/wd/hub',
  port: 4723,
  capabilities: {
    platformName: 'Android',
    platformVersion: '11.0',   // or the version of your Virtual Device
    deviceName: 'Genymotion',  // free name
    udid: 'emulator-5554',    // usually the ID of your emulator
    app: '/path/to/your/app.apk',
    automationName: 'UiAutomator2',
  }
};

async function main () {
  const client = await wdio.remote(opts);
  // ... your tests
  await client.deleteSession();
}
main();

  • Note: On Genymotion Desktop, the emulator starts adb automatically. You can use adb devices to verify the ID (emulator-5554 or similar).

3.2. Using Genymotion SaaS

1. Start devices via gmsaas CLI

   gmsaas start --udid 1 --device-name "Pixel_5" --count 2
   
(See the complete documentation at https://genymotion.com/blog/tutorial)

2. Get the udid SaaS devices receive udid in the format localhost:PORT. Use the port number that appears in the CLI output.

3. Test with Appium

   const opts = {
     path: '/wd/hub',
     port: 4723,
     capabilities: {
       platformName: 'Android',
       deviceName: 'GenymotionSaaS',
       udid: 'localhost:5555',   // SaaS port
       app: '/path/to/your/app.apk',
       automationName: 'UiAutomator2',
     }
   };
   

> Reference Link: Tutorial “Parallel tests with Appium and Genymotion SaaS” – <https://genymotion.com/blog/tutorial-catergories/automated-tests-ci> (last updated 2025-06-30).

---

4️⃣ Run the Tests

# If using WebdriverIO
npx wdio run wdio.conf.js

To run parallel tests (multi-instance) with SaaS, simply create multiple session objects, each pointing to a different udid (localhost:5555, localhost:5556, etc.). Genymotion SaaS allows rapid scaling.

---

5️⃣ CI Integration (optional)

  • CircleCI / GitHub Actions: use the Docker image genymotion/genymotion:latest and follow the tutorials “Mobile Automated Tests with CircleCI and Genymotion SaaS” (<https://genymotion.com/blog/tutorial-catergories/automated-tests-ci>).
  • Bitrise / Jenkins: there are specific tutorials on the website, such as “Use Bitrise with Genymotion SaaS” and “