Skip to content
RecipesDoc

WebdriverIO Suite, Run the Way Your CI Runs It

Certyn runs your WebdriverIO tests with your CI's command and reads the JUnit report for exact totals.

For teams with WebdriverIO tests who want Certyn to run them exactly as CI does, and keep a JUnit report.

Your setup

  • WebdriverIO tests (wdio.conf.ts or .js) in a GitHub repo.
  • CI runs them, for example npx wdio run wdio.conf.ts in GitHub Actions.
  • @wdio/junit-reporter in the config, or you want it.
  • The app is on the internet, for example staging.

Say this to Certyn

Run our WebdriverIO tests from acme/web the way our GitHub Actions workflow does, against staging, and use the JUnit report.

What Certyn does

  1. Opens a form for GH_TOKEN (Contents: Read on that repo).
  2. Reads your workflow file and package.json: the Node version, the install step, the test command and the variables the workflow sets. It uses the same on the Machine.
  3. Reads wdio.conf for the base URL and the browser. Passes the environment URL ($TARGET_BASE_URL) to it. Chromium and chromedriver are on the Machine.
  4. Runs one spec to check the setup, then the whole suite as a run.
  5. Reads the JUnit XML for exact totals and the first error of each failed test, then decides the cause of each failure.

What you get

  • A run report with failures grouped by cause: product bug, broken test, flaky test, setup problem.
  • One issue per real product bug, with evidence.
  • If you also want history from your own CI: add a step after wdio that uploads the JUnit XML to POST /api/ci/results. The ci_setup form creates the API key; save it as a CI secret. You get pass rate and flaky tests per test.

Limits

  • Without a JUnit reporter, Certyn reads the console output. Ask it to add the reporter as a pull request.
  • Results pushed from your CI give history only. They do not explain failures by themselves; ask Certyn, or let it run the suite.
  • Machines run Linux. Safari is not available. Other browsers must be installed during the run.