Skip to content
RecipesDoc

Desktop App (Windows or macOS) Through Your Appium Server

Certyn tests your Windows or macOS desktop app through an Appium server on a machine you own.

For teams with a native desktop app on Windows or macOS.

Your setup

  • A Windows or macOS machine with your app installed.
  • Appium on that machine, with the Windows driver or the Mac2 driver.
  • A self-hosted Certyn runner on the same machine, or a tunnel to Appium.

Say this to Certyn

Set up testing for our Windows desktop app. Appium runs on our test PC in the office.

What Certyn does

  1. Helps you prepare the machine if needed:
    • Windows: appium driver install --source=npm appium-windows-driver, and Developer Mode on in Windows settings.
    • macOS: appium driver install mac2. macOS asks for Accessibility permission on the first session.
  2. Opens the runner form (runner_setup). You run the docker run command on that machine. Certyn waits until the runner is online and sends the project's runs to it.
  3. Opens the Appium setup form for your own server. Desktop apps skip the device-cloud screens. You enter:
    • the server URL: http://host.docker.internal:4723 from the runner, or the tunnel's HTTPS URL;
    • the app: on Windows, the path to the .exe (APPIUM_APP); on macOS, the bundle id (APPIUM_APP_ID).
  4. Saves the APPIUM_* variables and sets the project type to appium.
  5. Offers a first run that opens the app and checks the main window. It asks before it starts.

What you get

  • Runs that click, type and read your app's windows, with screenshots and each step.
  • One Certyn issue per real product bug, with evidence.

Limits

  • The device-cloud setup is for phones only. A desktop app needs your own Appium server.
  • The setup form cannot test a private server from the cloud. The first run checks it from the runner.
  • A tunnel URL is public while it is up, and an ngrok URL changes on each restart. The runner is the safer choice.
  • Appium needs the machine on, with a user signed in to the desktop, while runs go.