Bugninja, AI-powered end-to-end testing with plain English tests

2 hours ago 2
bugninja_cli_video.mp4

Watch Bugninja automatically navigate, interact, and test your web application using natural language instructions

What Can You Do With Bugninja?

✨ Write Tests in Plain English

# First, initialize your project bugninja init --name my_project # Add a new test case bugninja add # This creates a TOML file like: # [task] # name = "login_test" # description = "Navigate to login page, enter credentials, and verify dashboard loads" # Run it with AI bugninja run --task login_test

🤖 AI-Powered Browser Agent

Bugninja's intelligent browser agent understands your web application like a human tester would:

  • Smart Navigation: Finds elements even when they change
  • Context Awareness: Understands page state and user flows
  • Self-Healing: Automatically adapts when UI changes
  • Visual Recognition: Uses computer vision to interact with complex interfaces

🔄 Record & Replay Test Sessions

Every test run is automatically recorded as a "traversal" that can be replayed:

# Record a test session bugninja run --task login_test # Replay latest traversal for a task bugninja replay --task login_test # Self-healing replay fixes broken tests automatically bugninja replay --task login_test --healing

🎯 Perfect for Modern E2E Testing

  • Flaky Test Elimination: Self-healing capabilities reduce test maintenance
  • Cross-Browser Testing: Works with any Playwright-supported browser
  • CI/CD Integration: Seamlessly integrates with your existing pipelines
  • Rich Reporting: Detailed test reports with screenshots and execution traces

Using uv (Global Install)

From Source (Development)

cd bugninja uv sync # For this you have to activate the venv once and use directly source .venv/bin/activate bugninja --help # ... etc
  • Natural Language Processing: Describe what you want to test in plain English
  • Smart Element Detection: Finds buttons, forms, and content even with dynamic IDs
  • Context Understanding: Maintains awareness of application state throughout tests
  • Vision-Powered Interactions: Uses screenshots to understand complex UI elements

🔄 Intelligent Replay System

  • Session Recording: Every interaction is captured with full context
  • Self-Healing Replays: Automatically fixes broken selectors and changed elements
  • Brain State Tracking: Records AI decision-making process for debugging
  • Alternative Selector Strategies: Multiple fallback approaches for robust element identification
# task.toml [task] name = "login_test" description = "Navigate to login page and authenticate with provided credentials" [run_config] enable_healing = true headless = false
  • Environment Variable Support: Secure credential handling via .env files
  • Task Configuration: Define test parameters in TOML files
  • Credential Isolation: Keep sensitive data separate from task definitions

⚙️ Flexible Browser Configuration

# bugninja.toml [browser] viewport_width = 1920 viewport_height = 1080 user_agent = "" timeout = 30000 [agent] max_steps = 100 enable_vision = true enable_memory = true wait_between_actions = 1 [run_config] headless = false enable_healing = true
  • Multi-Device Testing: Desktop, mobile, and tablet viewports
  • Custom Browser Profiles: Tailored configurations per test environment
  • Performance Controls: Timeouts, step limits, and retry logic
# Initialize a new Bugninja project (required first step) bugninja init --name my_project # Add a new task interactively bugninja add # Run a task bugninja run --task my_task # Replay latest traversal for a task bugninja replay --task my_task # Self-healing replay bugninja replay --task my_task --healing # Replay specific traversal by ID bugninja replay --traversal kfdvnie47ic2b87l00v7iut5
Component Technology Purpose
Browser Automation Playwright Cross-browser testing engine
AI Framework browser-use AI browser interaction library
Language Models OpenAI, Anthropic, Azure Natural language understanding
Runtime Python 3.8+ Core application framework
Configuration TOML, Pydantic Type-safe settings management
CLI Rich, Typer Beautiful command-line interface
Storage JSON, SQLite Session and traversal persistence
  • 🚀 Performance: Playwright's speed + Python's flexibility
  • 🧠 Intelligence: Advanced LLM integration for human-like testing
  • 🔧 Reliability: Battle-tested components with extensive community support
  • 📈 Scalability: From single tests to enterprise CI/CD pipelines

Help Us Build the Future of E2E Testing

  • ⭐ Star the repo - Show your support and help others discover Bugninja
  • 🐛 Report bugs - Help us improve by reporting issues you encounter
  • 💡 Request features - Share your ideas for new functionality
  • 🤝 Contribute - Submit pull requests and join our development community
  • 💬 Join our Discord - Connect with other users and get real-time help
  • 📖 Improve docs - Help us make Bugninja more accessible to everyone

Made with ❤️ by the Bugninja team

Empowering developers to build better software through intelligent testing

Read Entire Article