30 open-source projects similar to google/earlgrey, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
KIF is a functional testing framework and UI automation tool for iOS. It enables the simulation of user interactions and the verification of application states by driving interface components through their defined accessibility attributes. The framework utilizes an actor-pattern action wrapper to group reusable interaction sequences and allows the definition of custom, high-level test steps through a method-extension action library. It performs in-process interface driving, interacting with the application directly within the same process to execute actions and validate view states. The tool
WebDriverAgent is an on-device control agent and automation server that implements the WebDriver protocol for iOS devices. It serves as a bridge that enables the remote control of applications and the operating system on physical iOS devices and simulators for automated testing. The project provides a UI testing framework capable of interacting with on-screen elements, capturing screenshots, and simulating user gestures. It translates remote commands into native system calls to interact with the iOS accessibility hierarchy. The server covers a broad range of device orchestration and UI autom
Maestro is a declarative mobile and web UI automation framework designed for end-to-end testing. It operates by querying the native accessibility tree of an application, allowing for black-box testing without requiring source code instrumentation or platform-specific dependencies. The framework distinguishes itself through a unified command syntax that abstracts interactions across Android, iOS, and web environments. It features a dynamic synchronization engine that automatically pauses test execution to account for non-deterministic animations and network-dependent content loading, ensuring
This project is a component testing framework and utility designed for testing React components. It functions as a DOM testing library that allows for the verification of rendered output and component functionality without accessing internal implementation details. The library focuses on behavior driven development by simulating user interactions within a virtual DOM environment. It utilizes implementation-agnostic querying to locate elements via accessible roles and labels, ensuring that the interface is verified from the perspective of the user. The toolset covers frontend integration test
Protractor is a WebDriver-based end-to-end testing framework and browser automation tool. It serves as a frontend integration test suite used to verify web application flows by simulating user behavior and executing JavaScript within a browser. The framework is specifically designed for testing Angular applications, providing specialized locators and synchronization tools that align with the framework lifecycle. It distinguishes itself through automatic test step synchronization, which pauses execution until pending page tasks are completed to ensure stable browser execution. The tool covers
BackstopJS is an automated screenshot testing framework and visual regression testing tool designed to identify pixel-level discrepancies between different versions of a web application. It functions as a browser automation testing suite that captures visual snapshots of a user interface and compares them against stored reference images to detect unintended changes. The project utilizes a containerized testing environment via Docker to ensure consistent browser rendering and prevent cross-platform visual discrepancies. It includes a web UI diffing interface that allows users to analyze visual
Detox is a gray-box end-to-end testing framework designed for mobile applications. It automates user interactions and verifies interface states by synchronizing test execution with the internal readiness of the application, ensuring that scripts wait for background tasks, network requests, and animations to complete before proceeding. The framework distinguishes itself through native-side binary instrumentation, which allows it to monitor the application message queue and query the native view hierarchy in real time. By interacting directly with the application process, it avoids reliance on
axe-core is an automated accessibility testing engine and compliance auditor designed to scan web and mobile interfaces for violations of industry accessibility standards. It functions as a programmatic scanner and linter that analyzes HTML and source code to identify barriers and verify compliance with accessibility guidelines. The project distinguishes itself by combining a DOM-based rule engine with computer vision and machine learning to detect complex violations that evade traditional analysis, such as visual heading discrepancies and informative images. It provides specialized capabilit
Locust is a distributed performance testing framework that allows users to define complex system stress scenarios using standard Python code. By modeling concurrent users as classes with weighted tasks and lifecycle hooks, it enables the simulation of realistic user behavior across large-scale environments. The tool functions as a scalable load generator capable of orchestrating traffic across multiple worker nodes to measure system stability and responsiveness under heavy, real-world conditions. The framework is distinguished by its protocol-agnostic architecture, which supports diverse comm
Vitest is a high-performance testing framework designed for JavaScript and TypeScript applications. It provides an integrated environment that supports unit, integration, and browser-based testing, allowing developers to execute test suites natively without requiring separate build steps or complex configuration. The project distinguishes itself through a highly optimized execution model that leverages worker-thread isolation and on-demand module transformation to provide rapid feedback. It includes a comprehensive suite of mocking and spying utilities that allow for the interception of depen
Kiwi is a behavior-driven development framework and specification library for iOS. It functions as a wrapper for XCTest, allowing developers to define and execute software requirements as automated tests to verify application logic. The framework utilizes a domain-specific language to organize test cases into a nested hierarchy of descriptions. It includes a mocking system that employs runtime message interception and dynamic proxies to record invocations and return stubbed values. The system provides a fluent assertion interface to evaluate object states and uses a block-based engine to exe
A light-weight TDD / BDD framework for Objective-C & Cocoa
Quick is a behavior-driven development framework and testing tool for Swift and Objective-C. It functions as both a testing framework and an assertion library, providing the structures necessary to write and run automated tests. The project focuses on organizing test suites into nested, human-readable requirements to define expected software behavior. This approach allows developers to structure tests in a descriptive format that translates technical requirements into readable specifications. The framework covers functional validation and quality assurance for Apple platform development. It
This is a snapshot testing framework for Swift that records and compares reference images or data representations to detect regressions in application state. It functions as a visual regression testing tool and a data snapshotting library, converting complex types into stable formats to verify internal state and object properties. The framework utilizes a multi-format snapshot strategy, allowing values to be represented as images, strings, or data blobs. It includes a mechanism for defining custom snapshot strategies to convert specific data types into comparable formats based on custom logic
Capybara is a browser automation library and web application acceptance test framework used to simulate user behavior and verify functional requirements. It serves as a cross-browser testing tool and headless browser orchestrator, allowing for the execution of test suites across multiple browser engines. The project provides a driver-agnostic interaction layer that abstracts different browser engines, enabling users to switch between headless and full browser drivers. It supports multi-user session simulation by maintaining independent browser states and cookies to test interactions between i
Capybara is a browser automation testing library and framework for web application acceptance testing. It provides a high-level API for automating browser navigation and element interaction to validate user-facing features. The project features a cross-browser driver interface that allows switching between headless and full browser environments without modifying the underlying test code. This abstraction enables the simulation of complex web workflows across different browser drivers and environments. The suite covers user interaction simulation, including form filling, click events, and bro
Campus-imaotai is an automated liquor reservation tool designed to schedule and execute daily booking requests for high-demand products. It functions as an app interaction simulator that mimics human activities and network requests to meet application eligibility requirements. The system employs a dockerized task orchestrator for deployment and uses an automated notification gateway to provide real-time alerts on the success or failure of purchase attempts. It utilizes a multi-account orchestration system to manage various user profiles and uses store optimization logic to select target endpo
Pyppeteer is a Python library for controlling Chromium-based browsers using the Chrome DevTools Protocol. It functions as a headless browser automation tool, allowing for the programmatic navigation of web pages and the extraction of data from dynamic websites. The project provides low-level browser control through direct communication with the Chrome DevTools Protocol, enabling the interception and modification of network traffic. It differentiates itself by offering specialized performance profiling capabilities, including the measurement of JavaScript and CSS code coverage and the capture
This is a collection of sample projects that demonstrate how to write automated tests for Android applications. The samples cover a range of testing techniques, including simulating user interactions with the Espresso framework, verifying navigation and inter-component communication through intent interception, and managing activity, intent, and service lifecycles using reusable test rules. The repository provides concrete implementations for testing across multiple application windows, capturing screenshots during test execution for visual verification, and synchronizing test assertions with
Enzyme is a testing utility for React components designed to verify their output and behavior in a test environment. It serves as a test harness for UI components, providing tools to render visual elements, manage state transitions, and simulate synthetic events. The library distinguishes itself through multiple rendering modes, including a shallow rendering engine for isolated unit testing and full DOM rendering for testing deep integration. It employs an adapter-based integration system to maintain compatibility across different versions of the underlying framework. The toolkit covers a br
React Testing Library is a testing framework for verifying React components by interacting with rendered output instead of internal implementation details. It functions as a DOM testing utility and a frontend integration testing tool that mounts components into a virtual document object model for execution within Node.js environments. The library utilizes an accessibility-first query engine to locate user interface elements via ARIA roles and labels. This approach ensures web accessibility standards are met by mirroring how users perceive the interface rather than relying on implementation-sp
Codeception is a full-stack testing framework for PHP applications that provides a unified interface for unit, functional, and acceptance testing. It serves as a tool for automating real desktop and mobile browsers via the WebDriver protocol and acts as a client for testing REST and SOAP APIs. The framework is distinguished by its support for Behavior-Driven Development, allowing users to write human-readable test specifications in Gherkin language to align technical tests with business requirements. It implements actor-based action mapping to connect these natural language steps to executabl
Universe is a training and evaluation platform that transforms websites, games, and software into standardized environments for general intelligence agents. It functions as a reinforcement learning wrapper and remote environment orchestrator, providing a consistent interface to wrap diverse software for AI agent interaction. The platform distinguishes itself through a visual observation interface that streams real-time pixel data and transmits keyboard and mouse events to simulate human interaction. It utilizes a bi-directional communication protocol to deliver reward signals and performance
This project is a testing framework designed for React Native applications, providing a suite of tools to render components in a controlled memory environment. It enables developers to verify the behavior and structure of mobile interfaces by simulating user interactions and monitoring component lifecycle transitions. By isolating components from the rest of the application, it ensures that tests remain stable and independent. The framework distinguishes itself through an accessibility-first approach, prioritizing user-facing attributes like roles, labels, and text content when querying the c
Agent-S is a multimodal AI agent and LLM desktop automation framework designed to control operating systems through graphical user interface interactions. It functions as a computer use interface, utilizing vision-language grounding to translate natural language goals into precise screen coordinates and system actions. The project differentiates itself by combining structured accessibility tree inspection with vision-based element localization. It manages cross-application workflows by mapping conceptual descriptions to physical pixels and simulating low-level keyboard and mouse events to mov
Android-Boilerplate is a modular Android project template pre-configured with dependency injection, reactive streams, and testing tools to accelerate mobile application development. The codebase integrates Dagger for managing component dependencies and object lifecycles, and implements RxJava for asynchronous data streams and event-driven application state management. The application architecture incorporates a pre-configured testing suite using Espresso and Mockito for executing both unit and user interface instrumentation tests. Data handling includes local-first database persistence along
WebDriverAgent is an iOS device automation driver and server that enables the programmatic control of applications on physical devices and simulators. It functions as a bridge that exposes Apple XCUITest capabilities via a network interface, translating WebDriver commands into native iOS actions for mobile UI testing. The system implements a WebDriver server that uses the JSON Wire Protocol to receive instructions and return results. It translates these network requests into local commands to manage application lifecycles, perform screen gestures, and verify the presence of specific user inte
Awesome-adb is a curated collection of resources and utilities designed for interacting with Android devices via the command line. It serves as a comprehensive toolkit for developers and system administrators to facilitate the development, testing, and maintenance lifecycle of mobile applications and system software. The project provides a centralized reference for leveraging the Android Debug Bridge to perform complex tasks, including mobile automation, system-level debugging, and device fleet management. It covers a wide range of capabilities such as simulating user input for stress testing
Robotjs is a native Node.js automation library and desktop input simulator. It uses C++ bindings to provide low-level access to operating system functions, allowing for the programmatic control of the mouse and keyboard and the analysis of screen pixels. The library functions as a toolkit for automating user interfaces and desktop workflows, including those within Electron applications. It enables the simulation of key presses and mouse movements to automate interactions with desktop software and perform automated data entry. Its capabilities extend to screen pixel analysis, where it capture
The Haskell Language Server is an implementation of the Language Server Protocol that provides real-time diagnostics, code navigation, and refactoring support for Haskell projects. It functions as a backend service that enables advanced editing capabilities within standard text editors by facilitating communication between the development environment and the Haskell compiler. The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of independent components for specific language features. It leverages the host compiler as a library to perfo