ATR Healer
ATR means Automation Test Resilience.
This project is now a local self-healing runner and MCP server for Selenide + Cucumber regression tests. It is not a VS Code extension anymore.
What It Does
Copilot / Continue / Codex
-> ATR MCP tool or ATR CLI
-> Cucumber/Selenide test run
-> failed locator + failed page HTML
-> Qwen / local fallback healer
-> safe patch under src/test/**
-> rerun test
-> Markdown report
ATR is designed for Java test automation projects that use Page Objects and stable data-test-id selectors.
Commands
Compile ATR:
npm run compile
NPM Package Usage
After ATR is published or packed, users can run it without cloning this repository:
npm install --save-dev atr-healer
npx atr --mode init
npx atr --mode mcp-config --optional-tools true
Global install is also possible:
npm install -g atr-healer
atr --mode init --workspace "C:\path\to\project"
atr --mode mcp-config --optional-tools true
atr --mode init copies lightweight Copilot instructions, prompts, agents, and ATR docs into the target project.
atr --mode mcp-config prints MCP configuration JSON that can be pasted into Copilot/Continue MCP settings.
Before self-healing, the target test project should have a Cucumber failure hook that writes target/failed-page.html. If it is missing, use the installed docs/atr-failure-hook.md instructions to add it under src/test/** before running ATR.
Local Coder LLM
For an internal OpenAI-compatible local coder model, use the local-coder profile. Keep private endpoints and cookies in environment variables:
$env:ATR_LOCAL_CODER_ENDPOINT = "https://<local-llm-host>/v1/chat/completions"
$env:ATR_LOCAL_CODER_COOKIE = "<cookie-name>=<cookie-value>"
atr --workspace "C:\path\to\test-project" `
--test-command ".\mvnw.cmd test" `
--feature "src/test/resources/features/example.feature" `
--scenario "Scenario name" `
--html-file "target/failed-page.html" `
--approval-mode auto-test-files `
--ai-profile local-coder `
--ai-endpoint "$env:ATR_LOCAL_CODER_ENDPOINT" `
--ai-cookie-env ATR_LOCAL_CODER_COOKIE
local-coder defaults:
- provider:
openai-compatible - model:
ONIKS - temperature:
0.6 - max output tokens:
163849 - JSON response format parameter: disabled
- API call logs:
target/atr-healer/ai-logs
Run the CLI:
npm run atr -- --workspace "C:\path\to\test-project" --test-command ".\\mvnw.cmd test" --feature "src/test/resources/features/transfer.feature" --scenario "Successful transfer" --html-file "target/failed-page.html" --approval-mode auto-test-files --ai-provider openai-compatible --ai-profile alibaba-free --ai-model qwen3.7-plus --ai-endpoint "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" --ai-api-key-env DASHSCOPE_API_KEY
Other CLI modes:
npm run atr -- --mode knowledge --workspace "C:\path\to\project"
npm run atr -- --mode analyze --workspace "C:\path\to\project"
npm run atr -- --mode audit-test-ids --workspace "C:\path\to\project" --page Transfer --project-prefix transfer --include "src/App.jsx"
Start the MCP server:
npm run mcp
Current MCP tools:
atr_knowledge_summary
atr_analyze_project
atr_self_heal_scenario
Optional MCP tools are hidden by default. Enable them when you want Copilot/Continue to access generation-prep workflows:
$env:ATR_MCP_ENABLE_OPTIONAL_TOOLS = "true"
npm run mcp
Optional tools currently include:
atr_audit_test_ids
Qwen Configuration
Keep the DashScope key in your environment:
$env:DASHSCOPE_API_KEY = "<your-key>"
For a permanent Windows user variable:
setx DASHSCOPE_API_KEY "<your-key>"
Open a new terminal after setx.
Safety
In auto-test-files mode, ATR only applies exact changes under:
src/test/**
It must not patch production React source automatically. Adding or changing data-test-id attributes in UI code should be a separate reviewed change.
Docs
docs/atr-self-healing.mddocs/atr-knowledge-architecture.mddocs/codex-atr-usage.mddocs/continue-config.example.yamldocs/continue-prompts.md
Mock Project
The example project lives under:
examples/mock-banking-ui
It contains a small React page plus Selenide/Cucumber tests for demonstrating locator healing.






