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.
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
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.
Check auth:
ta status --jsonIf needed:
ta auth
TESTERARMY_API_KEY=<key> ta status --jsonDiscover scope:
ta projects list --json
ta groups list --project <projectId> --json
ta tests list --project <projectId> --jsonUse IDs exactly as returned.
Create a project:
echo '{"name":"Example","url":"https://example.com","projectType":"web"}' | ta projects create --jsonStore app knowledge:
echo '{"category":"site_structure","title":"Auth route","content":"Login is at /login","importance":"high"}' | ta memories create --project <projectId> --jsonMemory 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> --jsonNever print real secrets in final messages.
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> --jsonCreate 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> --jsonPayload:
{
"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:
act for navigation, clicks, typing, upload, and other user actions.assert for visible outcomes, persisted state, email delivery, or URL changes.login with credentialId or temporaryEmail; do not put passwords in step titles.screenshot only for important visual checkpoints.Inspect before changing:
ta tests get <testId> --jsonUpdate 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> --jsonReplacing steps requires the complete array.
Create suites:
echo '{"projectId":"<projectId>","name":"Smoke"}' | ta groups create --json
ta groups add-test <groupId> <testId> --json
ta groups remove-test <groupId> <testId> --jsonCommon groups: Smoke, Auth, Core journeys, Mobile smoke.
Modes:
--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 --jsonRemote validation:
ta tests run <testId> --remote --wait --json
ta tests run --group <groupId> --project <projectId> --remote --wait --jsonDefaults:
--remote: local browser execution.--remote: cloud execution.--wait: wait for remote results.--headed, --browser, --timeout, and --system-prompt-file are ignored with --remote.--environment production|preview.--mode fast|deep.CI:
ta ci --group <groupId> --project <projectId> --target-url https://staging.example.com --jsonRuns:
ta runs list --project <projectId> --json
ta runs get <runId> --json
ta runs wait <runId> --timeout 600000 --json
ta runs cancel <runId> --jsonUpload 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 --jsonSupported uploads: .app, .app.zip, .zip, .app.tar.gz, .tar.gz, .tgz.
.ipa and Android artifacts are not supported yet.
ta run <prompt> runs an ad hoc local browser test:
ta run "check pricing CTA" --url https://example.com --jsonUse only to explore before creating or updating dashboard tests. Use
ta tests create and ta tests run --group for durable workflows.
Report:
Do not claim durable coverage unless ta tests create or ta tests update ran.
| File | Description |
|---|---|
| reporting-template.md | Dashboard coverage report template |
novuhq/novu
46ff54b
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.