98 Repos
Utilities for unit, integration, and end-to-end testing.
Explore 98 awesome GitHub repositories matching part of an awesome list · Testing Tools. Refine with filters or upvote what's useful.
Playwright is a comprehensive browser automation framework designed for end-to-end testing and web workflow automation. It provides a unified API to drive web applications across multiple browser engines, enabling developers to simulate complex user interactions, perform web scraping, and validate application behavior in consistent, isolated environments. The framework distinguishes itself through a web-first testing paradigm that prioritizes stability and resilience. By utilizing an auto-waiting actionability engine and accessibility-tree-based locators, it eliminates common sources of test
Reliable end-to-end testing for modern web apps.
Jest is a JavaScript testing framework that integrates a test runner, an assertion library, and a snapshot testing tool. Its primary purpose is to provide a comprehensive environment for writing and running automated JavaScript tests to verify software correctness. The framework is distinguished by its snapshot testing capabilities, which capture the state of large objects or rendered components to detect regressions over time. It also features a reactive watch mode that monitors file changes and automatically executes only the tests related to modified code. The project covers a broad range
Painless testing framework for JavaScript.
Selenium is a comprehensive browser automation framework that provides a standardized interface for controlling web browsers to perform automated tasks, user interactions, and data extraction. It functions as a cross-browser testing tool, enabling developers to execute identical automation scripts across various browser engines and operating systems to ensure consistent application behavior. By implementing the WebDriver protocol, it maps high-level automation commands to browser-specific drivers using a standardized HTTP-based wire protocol. The project distinguishes itself through its distr
Listed in the “Testing Tools” section of the Awesome Python awesome list.
Playwright MCP is a browser automation server that provides a standardized interface for connecting large language models to web navigation and interaction capabilities. By operating as a Model Context Protocol server, it enables external AI agents to execute browser-based tasks, extract data, and perform complex web sequences through a unified communication protocol. The project distinguishes itself by acting as a remote controller that manages headless browser lifecycles and isolated automation contexts. It maintains session-based state isolation, allowing for distinct user profiles and per
Provides browser automation via the Model Context Protocol.
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
Listed in the “Testing Tools” section of the Awesome Python awesome list.
Enzyme is a JavaScript component testing utility and test suite used to verify the behavior and rendered output of user interface components. It provides tools for simulating user interactions, updating component properties, and asserting that the resulting interface state matches expected outcomes. The project utilizes a pluggable adapter system to connect different user interface frameworks, allowing for consistent testing patterns across various libraries and versions. This architecture enables the verification of components across multiple UI library versions and different test runners.
Testing utilities for component inspection.
Faker is a Python library designed to generate realistic synthetic data for software testing, database prototyping, and privacy-preserving anonymization. It provides a comprehensive suite of tools to create diverse information types, including personal identities, financial records, geographic locations, and technical system metadata, allowing developers to populate environments with mock data that mimics real-world structures. The library is built on a modular provider architecture that supports dynamic method dispatch, enabling users to extend functionality by registering custom data genera
Listed in the “Testing Tools” section of the Awesome Python awesome list.
Playwright for Python is a browser automation framework designed for end-to-end testing, web scraping, and user interaction simulation. It functions as a headless browser controller that enables programmatic navigation, data extraction, and the execution of complex workflows across multiple rendering engines. The framework distinguishes itself through an actionability-aware interaction engine that automatically verifies element readiness before performing actions, significantly reducing test flakiness. It utilizes isolated browser contexts to maintain separate storage and cookies for parallel
Listed in the “Testing Tools” section of the Awesome Python awesome list.
pytest ist ein Test-Framework für Python, das einen Befehlszeilen-Runner zum Entdecken und Ausführen von Testsuiten bereitstellt. Es basiert auf einer modularen Architektur, die Standard-Sprach-Assertions verwendet, um die Korrektheit des Codes zu verifizieren, und Ausdrücke automatisch inspiziert, um detaillierte Fehlerberichte zu liefern, ohne dass spezialisierte Assertions-Methoden erforderlich sind. Das Framework zeichnet sich durch ein Dependency-Injection-System aus, das Setup- und Teardown-Logik verwaltet, indem es Ressourcen automatisch auflöst und in Testfunktionen injiziert. Es bietet zudem eine Hook-basierte Plugin-Architektur, die eine tiefe Anpassung des Test-Lebenszyklus ermöglicht, einschließlich Sammlung, Ausführung und Berichterstattung. Diese Fähigkeiten werden durch dynamische Parametrisierung unterstützt, die mehrere Testinstanzen aus einer einzigen Definition generiert, sowie durch persistentes State-Caching, das das selektive erneute Ausführen fehlgeschlagener Tests über Sitzungen hinweg ermöglicht. Über das Kern-Ausführungsmodell hinaus bietet das Projekt eine umfassende Suite von Tools zur Verwaltung von Testumgebungen, einschließlich Output-Capture, Log-Management und Warnungsvalidierung. Es unterstützt komplexe Testszenarien durch Funktionen wie temporäres Dateimanagement, Objekt-Patching und die Möglichkeit, bestehende Testsuiten anderer Frameworks nativ auszuführen. Die Konfiguration erfolgt über zentralisierte Dateien, was eine fein abgestimmte Kontrolle über Testentdeckung, Filterung und Ausführungsverhalten ermöglicht. Das Projekt wird als Standard-Python-Paket vertrieben und enthält eine umfangreiche Dokumentation zu Konfiguration, Plugin-System und Befehlszeilenschnittstelle.
Listed in the “Testing Tools” section of the Awesome Python awesome list.
PyAutoGUI is a Python GUI automation library and desktop automation framework. It provides a set of tools for programmatically controlling the mouse and keyboard to automate user interface interactions across different operating systems. The project functions as a cross-platform input simulator and computer vision screen scanner. It enables the simulation of keystrokes and cursor movements to perform repetitive tasks and utilizes screen analysis to locate specific images or pixel colors on the display. Its capability surface includes mouse and keyboard input simulation, screen image capture,
Listed in the “Testing Tools” section of the Awesome Python awesome list.
gdb-dashboard is a visual frontend and Python-based extension for GDB. It provides a modular dashboard that enables real-time visualization of program state during debugging sessions. The project replaces manual command-line interaction with a structured visual interface. It utilizes syntax highlighting for program state data to improve readability and analysis during the debugging process. The system focuses on C and C++ debugging, automating the monitoring of program memory and execution state through a text-based user interface. It achieves this by integrating with GDB APIs to retrieve sy
Visual interface for GDB debugging.
Robot Framework is a keyword-driven automation framework designed for acceptance testing and robotic process automation. It utilizes a human-readable, tabular syntax to define test cases and workflows, separating the automation logic from the underlying implementation. By mapping plain-text keywords to executable commands, the framework enables the creation of maintainable and reusable automation sequences. The platform distinguishes itself through a modular architecture that supports the integration of custom libraries and external modules. This extensibility allows users to expand the frame
Listed in the “Testing Tools” section of the Awesome Python awesome list.
WebDriverIO is a Node.js test automation framework used for automating functional tests across web browsers and mobile applications. It acts as a WebDriver protocol client that manages remote browser sessions and executes commands against WebDriver and Appium servers to perform end-to-end testing. The framework is distinguished by its ability to control both native and hybrid mobile applications and its support for running automated suites across local machines, remote grids, and cloud device providers. It includes specialized capabilities for coordinating multi-browser interactions and estab
Automates browser and mobile testing.
Hypothesis is a Python property-based testing library and data generation engine. It enables the discovery of edge cases and bugs by generating a wide range of randomized inputs based on defined strategies and shrinking complex failing examples to their smallest possible form. It also functions as a state machine testing framework to verify system behavior across sequences of interdependent operations. The project features a fuzzing integration layer that converts raw byte buffers from coverage-guided fuzzers into structured test cases. It includes a persistence mechanism to store and synchro
Listed in the “Testing Tools” section of the Awesome Python awesome list.
ts-jest is a TypeScript compilation tool and transformer that enables the Jest testing framework to execute tests written in TypeScript. It functions as a bridge that transpiles typed source code into executable JavaScript while maintaining the necessary integration for test runner execution. The project distinguishes itself by providing on-the-fly type diagnostics and pre-test type validation to identify structural errors before the execution phase. It includes a source map handler that links compiled JavaScript output back to the original TypeScript source lines to ensure accurate error sta
Enables TypeScript support for Jest testing.
BATS ist ein Test-Framework und ein Automatisierungstool für Shell-Skripte und Unix-Programme. Es fungiert als Test-Runner, der das Verhalten von Shell-Skripten validiert, indem er den Erfolg von Befehlen und Exit-Codes durch automatisierte Test-Suiten verifiziert. Das Framework bietet eine kompatible Schnittstelle für das Test Anything Protocol (TAP), wodurch Ergebnisse für die Integration in externe Reporting-Tools und Build-Pipelines exportiert werden können. Es unterstützt zudem die Verwendung von Container-Images, um eine konsistente Ausführung von Test-Suiten über verschiedene Betriebssysteme hinweg sicherzustellen. Das System verwaltet die automatisierte Ausführung von Testfällen, einschließlich der Validierung des Shell-Skript-Verhaltens und der Generierung standardisierter Berichte.
Bash automated testing system.
Mimesis ist ein Python-Generator für synthetische Daten, der zur Erstellung realistischer Testdatensätze und Mock-Daten für die Softwareentwicklung verwendet wird. Er fungiert als schema-basierter Datengenerator, der strukturierte Datensätze und relationale Daten erzeugen kann, und dient zudem als Anonymisierungstool für Produktionsdaten, um sensible Informationen durch synthetische Werte zu ersetzen. Die Bibliothek zeichnet sich durch umfassende Unterstützung für mehrere Sprachen aus, was die Generierung lokalisierter Informationen zur Simulation regionaler Benutzerprofile ermöglicht. Sie stellt Reproduzierbarkeit durch deterministische Datengenerierung mittels Seeds sicher, was konsistente Datensätze über verschiedene Durchläufe hinweg erlaubt. Das Tool deckt eine breite Palette an synthetischen Inhalten ab, darunter persönliche Identitäten, Finanzdaten, geografische Adressen, Netzwerk-Metadaten und wissenschaftliche Sequenzen. Die Funktionen erstrecken sich auf Datentransformation durch bedingte Logik und Piping sowie die Integration mit Dataframes und Factory-Mustern. Zudem unterstützt es die Generierung standardisierter Systemcodes, kryptografischer Token und das Mocking von Binärdateien. Das Framework ist über benutzerdefinierte Datenanbieter und Field-Handler erweiterbar, wodurch Benutzer domänenspezifische Logik und externe JSON-Dateien für spezialisierte Datengenerierung integrieren können.
Listed in the “Testing Tools” section of the Awesome Python awesome list.
Freezegun ist eine Python-Time-Mocking-Bibliothek und ein System-Clock-Emulator, der dazu verwendet wird, die Systemuhr auf ein festes Datum und eine feste Uhrzeit einzufrieren. Sie dient als Test-Utility, um sicherzustellen, dass zeitabhängige Logik während der Softwareverifizierung konsistente und vorhersagbare Ergebnisse liefert. Die Bibliothek bietet einen Asyncio-kompatiblen Mock, der reale monotone Uhrwerte bewahrt, um zu verhindern, dass Event-Loops hängen bleiben, während andere Systemzeitfunktionen eingefroren bleiben. Sie unterstützt die Simulation des Zeitverlaufs durch manuelles Vorrücken der Uhr, Springen zu bestimmten Daten oder die Verwendung einer tickenden Uhr-Simulation, die die Zeit automatisch zwischen Aufrufen inkrementiert. Das Tool enthält eine Mocking-Ausschlussliste, um zu verhindern, dass spezifische Bibliotheken abgefangen werden, wodurch sichergestellt wird, dass interne Abhängigkeiten und Drittanbieter-Integrationen stabil bleiben.
Listed in the “Testing Tools” section of the Awesome Python awesome list.
Responses ist eine Python-Mocking-Bibliothek, die darauf ausgelegt ist, ausgehende HTTP-Aufrufe, die mit der Requests-Bibliothek getätigt werden, abzufangen, um vordefinierte simulierte Antworten zurückzugeben. Sie fungiert als Framework zur Request-Verifizierung und als Netzwerksimulationstool, das die Überprüfung des Anwendungsverhaltens gegenüber verschiedenen API-Antwortmustern ermöglicht, ohne echte Netzwerkaufrufe zu tätigen. Das Projekt zeichnet sich durch einen Traffic-Recorder aus, der echte Netzwerkinteraktionen erfasst und zur deterministischen Wiedergabe in Dateien speichert. Es ermöglicht zudem die Simulation komplexer Netzwerkszenarien, einschließlich des Auslösens von Verbindungs-Timeouts, Netzwerkfehlern und HTTP-Weiterleitungen. Die Bibliothek bietet Funktionen für dynamische API-Simulation mittels Callback-gesteuerter Antworten und sequenzieller Antwort-Queues, um Zustandsänderungen zu testen. Sie enthält Tools zur Verifizierung von Request-Daten und Attributvalidierung, um sicherzustellen, dass ausgehende Header, Bodies und Query-Parameter den erwarteten Kriterien entsprechen. Mock-Konfigurationen und Registries werden über Dekoratoren und Context-Manager verwaltet, um Verhaltensweisen zwischen Testfällen zu isolieren.
Listed in the “Testing Tools” section of the Awesome Python awesome list.
Tox ist ein Python-Testautomatisierungs-Framework und ein Manager für virtuelle Umgebungen. Es fungiert als Multi-Version-Kompatibilitätstester, der die Erstellung und Verwaltung isolierter Umgebungen automatisiert, um zu verifizieren, dass Paket-Builds und -Installationen über verschiedene Sprachimplementierungen und Abhängigkeitssätze hinweg funktionieren. Das Tool fungiert als Frontend für Continuous-Integration-Pipelines und synchronisiert die lokale Testausführung mit Remote-Server-Pipelines, um Workflows zu standardisieren. Es nutzt matrixbasierte Konfigurationsauflösung, um Sätze von Zielumgebungen basierend auf Kombinationen von Sprachversionen und Abhängigkeitsfaktoren zu generieren. Das System bietet ein umfassendes Umgebungsmanagement, einschließlich der Möglichkeit, aufgelöste Konfigurationen zu inspizieren und gezielte Tests innerhalb spezifischer isolierter Kontexte auszuführen. Es handhabt zudem die Integration der Paketverteilung durch das Bauen und Installieren lokaler Pakete in virtuelle Umgebungen, um die Installationsstabilität zu verifizieren.
Listed in the “Testing Tools” section of the Awesome Python awesome list.