Skip to content

v0.2.0 - Web Testing Revolution

Latest

Choose a tag to compare

@kznr02 kznr02 released this 08 Mar 09:57
· 1 commit to main since this release

OpenTester v0.2.0 Release Notes

Release Date: 2025-03-08

Overview

OpenTester v0.2.0 is a major milestone release introducing Web Testing MVP capabilities, hardened CLI Daemon mode, and a complete Execution Timeline visualization system for the frontend.


What's New

🌐 Web Testing MVP

The biggest addition in v0.2.0 is the Web Testing executor, enabling AI-driven browser automation.

WebExecutor Features:

  • Playwright Integration: Full browser automation supporting Chromium, Firefox, and WebKit
  • AI-Powered Element Location: DOM analysis with AI-assisted element resolution
  • Pause/Resume Execution: Interactive debugging when AI needs to locate elements
  • Visual Feedback: Screenshot capture, element highlighting, and visual comparison

New Web Actions:

Action Description
navigate Navigate to URL
click Click element (with AI fallback support)
type Fill form fields
select Select dropdown options
screenshot Capture page screenshots
launch Launch browser with viewport configuration
close Close browser instance

AI Locator Support:

- action: click
  ai_locator:
    description: "The primary submit button in the form footer"
    context: "Login form bottom-right"
    fallback_selector: "button[type='submit']"

When ai_locator is used, execution can pause in paused_waiting_for_ai state, allowing AI (or human) to provide the correct selector via MCP tools or REST API.


🔧 CLI Daemon Hardening

The CLI has been completely reworked with robust daemon support for production deployments.

New Commands:

# Start services in background daemon mode
opentester start --daemon

# Check service status with automatic stale PID cleanup
opentester status

# Stop services gracefully
opentester stop

# Environment diagnostics
opentester doctor

# Show version
opentester version

Daemon Features:

  • True Background Mode: Services run detached with proper process management
  • Health Check Integration: CLI waits for services to be ready before exiting
  • Log Rotation: Automatic cleanup of logs older than 7 days
  • PID Management: Automatic stale PID detection and cleanup
  • XDG Compliance: Logs stored in platform-appropriate locations

Log Locations:

  • Linux: ~/.local/share/opentester/logs/daemon/
  • macOS: ~/Library/Application Support/opentester/logs/daemon/
  • Windows: %LOCALAPPDATA%\opentester\logs\daemon\

📊 Frontend Execution Timeline

A complete visualization system for execution monitoring.

New Components:

  • Timeline: Visual execution timeline with step-by-step progress
  • TimelineStep: Individual step display with status indicators
  • TimelineDiagnostics: Diagnostic event panel per step
  • StepDetails: Multi-executor step details (CLI/Web/GUI)
  • StepDetailsWeb: Web-specific diagnostics including screenshots and DOM info

Features:

  • Real-time WebSocket updates during execution
  • Step correlation tracking
  • Diagnostic event visualization
  • Batch execution monitoring improvements
  • Interactive step inspection

🔍 Diagnostic System

Comprehensive observability for test execution.

Diagnostic Features:

  • Event collection and persistent storage
  • Step correlation tracking across async boundaries
  • Transport diagnostics (HTTP requests, WebSocket messages)
  • Execution context snapshots
  • AI decision logging

MCP Diagnostic Tools:

  • get_execution_diagnostics - Fetch diagnostic events for an execution
  • request_dom_analysis - Get DOM snapshot when paused for AI
  • submit_ai_selector - Resume execution with AI-provided selector
  • list_paused_executions - List all executions waiting for AI input

📦 Build & Packaging Improvements

Version Management:

  • Dynamic version reading via importlib.metadata
  • Consistent version across development, pip install, and PyInstaller builds
  • PyInstaller spec auto-versioning from pyproject.toml

PyInstaller Enhancements:

  • Single-file executable support
  • Proper data file inclusion
  • Cross-platform build improvements
  • Version consistency in packaged builds

🧪 Testing

Added 15+ new test files:

  • test_cli_daemon_commands.py - CLI daemon command tests
  • test_daemon_startup.py - Daemon lifecycle tests
  • test_daemon_runtime_contract.py - Runtime behavior validation
  • test_diagnostic_*.py - Diagnostic system tests
  • test_web_executor_diagnostics.py - Web executor tests
  • test_step_correlation.py - Step tracking tests

Breaking Changes

None. v0.2.0 is backward compatible with v0.1.x DSL scripts and APIs.


Migration Guide

For Existing Users

No migration needed. Existing DSL scripts continue to work.

To use new Web Testing features:

  1. Install Playwright browsers:

    playwright install chromium
  2. Create a web test DSL:

    version: "1.0"
    meta:
      name: "Login Test"
    
    steps:
      - action: launch
        browser: chromium
        headless: false
    
      - action: navigate
        url: "https://example.com/login"
    
      - action: type
        selector: "input[name='username']"
        text: "testuser"
    
      - action: click
        selector: "button[type='submit']"
    
      - action: assert
        assertion:
          type: url_contains
          expected: "/dashboard"
  3. Run with web target type (via MCP or API)


Documentation

Updated Documentation:

New Documentation:

中文文档同步更新:

  • docs/zh/ARCHITECTURE.md - 架构文档(新增)
  • docs/zh/DSL_SPEC.md - DSL 规范(新增)
  • docs/zh/CHANGELOG.md - 变更日志(已更新)
  • docs/zh/CLI.md - CLI 文档(已修复)

Assets

File Description Size
opentester-0.2.0-py3-none-any.whl PyPI Wheel ~90 KB
opentester-0.2.0.tar.gz Source distribution ~145 KB
opentester-0.2.0-windows-x64.exe Windows standalone executable ~56 MB

Known Issues

  • GUI/TUI executors are experimental and disabled by default
  • call action is schema-level only (not executed)
  • Extended variables (${{now}}, ${{random}}) require explicit implementation in DSL

Contributors

Thank you to all contributors who made this release possible!


Links


Full Changelog: v0.1.1...v0.2.0

New Contributors

Full Changelog: v0.1.1...v0.2.0