CtrlK
BlogDocsLog inGet started
Tessl Logo

testerarmy-cli

Use TesterArmy CLI to create, organize, and run dashboard-managed QA tests. Prefer saved tests, groups, project context, credentials, and remote runs over one-off local prompts. Trigger when defining regression coverage, adding QA flows, or wiring CI checks.

75

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

TesterArmy CLI

Create dashboard-managed QA coverage with ta / testerarmy.

Default to saved dashboard tests, groups, project context, credentials, and remote runs. Use local ta run "..." only for quick exploration.

When to Use

  • Create persistent QA coverage for a feature or product area.
  • Convert acceptance criteria into dashboard tests.
  • Add or update smoke, regression, auth, billing, onboarding, or mobile flows.
  • Prepare CI-visible groups for PRs or releases.

Setup

Check auth:

ta status --json

If needed:

ta auth
TESTERARMY_API_KEY=<key> ta status --json

Discover scope:

ta projects list --json
ta groups list --project <projectId> --json
ta tests list --project <projectId> --json

Use IDs exactly as returned.

Project Context

Create a project:

echo '{"name":"Example","url":"https://example.com","projectType":"web"}' | ta projects create --json

Store app knowledge:

echo '{"category":"site_structure","title":"Auth route","content":"Login is at /login","importance":"high"}' | ta memories create --project <projectId> --json

Memory categories: site_structure, test_insights, user_preferences.

Create credentials for login or inbox flows:

echo '{"kind":"login","label":"Admin","username":"admin@example.com","password":"secret"}' | ta projects credentials-create <projectId> --json
echo '{"kind":"inbox","label":"Signup inbox"}' | ta projects credentials-create <projectId> --json

Never print real secrets in final messages.

Tests

Create:

echo '{"title":"Login flow","description":"User can sign in and reach the dashboard","steps":[{"title":"Navigate to /login","type":"act"},{"title":"Sign in with the saved admin credentials","type":"login","credentialId":"<credentialId>"},{"title":"Dashboard loads and shows the project list","type":"assert"}]}' | ta tests create --project <projectId> --json

Create in a group:

echo '{"title":"Pricing CTA","steps":[{"title":"Open /pricing","type":"act"},{"title":"Click the primary CTA","type":"act"},{"title":"Signup or dashboard flow starts","type":"assert"}]}' | ta tests create --project <projectId> --group <groupId> --json

Payload:

{
  "title": "string, required",
  "description": "string, optional",
  "platform": "web or mobile, optional",
  "steps": [
    { "title": "User action", "type": "act" },
    { "title": "Expected result", "type": "assert" },
    { "title": "Login instruction", "type": "login", "credentialId": "uuid" },
    { "title": "Use temporary email", "type": "login", "temporaryEmail": true },
    { "title": "Screenshot label", "type": "screenshot" }
  ]
}

Rules:

  • Cover one user journey.
  • Prefer 3-8 meaningful steps.
  • Use act for navigation, clicks, typing, upload, and other user actions.
  • Use assert for visible outcomes, persisted state, email delivery, or URL changes.
  • Use login with credentialId or temporaryEmail; do not put passwords in step titles.
  • Use screenshot only for important visual checkpoints.
  • Maximum 50 steps per test.

Inspect before changing:

ta tests get <testId> --json

Update title, description, or steps:

echo '{"title":"Updated login smoke"}' | ta tests update <testId> --json
echo '{"steps":[{"title":"Open /login","type":"act"},{"title":"Sign in","type":"login","credentialId":"<credentialId>"},{"title":"Dashboard is visible","type":"assert"}]}' | ta tests update <testId> --json

Replacing steps requires the complete array.

Groups

Create suites:

echo '{"projectId":"<projectId>","name":"Smoke"}' | ta groups create --json
ta groups add-test <groupId> <testId> --json
ta groups remove-test <groupId> <testId> --json

Common groups: Smoke, Auth, Core journeys, Mobile smoke.

Runs

Modes:

  • Default/local: fetches a saved test, then runs it on this machine.
  • --remote: queues the saved test in TesterArmy cloud.

Local debugging:

ta tests run <testId> --url http://localhost:3000 --json
ta tests run --group <groupId> --project <projectId> --url http://localhost:3000 --parallel 3 --json

Remote validation:

ta tests run <testId> --remote --wait --json
ta tests run --group <groupId> --project <projectId> --remote --wait --json

Defaults:

  • No --remote: local browser execution.
  • --remote: cloud execution.
  • --wait: wait for remote results.
  • Local-only flags such as --headed, --browser, --timeout, and --system-prompt-file are ignored with --remote.
  • Remote group runs can use --environment production|preview.
  • Remote single-test runs can use --mode fast|deep.

CI:

ta ci --group <groupId> --project <projectId> --target-url https://staging.example.com --json

Runs:

ta runs list --project <projectId> --json
ta runs get <runId> --json
ta runs wait <runId> --timeout 600000 --json
ta runs cancel <runId> --json

Mobile App Coverage

Upload an iOS Simulator app before cloud runs:

ta upload-app --app-path ios/build/Build/Products/Release-iphonesimulator/MyApp.app --project <projectId> --json
ta ci --group <groupId> --project <projectId> --app-id <appId> --delete-app-after-run --json

Supported uploads: .app, .app.zip, .zip, .app.tar.gz, .tar.gz, .tgz. .ipa and Android artifacts are not supported yet.

Local Prompt

ta run <prompt> runs an ad hoc local browser test:

ta run "check pricing CTA" --url https://example.com --json

Use only to explore before creating or updating dashboard tests. Use ta tests create and ta tests run --group for durable workflows.

Reporting

Report:

  • Project ID/name
  • Test IDs and titles created or updated
  • Group IDs/names touched
  • Remote validation command and result, if run
  • Run ID or artifact/output path, if available

Do not claim durable coverage unless ta tests create or ta tests update ran.

References

FileDescription
reporting-template.mdDashboard coverage report template
Repository
novuhq/novu
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.