/webtau

WebTau (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, WebSocket, GraphQL, Browser, Database, CLI and Business Logic with a consistent set of matchers and concepts. REPL mode speeds-up tests development. Rich reporting cuts down investigation time.

Primary LanguageJavaApache License 2.0Apache-2.0

build

Discord Server

Join Testing Is Documenting Discord Server to ask questions and discuss features/bugs

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 and use unique features:

There are many modules, but you can use any module you need independently, or use all the modules at once with convenient single imports.

Unique Console Output

WebTau console output keeps you informed at all times:

image of http resource code and its output

Data Coverage output example:

image of http data coverage

Supercharged Unit Testing Capabilities

image of map comparison

Testing Command Line Tools

Testing command lines tools never been easier:

def helloWorld = cli.runInBackground("scripts/hello-world")
helloWorld.output.waitTo contain("enter your name")

helloWorld.send("webtau\n")
helloWorld.output.waitTo contain("hello webtau")

helloWorld.stop()

Learn More

WebSockets

Unbelievably simple way to wait and validate WebSocket messages:

image of websocket test code

Learn more

Personas

Personas concept lets you simplify Authorization Testing scenarios:

image of http persona groovy

image of http persona java

Java, Kotlin, Groovy Scripts

Tests can be written and executed as scripts via command line or using JUnit integration and build systems.

browser testing example using scripting

scenario("search by specific query") {
    search.submit("search this")
    search.numberOfResults.waitToBe > 1
}

$ webtau testscript.groovy

browser testing example using JUnit

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

Rich Reporting

Leverage out of the box rich reporting to speed up investigation and persist testing evidences:

report example