TestRelic AI
Go to App

Package Overview

Overview of the @testrelic/appium-analytics package — what it provides, how to install it, and its exports.

@testrelic/appium-analytics is the SDK package for Appium mobile test analytics. It integrates into WebdriverIO as a service (data collection) and a reporter (report writing), capturing device logs, WebDriver commands, network traffic, screenshots, and video from your Android and iOS tests.

Service hooks
Reporter flush
Device and driver events
JSON and HTML artifacts

What does this package provide?

ExportImport pathWhat it does
TestRelicService@testrelic/appium-analytics/serviceWDIO service — runs alongside the live Appium session to collect data per test
TestRelicReporter@testrelic/appium-analyticsWDIO reporter — builds the JSON/HTML report after all tests complete
mergeReports()@testrelic/appium-analytics/mergeProgrammatic API to merge reports from multiple WDIO workers
testrelic-appiumCLI binarymerge, serve, and open report commands

How do I install it?

AI Prompt — Install and configure
Set up @testrelic/appium-analytics in this WebdriverIO project:

1. Run: npm install @testrelic/appium-analytics
2. Run: npm install --save-dev webdriverio @wdio/reporter
3. In wdio.conf.ts:
   - Add TestRelicService (from '@testrelic/appium-analytics/service') to services with options:
       includeDeviceLogs: true, screenshotOnEvery: 'failure'
   - Add TestRelicReporter (from '@testrelic/appium-analytics') to reporters with options:
       outputPath: './test-results/testrelic-timeline.json', openReport: true
   - Add onComplete hook: await TestRelicReporter.finalize(process.cwd())
Show me the complete updated wdio.conf.ts.

Quick configuration

Add both plugins to wdio.conf.ts and call TestRelicReporter.finalize() in onComplete:

wdio.conf.ts
import { join } from 'node:path';
import { TestRelicService } from '@testrelic/appium-analytics/service';
import { TestRelicReporter } from '@testrelic/appium-analytics';

export const config = {
  // ...capabilities, framework, specs...

  services: [
    [TestRelicService, {
      includeDeviceLogs: true,
      includeNetworkLogs: true,
      screenshotOnEvery: 'failure',
    }],
  ],

  reporters: [
    'spec',
    [TestRelicReporter, {
      outputPath: './test-results/testrelic-timeline.json',
      openReport: true,
    }],
  ],

  async onComplete() {
    await TestRelicReporter.finalize(process.cwd());
  },
};

The service and reporter work together: the service captures raw data during each test; the reporter assembles and writes the final report after all tests finish.

What's next?

Using Playwright for browser testing?

For the @testrelic/playwright-analytics package, see the Playwright overview.

Was this page helpful?

On this page