WebTau

webtau - web test automation. REST and UI testing framework.

License

License

GroupId

GroupId

com.twosigma.webtau
ArtifactId

ArtifactId

webtau-parent
Last Version

Last Version

1.20
Release Date

Release Date

Type

Type

pom
Description

Description

WebTau
webtau - web test automation. REST and UI testing framework.
Project URL

Project URL

https://github.com/twosigma/webtau
Source Code Management

Source Code Management

https://github.com/twosigma/webtau

Download webtau-parent

Filename Size
webtau-parent-1.20.pom 29 KB
Browse

How to add to project

<!-- https://jarcasting.com/artifacts/com.twosigma.webtau/webtau-parent/ -->
<dependency>
    <groupId>com.twosigma.webtau</groupId>
    <artifactId>webtau-parent</artifactId>
    <version>1.20</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.twosigma.webtau/webtau-parent/
implementation 'com.twosigma.webtau:webtau-parent:1.20'
// https://jarcasting.com/artifacts/com.twosigma.webtau/webtau-parent/
implementation ("com.twosigma.webtau:webtau-parent:1.20")
'com.twosigma.webtau:webtau-parent:pom:1.20'
<dependency org="com.twosigma.webtau" name="webtau-parent" rev="1.20">
  <artifact name="webtau-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.twosigma.webtau', module='webtau-parent', version='1.20')
)
libraryDependencies += "com.twosigma.webtau" % "webtau-parent" % "1.20"
[com.twosigma.webtau/webtau-parent "1.20"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • webtau-utils
  • webtau-utils-testing-data
  • webtau-console
  • webtau-core
  • webtau-core-groovy
  • webtau-standalone-runner-groovy
  • webtau-browser
  • webtau-http
  • webtau-http-groovy
  • webtau-open-api
  • webtau-pdf
  • webtau-json-schema
  • webtau-data
  • webtau-cache
  • webtau-test-server
  • webtau-cli
  • webtau-cli-groovy
  • webtau-groovy-ast
  • webtau-groovy
  • webtau-reactjs
  • webtau-report
  • webtau-java-runner
  • webtau-junit5
  • webtau-junit5-groovy
  • webtau-junit5-examples
  • webtau-junit4
  • webtau-junit4-examples
  • webtau-junit-like-examples-common
  • webtau-testapp
  • webtau-config
  • webtau-feature-testing
  • webtau-report-testing
  • webtau-cli-testing
  • webtau-docs
  • webtau-maven-plugin
  • webtau-maven-plugin-test
  • webtau-maven-plugin-test-skip
  • webtau-shaded
  • webtau-dist
  • webtau

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

com.twosigma.webtau

Two Sigma

Versions

Version
1.20
1.19
1.18
1.17
1.16
1.15
1.13
1.12
1.11
1.10
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1.0
0.31
0.30
0.29
0.28
0.27
0.25
0.23