Skip to content

oneteme/assertapi-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

assertapi-core

AssertAPI is a Java library designed for testing RESTful APIs. It allows developers to easily write and automate tests, while also enabling collaboration with QA teams.

Features

Here are some of the key features of AssertAPI:

  • Tests can be defined in JSON format, making it easy to write and maintain test cases.
  • Supports testing of APIs using different authentication methods, such as BASIC and BEARER.
  • Can compare API responses in different formats, including JSON, XML, TXT, CSV, and more.
  • Supports testing of API migrations between different versions.
  • Developers can extend AssertAPI's functionality by injecting their own classes for authentication, comparison, and response transformation.
  • Tests can be executed automatically before each deployment to production.
  • AssertAPI promotes collaboration between developers and QA teams.

...

Status

CI/CD Quality Gate Status

Problem

text..

CI/CD

Solution

text..

CI/CD

Integration

text..

CI/CD

Usecase

text..

CI/CD

Overview

text..

CI/CD

Setup

text..

CI/CD

Deploy

text..

CI/CD

Assertion

text..

CI/CD

Architecture

text..

CI/CD

Extensibility

Developers can extend the functionality of AssertAPI by injecting their own classes to override authentication, comparison, and transformation of responses before comparison. This makes AssertAPI highly customizable and flexible to fit your specific needs.

MAVEN Integration

<dependency>
  <groupId>io.github.oneteme.assertapi</groupId>
  <artifactId>assertapi-core</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</dependency>

Usage

var assertion = new ApiAssertionFactory()
        .comparing(stableRelease, latestRelease) //run api on stable and latest server
        .using(responseComparator) // ResponseComparator by default
        .build() 
        .assertApi(api); // compare results each other

Handle assertion result

var assertion = new ApiAssertionFactory()
        .comparing(stableRelease, latestRelease)
        .using(responseComparator)
        .trace((api, res)-> log.debug("testing : {} => {}", api, res)) //log api compare result
        .build()
        .assertApi(api);

Register custom Client Authenticator

var assertion = new ApiAssertionFactory()
        .regiter("BASIC_TOKEN", customTokenAuthenticator) // customTokenAuthenticator must implements ClientAuthenticator
        .comparing(stableRelease, latestRelease)
        .using(responseComparator)
        .build()
        .assertApi(api);

Comparison Stages

  1. ELAPSED_TIME
  2. HTTP_CODE
  3. CONTENT_TYPE
  4. HEADER_CONTENT
  5. RESPONSE_CONTENT

ApiRequest

Field Description default
uri HTTP uri
method HTTP method GET
headers HTTP headers N/A
body HTTP body N/A
acceptableStatus HTTP expected status [200]
name API name N/A
version API version N/A
description API description N/A
contentComparator Content comparator N/A
executionConfig Execution configuration N/A

ContentComparator

Field Description default
type Content comparator type N/A
transformers Content transformers N/A

ExecutionConfig

Field Description default
parallel API Parallel execution true
enabled API Assertion enabled true