testingisdocumenting / Webtau

Licence: apache-2.0
Webtau (short for web test automation) is a testing API, command line tool and a framework to write unit, integration and end-to-end tests. Test across REST-API, Graph QL, Browser, Database, CLI and Business Logic with consistent set of matchers and concepts. REPL mode speeds-up tests development. Rich reporting cuts down investigation time.

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects

Projects that are alternatives of or similar to Webtau

Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (+20.51%)
Mutual labels:  graphql, rest-api, cli, database
Vulcain
Fast and idiomatic client-driven REST APIs.
Stars: ✭ 3,190 (+1944.87%)
Mutual labels:  graphql, rest-api, rest
Vscode Restclient
REST Client Extension for Visual Studio Code
Stars: ✭ 3,289 (+2008.33%)
Mutual labels:  graphql, rest-api, rest
Restheart
RESTHeart - The REST API for MongoDB
Stars: ✭ 659 (+322.44%)
Mutual labels:  rest-api, rest, database
Storefront Api
Storefront GraphQL API Gateway. Modular architecture. ElasticSearch included. Works great with Magento1, Magento2, Spree, OpenCart, Pimcore and custom backends
Stars: ✭ 180 (+15.38%)
Mutual labels:  graphql, rest-api, rest
Graphql2rest
GraphQL to REST converter: automatically generate a RESTful API from your existing GraphQL API
Stars: ✭ 181 (+16.03%)
Mutual labels:  graphql, rest-api, rest
Eliasdb
EliasDB a graph-based database.
Stars: ✭ 611 (+291.67%)
Mutual labels:  graphql, rest-api, database
V8 Archive
Directus Database API — Wraps Custom SQL Databases with a REST/GraphQL API
Stars: ✭ 486 (+211.54%)
Mutual labels:  graphql, rest-api, database
Siodb
The simplicity of REST and the power of SQL combined in a database that automatized security and performance. Forget the database, develop faster and safer!
Stars: ✭ 31 (-80.13%)
Mutual labels:  rest-api, rest, database
App
Reusable framework for micro services & command line tools
Stars: ✭ 66 (-57.69%)
Mutual labels:  graphql, cli, database
Evolutility Server Node
Model-driven REST or GraphQL backend for CRUD and more, written in Javascript, using Node.js, Express, and PostgreSQL.
Stars: ✭ 84 (-46.15%)
Mutual labels:  rest-api, rest, database
Httpie
As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+33907.69%)
Mutual labels:  rest-api, rest, cli
Prest
PostgreSQL ➕ REST, low-code, simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new
Stars: ✭ 3,023 (+1837.82%)
Mutual labels:  rest-api, rest, database
Automatic Api
A list of software that turns your database into a REST/GraphQL API
Stars: ✭ 1,583 (+914.74%)
Mutual labels:  graphql, rest-api, rest
Gen
Converts a database into gorm structs and RESTful api
Stars: ✭ 825 (+428.85%)
Mutual labels:  rest-api, rest, database
Json Serverless
Transform a JSON file into a serverless REST API in AWS cloud
Stars: ✭ 108 (-30.77%)
Mutual labels:  graphql, rest-api, rest
Sandman2
Automatically generate a RESTful API service for your legacy database. No code required!
Stars: ✭ 1,765 (+1031.41%)
Mutual labels:  rest-api, rest, database
Ssm
👅基于RESTful风格的前后端分离的SSM框架,集成了shiro和swagger等框架
Stars: ✭ 141 (-9.62%)
Mutual labels:  rest-api, rest
Api Generator
Api Generator是一款可以自动解析Controller类抽取REST接口信息并自动上传YApi的IDEA插件。YApi好伴侣,从此维护文档再也不是事儿了!
Stars: ✭ 139 (-10.9%)
Mutual labels:  rest-api, rest
Interviews
A list of fancy questions I've been asked during the interviews I had. Some of them I ask when interviewing people.
Stars: ✭ 140 (-10.26%)
Mutual labels:  rest, database

build

Webtau

Web Test Automation User Guide

logo

Webtau (Web Test automation) - concise and expressive way to write end-to-end and unit tests.

Test your application across multiple layers:

  • REST API
  • GraphQL API
  • Web UI
  • CLI
  • Database
  • Business Logic (JVM only)

Use one layer to re-enforce tests on another. E.g. REST API layer to set up data for Web UI test, or database layer to validate GraphQL API.

Use REPL to tighten test feedback loop and speed up test writing

webtau:000> $("ul li a")
element is found: by css ul li a
           getText(): Guide
getUnderlyingValue(): Guide
               count: 3

Capture test artifacts like API Responses, screenshots, command line output to automate your user facing documentation.

Leverage out of the box rich reporting: report example

Tests can be written in any JVM language. Language specific syntactic sugar is available for Groovy.


REST test Groovy example:

scenario("check weather") {
    http.get("/weather") {
        temperature.shouldBe < 100
    }
}

Browser test Java example:

@WebTau
public class WebSearchTest {
    @Test
    public void searchByQuery() {
        search.submit("search this");
        search.numberOfResults.waitToBe(greaterThan(1));
    }
}

public class SearchPage {
    private final PageElement box = $("#search-box");
    private final PageElement results = $("#results .result");
    public final ElementValue<Integer> numberOfResults = results.getCount();

    public void submit(String query) {
        browser.open("/search");

        box.setValue(query);
        box.sendKeys(browser.keys.enter);
    }
}

GraphQL example:

@Webtau
public class GraphQLWeatherJavaIT {
    @Test
    public void checkWeather() {
        String query = "{ weather { temperature } }";
        graphql.execute(query, (header, body) -> {
            body.get("data.weather.temperature").shouldBe(lessThan(100));
        });
    }
}

Database data setup example:

def PRICES = db.table("PRICES")
PRICES << [     "id" | "description" |          "available" |                "type" |       "price" ] {
           _____________________________________________________________________________________________
           cell.guid | "nice set"    |                 true |                "card" |            1000
           cell.guid | "nice set"    |                 true |                "card" | cell.above + 10
           cell.guid | "another set" | permute(true, false) | permute("rts", "fps") | cell.above + 20 }

CLI run example:

cli.run('echo hello world') {
    output.should contain('hello')
    output.should contain('world')
}

Learn More

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].