First tagged release of Tetryon — PHP-native browser testing for PHPUnit, Firefox-first over WebDriver BiDi. No Node, Selenium, ChromeDriver, or Dusk-style setup.
Beta, pre-1.0. The public API may still change before 1.0 — see compatibility.
Install
composer require --dev vusys/tetryon
vendor/bin/tetryon doctorHighlights
- Fluent, readable API — navigation, clicks, typing, forms, pointer/keyboard actions, and assertions, driven by human labels rather than CSS.
- Selector engine — resolves a label through test attributes → label → accessible name → placeholder → button/link text → name → id → visible text, with
@/CSS/XPath escape hatches, andwithin()scoping. - Auto-waiting — every action waits for its target to be actionable; every assertion retries until timeout. Never a
sleep(). - Failure diagnostics — screenshot, page HTML, console log, BiDi command trace, and browser stderr captured to an artifact directory on failure.
tetryon doctor— a preflight CLI that launches Firefox and checks the environment.- Natural-language steps —
->step(...)and->scenario()->given()->when()->then(), deterministic, no.featurefiles. - First-class Laravel integration — auto-discovered provider,
tetryon:install, a self-bootingLaravel\BrowserTestCase(factories + DB), andloginAs().
Supported
PHP 8.4 / 8.5 · PHPUnit 12 / 13 · Firefox on Linux and macOS. Exercised against real Firefox on both platforms in CI, including a real Vue 3 single-page app.
See the documentation and the changelog.