Using Post-Test & Post-Orchestration Extensions

Functionize provides the ability to run Extensions after a test or orchestration completes. These post-hook Extensions are often used for integrations—such as pushing results into a test management system, updating dashboards, or notifying downstream services.

By running after execution, post-hook Extensions have access to both overall test results and step-level results, giving you maximum flexibility in reporting and integrations.

Post-Test Extensions

Where to Configure

  1. Open the Test Settings modal
  2. Go to the Webhooks tab
  3. Click Add Extension under the Extensions section
  4. Select a Post-Hook Extension from your account or from team-shared Extensions
    • Use the search field if you have multiple Extensions available

Once added, the Extension will appear in:

  • Test Settings → Webhooks
  • Main Test Details page

Project-Level Extensions

Extensions can also be attached at the project level from the Project Settings → Webhooks tab. Any Extension attached here will automatically run for all tests in the project.

Post-Test Extension Request Example

When a test completes, Functionize sends a structured JSON payload to the Extension.

{
  "testResults": {
    "result": "PASS",
    "folderPath": "test-900000/job-10163538/"
  },
  "variables": {
    "project": {
      "sampleObject": { "testing": "123" },
      "sampleString": "value",
      "SampleArray": ["test", "value"]
    },
    "iteration": 0,
    "team": { "email": "tester@functionizeapp.com" },
    "env": {
      "jobId": "10163538",
      "testId": "900000",
      "projectId": "24522",
      "environment": "live",
      "initialUrl": "https://www.google.com/",
      "timeouts": { "pageLoadTimeout": 30, "ajaxTimeout": 10, "missingElementTimeout": 15 }
    },
    "local": { "sampleLocal": { "testing": "12345" }, "iterations": [0] },
    "actionResults": [
      {
        "actionId": "1681486865296_V1CIIJZCL0",
        "stepResult": { "resultCode": "PASS" }
      },
      {
        "actionId": "1681486871246_JYU07L63KF",
        "stepResult": { "resultCode": "PASS" }
      }
    ]
  }
}

Key Fields

  • req.body.testResults["result"] → the following are valid result values
    • PASS → test completed successfully
    • FAIL → one or more steps failed
    • WARNING → test passed but with critical warnings
    • ERROR → test did not complete due to error
  • req.body.variables.project → project-level data
  • req.body.variables.iteration → iteration index (for loops)
  • req.body.variables.team → team-level data
  • req.body.variables.tdm → Test Data Management values
  • req.body.variables.env → environment variables (jobId, projectId, URLs, timeouts, etc.)
  • req.body.variables.local → local variables scoped to this test
  • req.body.actionResults → ordered list of all executed actions, with their pass/fail status

Post-Orchestration Extensions

Extensions can also be configured to run after an orchestration completes. This enables you to integrate with higher-level pipelines or enterprise reporting systems.

Configuration Steps

  1. Open Edit Orchestration
  2. Go to the Notifications → Webhooks tab
  3. Click Add Extension, choose your Extension, and (optionally) fill in a post-hook proxy
  4. Click Confirm

Example Payload

{
  "orchestration_id": "31839",
  "title": "APP Runtime Smoke Suite",
  "runid": "ab034f5217202f0c3c7cfeae459a6744",
  "Status": "Completed",
  "total_testcases": 42,
  "start_ts": "2024-02-08 21:12:15",
  "end_ts": "2024-02-08 21:19:04",
  "last_execution_status": "Passed",
  "warning": "1",
  "passed": "41",
  "failure": 0,
  "tests": [
    {
      "status": "Passed",
      "job_id": "13769733",
      "name": "API Test_Basic",
      "browser_name": "Chrome 110",
      "duration": "96826"
    }
  ]
}

This orchestration-level payload summarizes:

  • Execution metadata (IDs, timestamps, status)
  • Aggregate results (total tests, passed, failed, warnings)
  • Per-test results (status, job_id, name, browser, duration)

When to Use Post-Hook Extensions

  • Test Level: Push individual test results into a test management tool (e.g., Jira, TestRail, qTest), or to perform an API call as part of data deletion or resetting the application before the next test execution
  • Project Level: Ensure consistent reporting across all tests in a project
  • Orchestration Level: Feed results into CI/CD pipelines, analytics dashboards, or enterprise reporting systems