Client Integration Guide
Making Your Test Suite Agnostic-Readyโ
This guide explains how to prepare any containerized automation suite (Python, Java, Node.js, etc.) so it can run safely and correctly inside the Agnox.
The key principle: The platform controls execution - your repo provides behavior.
1. Recommended: Use the Agnox CLIโ
The fastest way to get started is with the official Agnox CLI:
npx @agnox/agnox-cli@latest init
This interactive tool will:
- Generate a
Dockerfile,entrypoint.sh, and.dockerignoretailored to your framework - Auto-detect your Playwright version from
package.jsonand pin the correct Docker base image - Build a multi-platform Docker image (
linux/amd64+linux/arm64) and push it to Docker Hub
Supported frameworks: Playwright (TypeScript/Node.js) and Pytest (Python).
๐ฆ CLI Repository: github.com/agnox/agnox-cli ยทยท npm: @agnox/agnox-cli
2. Manual Setup (Advanced)โ
If you prefer to set up your project manually, follow the steps below.
2.1 Mandatory entrypoint.shโ
For security and consistency, the Worker does not execute arbitrary commands. Instead, it always runs:
/app/entrypoint.sh <folder>
Your responsibilityโ
Create an executable entrypoint.sh at the root of your repo. This script acts as the bridge between the platform and your specific test runner.
Recommended Script Pattern:
#!/bin/sh
FOLDER=$1
# Remove local .env to enforce Worker configuration
if [ -f .env ]; then
echo "Removing local .env to enforce injected configuration..."
rm .env
fi
echo "Running against BASE_URL: $BASE_URL"
if [ -z "$FOLDER" ] || [ "$FOLDER" = "all" ]; then
echo "Running ALL tests..."
npx playwright test
else
echo "Running tests in folder: $FOLDER"
npx playwright test "$FOLDER"
fi
# Generate Allure HTML report from raw results
# NOTE: The Agnostic Worker handles report generation automatically!
# You do NOT need 'allure generate' here.
โ ๏ธ Do not use
execbefore your test runner command. Usingexecreplaces the shell process and prevents the worker from correctly tracking the process exit.
Why this mattersโ
- Security: Prevents configuration conflicts.
- Predictability: Guarantees the test runs exactly as the Dashboard intended.
- Flexibility: Allows folder-level test selection from the UI.
2.2 Dockerfile Requirementsโ
Your test suite must be containerized and published to a registry (Docker Hub, GHCR).
FROM mcr.microsoft.com/playwright:v1.50.0-jammy
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
# Ensure entrypoint is executable
RUN chmod +x /app/entrypoint.sh
# Do NOT use ENTRYPOINT or CMD here.
# The Worker Service will inject the entrypoint command at runtime.
2.3 Environment Variables & Validationโ
The platform injects environment variables only if they are whitelisted in the infrastructure.
Best Practiceโ
If you use validation libraries like Zod, ensure your schema allows for optional defaults or that you have added the variable to the infrastructure's INJECT_ENV_VARS list.
3. Register Your Project in the Dashboardโ
Once your Docker image is built and pushed to a registry:
- Open the AAC Dashboard
- Go to Settings โ Run Settings
- Create a new project and enter a project name
- Enter your Docker image name (e.g.,
youruser/my-automation:latest) - Configure your environment URLs (Dev, Staging, Production)
- Set a default test folder (or leave as
all)
These settings will pre-fill the Execution Modal each time you launch a new test run.
4. What You Should NOT Do โโ
- โ Run Playwright directly in Docker
CMD. - โ Expect shell access to the server.
- โ Read infrastructure-level secrets (like the VPS SSH key).
- โ Depend on a local
.envfile inside the image.
5. What You CAN Do โ โ
- โ
Read injected environment variables (
process.env.BASE_URL). - โ Control test selection via folders.
- โ Use any framework (Playwright, Pytest, Robot Framework).
6. Using the Interactive Dashboard ๐ฎโ
Once your image is integrated, you can utilize the Dashboard's advanced features:
Manual Execution (The Play Button)โ
You don't need to trigger tests via API. You can launch them visually:
- Click the "Launch Execution" button (Top Right).
- Environment: Select
Dev,Staging, orProd- the system pre-fills the URL from your project settings. - Folder: Type a folder path (e.g.,
tests/login) or selectall. - Launch: The test starts immediately, and you will see logs streaming in real-time.
๐ต๏ธ Troubleshooting with AIโ
If a test fails, the system automatically performs a Root Cause Analysis.
- Look for the status:
ANALYZING(Purple). - Once finished, a โจ Sparkle Icon will appear next to the
FAILEDstatus. - Click the icon to open the AI Analysis Report.
- See the exact error reason.
- Get code snippets for suggested fixes.
- Understand why it failed without reading 1000 log lines.
Client Integration Completeโ
Your test suite is now fully agnostic, portable, and secure.