Skip to content

ygrip/testara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Testara

Testara

Persistent and assurance-driven full-stack automation framework for Java.

Testara is a modular test automation framework built on Java 21 that provides a unified API for API testing, UI automation, database verification, streaming validation, and more — all integrated with Cucumber BDD and JUnit 5.

Features

  • API Testing — RestAssured-based HTTP client with concurrent request support and WireMock integration
  • UI Automation — Engine-agnostic abstraction supporting Selenium, Playwright, and Appium with Screenplay-style interactions
  • Database Testing — MongoDB, PostgreSQL, MariaDB, and MySQL verification
  • Streaming — Kafka producer/consumer testing with Reactor Kafka
  • Elasticsearch — Search index validation and querying
  • Security — SSH/remote command execution via SSHJ
  • BDD — Cucumber 7 step definitions with a custom ObjectFactory and scope isolation
  • JUnit 5 — Custom TestEngine with parallel execution support
  • Reporting — Maven plugin generating HTML test reports with Thymeleaf templates
  • Spring Integration — Optional Spring Boot auto-configuration and bean scoping
  • Command Engine — Extensible command/expression parser with data generation (DataFaker)
  • Validation — Rich assertion library built on AssertJ with declarative validation rules
  • Testara Agent — AI-assisted skills for summarizing, reviewing, generating, and running tests

Modules

Module Description Docs
testara-core Foundation: config, JSON/CSV/Excel mapping, class scanning, SPI factories
testara-command Command parser and expression engine with data generators Documentation
testara-validation Assertion and validation framework Documentation
testara-api REST API testing (RestAssured) Documentation
testara-ui UI automation core (engine-agnostic) Documentation
testara-ui-selenium Selenium WebDriver engine UI Docs
testara-ui-playwright Playwright engine UI Docs
testara-ui-appium Appium engine for mobile testing UI Docs
testara-database Database testing (MongoDB, PostgreSQL, MariaDB, MySQL)
testara-streaming Kafka streaming testing
testara-elastic Elasticsearch testing
testara-security SSH and remote execution
testara-cucumber Cucumber BDD integration
testara-junit5 JUnit 5 TestEngine
testara-spring Spring Boot auto-configuration
testara-properties External config from Consul and Vault
testara-reporter-plugin Maven plugin for HTML test reports Documentation
testara-bom Bill of Materials for version alignment
testara-*-cucumber Pre-built Cucumber step definitions for each module
testara-agent Agentic skill engine (project indexing, feature parsing, skills) Documentation
testara-agent-cli CLI for all Testara Agent skills + MCP server mode Documentation

Testara Agent

Testara Agent is an AI-assisted CLI and MCP server that scaffolds, reviews, plans, and executes Testara automation projects. It understands the full Testara runtime — properties, commands, validations, request specs, pages, actions, and Cucumber steps.

Install

curl -fsSL https://github.com/ygrip/testara/releases/latest/download/install.sh | bash

The installer downloads the agent, writes a wrapper, and automatically configures MCP for VS Code, Cursor, Claude Desktop, and Claude Code. Pass --no-mcp (or set TESTARA_SKIP_MCP=1) to skip MCP auto-configuration.

3-Step Quick Start

# 1. Scaffold a new project (interactive prompts for group ID, artifact, type)
mkdir my-tests && cd my-tests
testara-agent test-init

# 2. Generate a Testara-flavor Cucumber feature
testara-agent test-plan 'test the payment refund approval' --write

# 3. Run the tests
TESTARA_AGENT_RUN_ENABLED=true testara-agent test-run 'payment refund' --execute

Skills

Skill Description
test-init Interactive project scaffold — asks group ID, artifact, type
test-plan Generate Testara-flavor feature with properties() values and request specs
test-run Resolve intent → Cucumber tags → optional Maven execution
test-command List / detail / generate CommandLogic classes
test-validation List / detail / generate ValidatorLogic classes
test-overview Project statistics
test-review Quality review + Testara Flavor Score
testara-context Runtime context: slices, config coverage, available steps
testara-property Property key management and properties() generation
testara-api API config and request spec generation
testara-ui Page, UserAction, and engine config generation
testara-db SQL / Mongo / Kafka config and feature templates
testara-guide Embedded generation rules and guardrails
knowledge Manage profile cache (cold: ~3s → warm: ~0.5s)

Generation quality

Every generated feature reports two scores:

  • Testara Flavor Score — % of steps using Testara built-in steps (target ≥ 80%)
  • Runtime Context Score — % of values correctly using properties() (target ≥ 90%)

Guardrails flag hardcoded URLs, credentials, and missing scan-location config before returning output.

See Testara Agent documentation for full skill reference, MCP setup, interactive init, generation rules, and security model.

Documentation

  • Testara Agent — All 8 agentic skills, MCP tools+prompts, knowledge store, YAML config, Docker, security model
  • Command Engine — All 50+ built-in commands, syntax reference, and how to create custom commands
  • Validation — All 40+ validators, usage patterns, and how to create custom validations
  • API Testing — Service configuration, request building, load testing, and interceptors
  • UI Automation — Engine setup (Selenium/Playwright/Appium), interactions, observations, page objects, and extensibility
  • Reporter Plugin — HTML report generation from Cucumber JSON, templates, customization, and CLI usage

Requirements

  • Java 21+
  • Maven 3.9+

Installation

Add the BOM to your project's dependency management:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.github.ygrip</groupId>
      <artifactId>testara-bom</artifactId>
      <version>${testara.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Then add the modules you need:

<dependencies>
  <!-- API testing -->
  <dependency>
    <groupId>io.github.ygrip</groupId>
    <artifactId>testara-api</artifactId>
  </dependency>

  <!-- UI testing with Selenium -->
  <dependency>
    <groupId>io.github.ygrip</groupId>
    <artifactId>testara-ui-selenium</artifactId>
  </dependency>

  <!-- Cucumber BDD steps for API -->
  <dependency>
    <groupId>io.github.ygrip</groupId>
    <artifactId>testara-api-cucumber</artifactId>
  </dependency>

  <!-- JUnit 5 engine -->
  <dependency>
    <groupId>io.github.ygrip</groupId>
    <artifactId>testara-junit5</artifactId>
  </dependency>
</dependencies>

Building from Source

git clone https://github.com/ygrip/testara.git
cd testara
mvn clean install

License

This project is licensed under the Apache License 2.0.

Author

Yunaz Gilang Ramadhan@ygrip

About

Testara is a Java automation framework focused on clean abstraction and reusable baselines, enabling teams to build scalable test automation using Cucumber, JUnit, and optional Spring integration.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages