TesterArmyTesterArmy
TesterArmyTesterArmy
WelcomeIntroductionQuick Start
Run ModePull Request TestingProduction MonitoringGroup Webhooks
Test CredentialsAgent Mail InboxesHTTP Basic Auth
OverviewApp UploadsGitHub Actions
VercelCoolifyCoolifyCustom InfrastructureSlack
Testing Staging Environment
Getting StartedLocal Development
Integrations

Custom Infrastructure

If your app isn't deployed on Vercel or Coolify, you can still wire up PR testing with a group webhook. Trigger it from GitHub Actions, GitLab CI, Jenkins, a shell script, or any other system that can send an HTTP request after a deployment finishes.

How it works

  1. You create a webhook on a test group in the TesterArmy dashboard.
  2. After your own CI deploys a preview, it POSTs to the webhook URL with the commit SHA (and optionally the preview URL).
  3. TesterArmy runs the tests in the group against that URL and posts a GitHub check run back on the commit.

1. Generate the webhook

  1. Open your project → Tests tab.
  2. Expand the test group you want to run on each deploy.
  3. Click the (lightning icon) and toggle on.

Coolify

Previous Page

Slack

Next Page

On this page

How it works1. Generate the webhook2. Trigger it from your CIGitHub ActionsGitLab CIAny shellPayload fieldsResultsTroubleshootingNo check run on the PR401 Unauthorized403 ForbiddenTests run against the wrong URL
trigger badge
Enable webhook
  • Copy the URL that's shown - the secret is only revealed once.
  • The URL looks like:

    https://tester.army/api/v1/groups/webhook/{id}/{secret}

    Store it as a secret in your CI system. See Group Webhooks for the full reference (rate limits, mobile overrides, response format).

    2. Trigger it from your CI

    Call the webhook after your deployment step. Pass commitSha so results link back to the PR on GitHub, and targetUrl if you need to override the URL under test.

    GitHub Actions

    - name: Run TesterArmy tests
      run: |
        curl -X POST "${{ secrets.TESTERARMY_WEBHOOK_URL }}" \
          -H "Content-Type: application/json" \
          -d "{\"commitSha\":\"${{ github.sha }}\",\"targetUrl\":\"${{ secrets.TESTERARMY_TARGET_URL }}\"}"

    GitLab CI

    testerarmy:
      stage: test
      script:
        - |
          curl -X POST "$TESTERARMY_WEBHOOK_URL" \
            -H "Content-Type: application/json" \
            -d "{\"commitSha\":\"$CI_COMMIT_SHA\",\"targetUrl\":\"$TESTERARMY_TARGET_URL\"}"

    Any shell

    curl -X POST "$TESTERARMY_WEBHOOK_URL" \
      -H "Content-Type: application/json" \
      -d '{"commitSha":"'"$COMMIT_SHA"'","targetUrl":"'"$DEPLOY_URL"'"}'

    Payload fields

    FieldRequiredDescription
    commitShaNo (but recommended)Links results to the commit on GitHub as a check run. Without it, tests still run but nothing is posted to GitHub.
    targetUrlNoOverrides the URL under test for this run. If omitted, tests run against the URL configured in your project settings.

    Results

    • GitHub - a commit check run on the SHA appears in the PR checks tab.
    • TesterArmy dashboard - full run details with screenshots and logs.

    For a walkthrough focused on a staging environment, see Testing Staging Environment.

    Troubleshooting

    No check run on the PR

    1. Missing commitSha - the webhook runs tests, but can't post to GitHub without it.
    2. GitHub App not connected - verify installation in Project Settings.
    3. Permissions - the GitHub App needs Checks: Read & Write.

    401 Unauthorized

    The webhook ID or secret is wrong. Regenerate the webhook on the group and update your CI secret.

    403 Forbidden

    The webhook is disabled. Open the group's trigger panel and toggle Enable webhook back on.

    Tests run against the wrong URL

    Tests use targetUrl from the payload if provided, otherwise the URL configured in your project settings. Check both.