Skip to main content

Qyrus

๐Ÿงช

Qyrus

Run a Qyrus web-test suite and wait for the result

The Qyrus node triggers a web-test suite in Qyrus and polls the run until it completes. It returns the run status, an overall pass/fail result, a link to the report, and case and scenario counts. Use it to gate deployments on automated UI tests or to fold regression suites into a larger workflow.

Common uses include:

  • Running a regression suite as part of a release workflow.
  • Kicking off a smoke test after a deployment and waiting for the verdict.
  • Blocking downstream steps until a UI test suite passes.
  • Emailing suite results to a distribution list on completion.

Before You Startโ€‹

What you may needWhere to set it upWhy it matters
Qyrus connectionQyrus connection typeStores the API key used to authenticate and derive the Qyrus gateway.
Team, project, and suite namesQyrusThe action identifies the suite to run by team, project, and suite name.
A Qyrus API keyQyrus accountThe connector authenticates with the x-api-key header.

Connectionโ€‹

The Qyrus action requires a Qyrus connection, referenced by connectionId. The connection is a QyrusConnectionDetails record with these fields:

FieldRequiredDescription
apiKeyYesQyrus API key in the form sk_<env>_<uuid>
gatewayUrlOverrideNoExplicit gateway URL that overrides the value derived from the key

The connector authenticates with the x-api-key header and a scope: NODE_CLI header. The gateway URL is derived from the environment segment of the API key (sk_<env>_<uuid>) unless gatewayUrlOverride is set.

Configure the connection under Connections > Qyrus in the Global Configurator, then reference it from the step.

Actionsโ€‹

ActionDescription
qyrus:runWebTestTrigger a web-test suite and poll until it completes

qyrus:runWebTestโ€‹

Triggers a Qyrus web-test suite, then polls its status roughly every 30 seconds until the run finishes or the wait timeout is reached. Parameters are read from the qyrusRunWebTestDetails configuration key.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the Qyrus connection
teamNamestringYes--Qyrus team that owns the suite
projectNamestringYes--Project containing the suite
suiteNamestringYes--Web-test suite to run
browserstringNo--Browser to run the suite in
browserOSstringNo--Operating system for the browser
emailIdstringNo--Email address to receive the result
onErrorContinuebooleanNofalseContinue the suite past a failed test instead of stopping
maxWaitMinutesintegerNo60Maximum time to poll before timing out

Example: Run a checkout regression suite

FieldValue
connectionIdqyrus-prod
teamNameWeb QA
projectNameStorefront
suiteNameCheckout Regression
browserchrome
maxWaitMinutes30

What happens:

  1. The node authenticates with the Qyrus gateway derived from the connection's API key.
  2. It triggers the named suite and receives a runId.
  3. It polls the run status about every 30 seconds until the run completes or maxWaitMinutes elapses.
  4. On completion it returns the result, report URL, and case/scenario counts. The step is COMPLETED only when result is PASS.

Outputโ€‹

FieldTypeDescription
runIdstringIdentifier of the triggered run
statusstringRun lifecycle status
resultstringOverall outcome: PASS or FAIL
reportUrlstringLink to the Qyrus run report
totalTestCasesintegerTotal test cases in the run
passTestCasesintegerTest cases that passed
failTestCasesintegerTest cases that failed
passScenariosintegerScenarios that passed
failScenariosintegerScenarios that failed
scriptResultsarrayPer-script result details
summarystringHuman-readable run summary

Result handling: The step completes with status COMPLETED only when result is PASS. If the run finishes with result of FAIL, the step is marked FAILED with error type TEST_FAILED, while the full result payload (report URL and counts) remains available for inspection.

Example output:

{
"runId": "run-8f21c",
"status": "COMPLETED",
"result": "PASS",
"reportUrl": "https://gateway.qyrus.com/reports/run-8f21c",
"totalTestCases": 24,
"passTestCases": 24,
"failTestCases": 0,
"passScenarios": 6,
"failScenarios": 0,
"summary": "All 24 test cases passed across 6 scenarios"
}

Common Error Scenariosโ€‹

ErrorTypeLikely CauseWhat to Check
Missing parameterVALIDATION_ERRORA required field (connectionId, teamName, projectName, suiteName) is blankProvide all required parameters
Team, project, or suite not foundNOTFOUND_ERRORA name does not match a Qyrus team, project, or suiteVerify the exact names in Qyrus; the connector reports "not found" messages for the missing entity
Test failureTEST_FAILEDThe suite ran but finished with result of FAILOpen the reportUrl to review failing cases; this is a test outcome, not a configuration error
Access blockedHTTP 503The caller's IP is not whitelisted at the Qyrus gatewayAsk the Qyrus administrator to whitelist the platform's outbound IP
Run timeout--The run did not complete within maxWaitMinutesIncrease maxWaitMinutes for long suites, or confirm the run is progressing in Qyrus

Best Practicesโ€‹

  • Match names exactly. Team, project, and suite names must match Qyrus exactly. Store them in global variables to avoid typos and simplify updates.
  • Size the wait to the suite. Set maxWaitMinutes above the suite's typical runtime so the node does not time out before the run finishes.
  • Gate on the result. Because the step fails with TEST_FAILED when the suite fails, you can branch downstream steps on success without parsing the output.
  • Whitelist the platform IP. A 503 usually means the outbound IP is not whitelisted at the Qyrus gateway โ€” arrange this with the Qyrus administrator before running in production.
  • Send result emails. Set emailId to have Qyrus deliver the run report to stakeholders automatically.
  • Keep the API key in the connection. The gateway is derived from the sk_<env>_<uuid> key, so store the key in the connection rather than passing it inline.