GithubHelp home page GithubHelp logo

jsudhaharan / webtau Goto Github PK

View Code? Open in Web Editor NEW

This project forked from testingisdocumenting/webtau

1.0 0.0 0.0 18.67 MB

webtau - web test automation. test across REST-API/Graph QL/Browser/Database/CLI/Business-Logic

Home Page: https://testingisdocumenting.org/webtau/

License: Apache License 2.0

Java 52.22% Groovy 35.98% HTML 1.41% JavaScript 8.08% CSS 2.13% Shell 0.09% Kotlin 0.07% Batchfile 0.01%

webtau's Introduction

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

webtau's People

Contributors

dependabot[bot] avatar mattmetlis avatar mykolagolubyev avatar tsiq-clemens avatar tsiq-karold avatar tsiq-nick avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.