Skip to content

ygrip/testara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 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

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages