Skip to content

Enedis-OSS/chutney

Repository files navigation

Chutney

Spice up your spec , Better taste your app !

Build REUSE GitHub Release Maven Central Version GitHub Release License


Summary


Introduction

Chutney aims to test deployed software in order to validate functional requirements.

Chutney scenarios are declarative written with a kotlin dsl. They provide functional requirements and technical details (needed for automation) in a single view.

Chutney is also released as a standalone application including a test execution engine and a web front end to consult test reports.

Technical details are provided by generic Actions (such as HTTP, AMQP, MongoDB, Kafka, Selenium, etc.)
Those Actions are extensions, and you can easily develop yours, even proprietary or non-generic one, and include them in your own release.

In addition, Chutney provide SpEL evaluation and extensible Function in order to ease the use of managing scenario data like JSON path or Date comparison.

Find out more in the documentation !

Still asking yourself "Why another test tool ?"


Demo

Follow the documentation to launch a Chutney demo container.
The Chutney web interface should be visible at http://localhost.


Installation

Locally

In order to install Chutney on your machine, you can use Java or Docker. See Start a server.

On premise

See installation on premise, for details if you want to customize your own version of chutney server.


Scenario Example

You can find all the documentation of how to write a scenario here.

Scenario

Here is an example of a scenario written in Kotlin (source code)

  const val TARGET = "SWAPI"
  
  val root_list_all_resources =
  Scenario(
    id = 123000,
    title = "SWAPI - The Root resource provides information on all available resources",
    tags = listOf(TAG)
  ) {
    When("When request SWAPI root") {
      HttpGetAction(
        target = TARGET,
        uri = "/",
        validations = mapOf(
          httpStatusOK()
        )
      )
    }
    Then("Then all resources are listed") {
      JsonAssertAction(
        document = "body".spEL(),
        expected = mapOf(
          "$.films" to "\$isNotNull",
          "$.people" to "\$isNotNull",
          "$.planets" to "\$isNotNull",
          "$.species" to "\$isNotNull",
          "$.starships" to "\$isNotNull",
          "$.vehicles" to "\$isNotNull"
        )
      )
    }
  }
  • In this example the scenario will list resources provided by swapi api using http get action.
  • Then it will some expected resources are found in the api response using json assertion action.
  • All available Chutney Actions are documented here.

Execution report

In Intellij

When executing the previous scenario from your intellij using a junit test, the execution report will be printed in the console. swapi-ide-report.png

In chutney UI

After synchronizing the previous scenario with a running chutney server, you can run it from the UI. swapi-ui-report.png

More examples

You can find some other example with http,jms, kafka, rabbit or sql here


Documentation

Get the official documentation for more information about how Chutney works.


Contributing ?

PRs Welcome

See the Getting started, which document how to install and setup the required environment for developing

You don't need to be a developer to contribute, nor do much, you can simply:

To help you start, we invite you to read Contributing, which gives you rules and code conventions to respect

To contribute to this documentation (README, CONTRIBUTING, etc.), we conform to the CommonMark Spec

Support

We’re using Discussions as a place to connect with members of our - slow pace growing - community. We hope that you:

  • Ask questions you’re wondering about,
  • Share ideas,
  • Engage with other community members,
  • Welcome others, be friendly and open-minded !

Contributors

Core contributors :

We strive to provide a benevolent environment and support any contribution.

About

Automated testing tools for acceptance tests. Write scenarios with a Kotlin DSL, execute them, and monitor their execution through a web application.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors