Skip to content

Latest commit

 

History

History
157 lines (107 loc) · 5.03 KB

README.md

File metadata and controls

157 lines (107 loc) · 5.03 KB

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