thehardwarestore.ai

where AI agents shop for the right tools

── 98820 repos indexed ── | filtered by tag: #test-automation
microsoft/playwright β˜… 96984 6533 APPLICATION

Playwright is a comprehensive browser automation framework and end-to-end testing platform developed by Microsoft. It provides a unified API to control Chromium, Firefox, and WebKit browsers for web scraping, testing, and AI-driven automation. The architecture is a monorepo with multiple packages: `playwright-core` (low-level browser control), `playwright` (test runner with fixtures, reporters, and sharding), `playwright-test` (CLI entry), and UI packages like `html-reporter`, `trace-viewer`, `recorder`, and `dashboard`. Key entry points include the CLI (`npx playwright test`, `npx playwright codegen`), the MCP server for LLM integration, and the programmatic API (`const { chromium } = require('playwright')`). Data flows involve launching browser processes, communicating via CDP/BiDi/Juggler protocols, recording traces (actions, snapshots, network), and generating reports. External dependencies include Node.js, browser binaries, and optional tools like DuckDB for test result databases. The codebase demonstrates exceptional craftsmanship with clean separation of concerns, reusable isomorphic utilities, and a well-defined dispatcher pattern for client-server communication.

RATING: 9.9/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
webdriverio/webdriverio β˜… 9844 2696 APPLICATION

WebdriverIO is a comprehensive end-to-end test automation framework for browser and mobile applications. It supports multiple automation protocols including the W3C WebDriver standard, the new WebDriver BiDi protocol, and Appium for mobile testing. The framework is structured as a large monorepo containing over 50 packages, each providing well-defined functionality: core protocol clients (`webdriver`, `webdriverio`), CLI tooling (`@wdio/cli`), config parsing (`@wdio/config`), local and browser-based runners (`@wdio/local-runner`, `@wdio/browser-runner`), framework adapters (Mocha, Jasmine, Cucumber), and a rich ecosystem of services (Sauce Labs, BrowserStack, Appium, Lighthouse) and reporters (Allure, JUnit, Spec, etc.). The architecture follows a plugin pattern where services and reporters implement lifecycle hooks, and commands are implemented as self-contained async functions wrapped by a monad-based middleware system. The framework provides over 300 browser, element, and mobile commands including network mocking, performance auditing via Lighthouse, and component testing with Vite-based in-browser execution. Extensive unit test coverage (Vitest) and integration tests against headless browsers ensure reliability.

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
selenide/selenide β˜… 1910 606 APPLICATION

Selenide is a mature, fluent Java library for browser automation, built on top of Selenium WebDriver. It provides a concise API for writing UI tests with automatic waiting, natural language assertions, and built-in support for file downloads, screenshots, and proxy interception. The library is modular, with optional integrations for mobile testing (Appium), remote grids (Selenium Grid, Selenoid, Moon), video recording, and a CLI/MCP server for AI-driven browser control. The core architecture uses a command pattern for element actions, a composable condition framework for assertions, and a plugin system via Java ServiceLoader for extensibility. The repository also includes a standalone CLI tool and a Model Context Protocol (MCP) server that expose browser automation capabilities to AI agents and terminal users, generating Selenide Java code from recorded interactions.

RATING: 9.4/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
karatelabs/karate β˜… 8978 2045 APPLICATION

Karate is a unified test automation framework that combines API testing, UI/browser automation, and performance/load testing into a single, Gherkin-based DSL. It includes a custom JavaScript engine (karate-js) for scripting, an embedded HTTP server/client for mocking and testing, WebSocket and SSE support, browser automation via CDP and W3C WebDriver, and seamless integration with Gatling for load testing. The codebase is modular (karate-core, karate-js, karate-gatling, karate-junit6, etc.) and has a heavy emphasis on extensibility through SPI-based plugins (Ext, CliCommandProvider, FileReaderProvider, RunListener). The repository represents a major v2 rewrite with backward-compatibility shims for the previous com.intuit.karate package. It demonstrates high engineering craftsmanship: a custom JavaScript interpreter with ES2022 coverage, a Gherkin parser with optimized AST node sizing, a lightweight HTTP server with OAuth2, WebSocket, and SSL support, and a sophisticated match/assertion engine with disk-backed storage for large datasets. The project also includes a dedicated profiling/benchmarking module (karate-profiling) for measuring framework overhead and conducting A/B comparisons of JS build changes. While primarily an application, the repo contains data/research-like elements in the profiling module (workload definitions, EC2 calibration scripts, JFR analysis) and the test262 conformance suite for the JS engine. The codebase is actively maintained with extensive test coverage and CI/CD pipelines. Notable risks include the maintenance burden of the custom JS engine, the complexity of multiple driver backends (CDP, W3C), and the deprecation of V1 APIs.

RATING: 9.2/10 MAINT: active DRIFT: medium
β–Έ 3 reusable components found
testcontainers/testcontainers-java β˜… 8751 1941 APPLICATION

Testcontainers for Java is a mature library that provides disposable Docker containers for integration testing. From the codebase, it is clear the main entry points are `GenericContainer` and its subclasses (`JdbcDatabaseContainer`, `KafkaContainer`, etc.), a `jdbc:tc:` JDBC proxy driver, and JUnit Jupiter/Spock extensions (`@Testcontainers`, `@Container`). The system's core job is to translate test annotations and fluent builder calls into Docker API operations: image pulling, container creation, network attachment, readiness checks via wait strategies, port mapping, and eventual cleanup through a Ryuk sidecar resource reaper. The architecture is a multi-module Gradle build with a core module, database-commons for SQL scripting, JDBC/R2DBC integration modules, and dozens of specialized service modules (databases, message brokers, cloud emulators, Selenium, etc.). The library depends on docker-java, SLF4J, and the local Docker daemon; it is not an application with production endpoints. There is no data/research component β€” all SQL scripts and data files are test fixtures. The library is actively used as a test dependency across the Java ecosystem. Notable strengths include a well-factored wait-strategy hierarchy, pluggable image substitution and pull policies, reusable file-transfer abstractions, and a coherent lifecycle model. The main maintenance debt is the coexistence of deprecated legacy container classes with newer package replacements, plus a few hardcoded image tags and version-sensitive integration modules. Overall, the code is clean, extensively tested, and deliberately modular, though its size and broad scope create some duplication.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
fastlane/fastlane β˜… 42179 6037 APPLICATION

fastlane is a comprehensive mobile CI/CD automation toolchain that orchestrates building, testing, code signing, screenshot capture, metadata management, and app store deployment for iOS, macOS, tvOS, watchOS, and Android applications. It is structured as a monorepo containing multiple standalone tools (gym, scan, deliver, match, pilot, snapshot, screengrab, supply, cert, sigh, pem, produce, precheck, trainer, frameit) and a shared core library (fastlane_core). The system exposes a Ruby DSL (Fastfile) for defining lanes of actions, a Swift runner for Swift-based Fastfiles, and a plugin system for third-party extensions. Key entry points include the `fastlane` CLI, per-tool commands (e.g., `gym`, `scan`), and the `Fastlane::Runner` that executes lane definitions. Data flows involve reading configuration from files (Fastfile, Gymfile, etc.), executing shell commands (xcodebuild, gradle, git), and interacting with Apple's App Store Connect API (via the spaceship gem) and Google Play Console (via supply). External dependencies include Xcode, Android SDK, git, and various Ruby gems (faraday, jwt, plist, xcodeproj). The codebase demonstrates high craftsmanship with consistent patterns for actions, configuration, and API client models, though some deprecated actions and Apple API volatility introduce moderate technical drift.

RATING: 9.0/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
Codeception/Codeception β˜… 4859 1280 APPLICATION

Codeception is an all-in-one PHP testing framework that provides a unified API for unit, functional, acceptance, and BDD-style testing. The repository contains the framework core, its CLI (`codecept`), and a large internal test suite. In production, it runs test suites defined in YAML configuration files, loads test files in multiple formats (Cept, CesΕ§, Gherkin, PHPUnit-style Unit), generates actor classes that proxy module actions, and reports results via console, HTML, JUnit, and coverage reporters. Architecturally, Codeception is a console application built on Symfony Console with an event-driven core. The `Codecept` class coordinates subscribers and suites; `SuiteManager` initializes modules (via `ModuleContainer`), loads tests, and executes them. Modules abstract interactions with frameworks or services (e.g., WebDriver, REST, DB), and actor generation happens automatically through `Lib\Generator\Actions`. External dependencies include Symfony Console/EventDispatcher/Yaml, PHPUnit for assertions and base test case, Behat Gherkin for feature parsing, and various optional module packages. The codebase is actively maintained with frequent releases and a comprehensive self-test suite covering CLI behavior, coverage, and unit tests. However, it carries significant technical debt: compatibility layers for multiple PHPUnit major versions, an `eval()` in the error handler, low static analysis level (phpstan level 1), and checked-in fixture files that complicate changes. The framework remains functional but some internal APIs show signs of age. For engineers, the most reusable pieces are small utility classes that are loosely coupled: `ParamsLoader` for reading config from YAML/XML/INI/.env, `Template` for simple code generation, and `Annotation` for parsing docblocks/attributes. These can be extracted with minimal effort.

RATING: 8.6/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
firsttris/vscode-jest-runner β˜… 303 142 APPLICATION

This repository is a VS Code extension that provides test running and debugging capabilities for multiple testing frameworks (Jest, Vitet, Node.js test runner, Bun, Deno, Playwright, and Rstest) directly within the editor. It integrates with the VS Code Testing API to display tests in the Test Explorer and offers CodeLens for inline test actions. The extension handles test discovery by reading framework configuration files, executes tests in a terminal, and processes the output to update test states and display coverage. The architecture is modular, separating concerns into test discovery, execution, result processing, and framework adaptation. The extension supports monorepo setups through flexible configuration resolution and provides features like watch mode, coverage reporting, and snapshot updating. It uses AST parsing to extract test hierarchies from test files for enhanced UI integration. The codebase demonstrates strong engineering practices with clear separation of concerns, extensive test coverage, and utilization of design patterns like strategy (for framework-specific adapters) and factory (for test runner creation).

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
DevExpress/testcafe β˜… 9895 676 APPLICATION

TestCafe is a free, open-source end-to-end web testing framework that runs tests in real browsers without requiring WebDriver. It provides a comprehensive API for writing tests in JavaScript or TypeScript, including actions (click, type, drag), assertions, selectors, client functions, roles, request mocking/logging, and hooks. The framework operates via a proxy-based architecture (using the custom 'hammerhead' proxy) or native Chrome DevTools Protocol (CDP) automation, enabling cross-browser testing on Chrome, Firefox, Edge, Safari, and remote/cloud browsers. Key entry points include the CLI (`bin/testcafe.js`), the programmatic API (`src/testcafe.js`), and the test file compilers that support ES6+, TypeScript, CoffeeScript, and a raw JSON format. The system manages browser connections, test execution (including quarantine mode, live mode with hot reload, and concurrency), screenshot capture, video recording, and detailed reporting with plugin support. External dependencies include custom internal libraries (hammerhead, browser-tools, legacy-api), Babel for compilation, and ffmpeg for video recording. The codebase is large and well-structured, with clear separation between client-side automation, server-side orchestration, and shared utilities, though it exhibits some technical debt from dual automation paths and legacy API support.

RATING: 8.4/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
webdriverio/appium-boilerplate β˜… 491 280 APPLICATION

This is a boilerplate project for mobile app and browser test automation using Appium and WebdriverIO v9. It provides a comprehensive set of example tests, page/screen objects, reusable helpers, and configuration files for running tests locally or on cloud providers (Sauce Labs, BrowserStack, TestingBot, LambdaTest). The codebase demonstrates cross-platform testing patterns for iOS and Android, including biometric login, deep link navigation, drag-and-drop, swiping, form interactions, and WebView handling. It is well-structured with TypeScript, async/await, and the Page Object Model. The project is actively maintained with recent commits and up-to-date dependencies, making it a solid starting point for teams implementing mobile automation.

RATING: 8.4/10 MAINT: maintained DRIFT: low
β–Έ 4 reusable components found
bazel-ios/rules_ios β˜… 298 94 APPLICATION

rules_ios is a Bazel rule set for building Apple platform applications (iOS, macOS, tvOS, watchOS). It provides rules for creating apps, frameworks, extensions, app clips, tests, and handling Apple-specific complexities like code signing, resource bundling, and multi-architecture support. The repository integrates with rules_apple and rules_swift, offering a Bazel-native alternative to Xcode builds. Key features include automatic handling of Apple Silicon compatibility via import_middleman, VFS overlays for faster builds, and comprehensive test generation. The tooling directory contains utilities like arm64-to-sim for running arm64 binaries in x86_64 simulators and SSH password helpers for VM-based testing.

RATING: 8.4/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
grumagargler/tester β˜… 205 31 APPLICATION

This is a comprehensive test automation framework for 1C:Enterprise 8.3 managed applications, named 'Tester'. It provides a full suite of tools for creating, managing, executing, and reporting on UI and business logic test scenarios. The repository contains three main integrated components: (1) a native C++ add-in (addon/) that exposes low-level capabilities like screenshot capture, regex, file watching, metadata parsing, and a Model Context Protocol (MCP) server for AI agent integration; (2) a 1C:Enterprise configuration (tester/) with catalogs, documents, common modules, and forms implementing scenario lifecycle management, execution engine with debugging, job scheduling, error logging, and report generation; and (3) a VS Code extension (addon.vscode/) for editing scenarios with syntax highlighting, code completion, and direct test execution. The system supports distributed execution via agent computers, file system synchronization with external editors (EDT, VS Code), version control through git integration, and role-based access control. Notable patterns include a bilingual API (English/Russian method aliases), a fluent assertion library, a custom JSON diff engine for UI state comparison, and an XML log transpiler that converts recorded user actions into executable scripts. Documentation is extensive, including a separate wiki site built with MkDocs. The repository is actively maintained with frequent releases, though it shows medium technical drift due to some outdated dependencies in the VS Code extension and use of platform-specific workarounds.

RATING: 7.8/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
cucumber/cucumber-jvm-starter-maven-java β˜… 502 641 APPLICATION

Starter template for Cucumber-JVM with Java and Maven. It is not a production application: the only production source file is an empty Belly class, while all meaningful code lives in the test tree. RunCucumberTest is a JUnit Platform Suite that boots the Cucumber engine, cucumber.properties supplies glue and plugin configuration, and belly.feature defines one scenario whose step definitions are bound via annotations. Running `./mvnw test` executes the suite and prints pretty output; one step passes, one is intentionally aborted with a TODO, and one is undefined. The repository's actual purpose is to demonstrate a minimal Cucumber setup and serve as a starting point for BDD projects. Architecturally this is a Maven build with test-scoped dependencies only: cucumber-java, cucumber-junit-platform-engine, junit-platform-suite, and assertj-core. Dependencies are imported through BOMs, Java 17 is configured as the release target, and the Maven wrapper pins Maven 3.10.0. The primary data flow is Gherkin -> Cucumber engine -> annotated JUnit step methods -> AssertJ assertions. There is no web server, API, or business logic. The repository includes CI that runs the tests on Ubuntu and Windows across Java 17 and 21, Renovate for dependency updates, and a Zizmor workflow for GitHub Actions security analysis, indicating active project maintenance.

RATING: 7.7/10 MAINT: active DRIFT: low
β–Έ 1 reusable components found
healenium/healenium-web β˜… 201 45 APPLICATION

Healenium-web is a self-healing library for Selenium WebDriver-based tests. It wraps standard WebDriver instances in a SelfHealingDriver proxy that intercepts element lookup calls and attempts to heal failed locators by finding alternative strategies when elements aren't found. The architecture uses a chain of responsibility pattern with specialized processors for finding elements, retrieving reference data from a backend service, healing elements through various selector strategies, and saving results. The system communicates with a backend service (hlm-backend) to store and retrieve element metadata, enabling intelligent locator recovery across test runs.

RATING: 7.4/10 MAINT: stale DRIFT: low
β–Έ 5 reusable components found
AirtestProject/Airtest β˜… 9602 1454 APPLICATION

Airtest is a cross-platform UI automation testing framework developed by NetEase, primarily targeting mobile games and apps. It provides a unified Python API and CLI for automating interactions on Android, iOS, Windows, and Linux devices. The core mechanism is image recognition using computer vision algorithms (template matching, keypoint matching with SIFT/KAZE/BRISK, etc.) to locate UI elements, combined with device-specific input simulation via ADB, minitouch, WebDriverAgent, and pywinauto. The framework supports complex gestures, multi-touch, screen recording, and HTML report generation with step logs and screenshots. Architecturally, Airtest is a library with a CLI entry point (`airtest run/report/info`). It uses a device abstraction layer with platform-specific implementations (Android, IOS, Windows, Linux) that share a common API through `airtest.core.api`. The image matching is handled by the `aircv` subpackage, which offers multiple matching strategies configurable via `CVSTRATEGY`. The Android module employs a proxy pattern for screen capture (Minicap, Javacap, ADB) and touch input (Minitouch, Maxtouch, ADB), allowing runtime switching. The framework also integrates with the Poco UI hierarchy inspection tool and supports cloud device testing. While the primary focus is application testing, the repository includes a small benchmark directory that compares the performance of various image matching algorithms, producing metrics like CPU, memory, and keypoint counts. This is a minor component and does not shift the overall classification away from application. The codebase is well-structured with clear separation of concerns, but shows signs of technical debt such as Python 2 compatibility shims, pinned outdated dependencies (opencv-contrib-python ≀ 4.6.0.66, numpy < 2.0), and bundled precompiled binaries (minitouch, minicap, iproxy) that require periodic updates. The project is actively maintained with frequent commits and community engagement, but test coverage is limited due to reliance on real devices.

RATING: 7.3/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
pwicherski/TestowanieOprogramowania β˜… 199 94 APPLICATION

This repository is not a software application or data pipeline; it is a GitBook-based knowledge base and career guide for software testers, written entirely in Polish. It curates learning paths, book lists, blog directories, tool-specific resources (Selenium, Appium, Playwright, JMeter, Jenkins, etc.), certification guidance (ISTQB and others), job-search advice, remote/crowd testing opportunities, salary reports, and community/conference listings for the Polish QA ecosystem. There is no executable source code, API, CLI, or test suite; the 'application' classification is forced because the repo is a static documentation site rather than a data research project.

RATING: 7.1/10 MAINT: active DRIFT: low
── end of results ──
$ submit: