{"id":25776584,"url":"https://github.com/iti-ict/wakamiti","last_synced_at":"2026-04-02T23:14:41.359Z","repository":{"id":37819367,"uuid":"472684116","full_name":"iti-ict/wakamiti","owner":"iti-ict","description":"BDD testing tool using step libraries","archived":false,"fork":false,"pushed_at":"2024-04-18T21:02:15.000Z","size":256999,"stargazers_count":31,"open_issues_count":47,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-18T21:44:05.325Z","etag":null,"topics":["bdd","cucumber","gherkin","integration-testing","test","test-automation","testing-tools"],"latest_commit_sha":null,"homepage":"https://iti-ict.github.io/wakamiti/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iti-ict.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-03-22T08:55:32.000Z","updated_at":"2024-04-22T08:41:34.169Z","dependencies_parsed_at":"2024-01-03T13:35:12.945Z","dependency_job_id":"3de65586-6934-4789-a76e-0f40288d6729","html_url":"https://github.com/iti-ict/wakamiti","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iti-ict%2Fwakamiti","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iti-ict%2Fwakamiti/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iti-ict%2Fwakamiti/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iti-ict%2Fwakamiti/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iti-ict","download_url":"https://codeload.github.com/iti-ict/wakamiti/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240987435,"owners_count":19889334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","cucumber","gherkin","integration-testing","test","test-automation","testing-tools"],"created_at":"2025-02-27T06:01:27.142Z","updated_at":"2025-12-24T12:52:23.581Z","avatar_url":"https://github.com/iti-ict.png","language":"Java","funding_links":[],"categories":["测试"],"sub_categories":[],"readme":"\n\n![](images/logo_wakamiti_bright.svg)\n\n---\n\n[![Sonar Quality Gate](https://img.shields.io/sonar/quality_gate/iti-ict_kukumo?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/project/overview?id=iti-ict_kukumo) \n[![Sonar Tests](https://img.shields.io/sonar/tests/iti-ict_kukumo?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/component_measures?metric=tests\u0026view=list\u0026id=iti-ict_kukumo) \n[![Sonar Coverage](https://img.shields.io/sonar/coverage/iti-ict_kukumo?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/component_measures?metric=Coverage\u0026view=list\u0026id=iti-ict_kukumo) \n[![Sonar Technical Debt](https://img.shields.io/sonar/tech_debt/iti-ict_kukumo?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/component_measures?metric=sqale_index\u0026view=list\u0026id=iti-ict_kukumo) \n[![Docker Image Version](https://img.shields.io/docker/v/wakamiti/wakamiti?label=docker\u0026logo=docker)](https://hub.docker.com/r/wakamiti/wakamiti) \n[![Maven Central Version](https://img.shields.io/maven-central/v/es.iti.wakamiti/wakamiti-engine?logo=circle\u0026logoColor=red)](https://mvnrepository.com/search?q=wakamiti)\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/iti-ict/wakamiti)\n\n\n\n\u003e Please check the [site version](https://iti-ict.github.io/wakamiti/) in case you are reading this document directly \n\u003e from the repository.\n\n\n\n### Latest plugin versions\n\n| artifact                                            | version                                                                                                                                                                                                                         |\n|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `es.iti.wakamiti:rest-wakamiti-plugin`              | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/rest-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/rest-wakamiti-plugin/latest)                           |\n| `es.iti.wakamiti:db-wakamiti-plugin`                | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/db-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/db-wakamiti-plugin/latest)                               |\n| `es.iti.wakamiti:html-report-wakamiti-plugin`       | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/html-report-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/html-report-wakamiti-plugin/latest)             |\n| `es.iti.wakamiti:cucumber-exporter-wakamiti-plugin` | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/cucumber-exporter-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/cucumber-exporter-wakamiti-plugin/latest) |\n| `es.iti.wakamiti:file-uploader-wakamiti-plugin`     | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/file-uploader-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/file-uploader-wakamiti-plugin/latest)         |\n| `es.iti.wakamiti:amqp-wakamiti-plugin`              | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/amqp-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/amqp-wakamiti-plugin/latest)                           |\n| `es.iti.wakamiti:groovy-wakamiti-plugin`            | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/groovy-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/groovy-wakamiti-plugin/latest)                       |\n| `es.iti.wakamiti:azure-wakamiti-plugin`             | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/azure-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/azure-wakamiti-plugin/latest)                         |\n| `es.iti.wakamiti:appium-wakamiti-plugin`            | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/appium-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/appium-wakamiti-plugin/latest)                       |\n| `es.iti.wakamiti:email-wakamiti-plugin`             | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/email-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/email-wakamiti-plugin/latest)                         |\n| `es.iti.wakamiti:io-wakamiti-plugin`                | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/io-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/io-wakamiti-plugin/latest)                               |\n| `es.iti.wakamiti:jmeter-wakamiti-plugin`            | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/jmeter-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/jmeter-wakamiti-plugin/latest)                       |\n| `es.iti.wakamiti:jacoco-wakamiti-plugin`            | [![Maven Central](https://img.shields.io/maven-central/v/es.iti.wakamiti/jacoco-wakamiti-plugin?label=%20\u0026color=white)](https://mvnrepository.com/artifact/es.iti.wakamiti/jacoco-wakamiti-plugin/latest)                       |\n\n---\n\n\nUsage\n----------------------------------------------------------------------------------------------------\n \nRunning tests with Wakamiti is straightforward. Write your test specification, define a basic configuration with the \nstep providers (and any other plugins) that you require, and choose the launcher that best suits your project.\n\nLet's assume a RESTful application that exposes a service that allows to retrieve data about users. Internally, data is \nstored in a database table named `USER`. Given that, we want to test that the name of the users is retrieved correctly \nwhen using the REST service.\n\nThe following Gherkin specification defines a test that uses steps from two different plugins, `REST steps` and \n`Database steps` (see the documentation of each plugin for further explanation).\n\n###### users.feature\n```gherkin\nFeature: Testing the user data retrieval service\n\n    Background:\n        Given the database connection URL 'jdbc:h2:tcp://localhost:9092/~/test' using the user 'sa' and the password ''\n        And the base URL http://localhost:9191\n        And the REST service '/users'\n    \n    Scenario: Retrieve the name of a user\n        Given a user identified by '3' \n        And the following user is inserted in the database table USER:\n        | ID | FIRST_NAME | LAST_NAME |\n        | 3  | John       | Doe       |\n        When the user is requested \n        Then the response HTTP code is 200 \n        And the response contains:\n        \"\"\"\n         { \"firstName\": \"John\" }\n        \"\"\"\n```\n\nNow we define the execution configuration, which is simply a set of properties that Wakamiti would take into account for \nvarious aspects. There are several ways to define them; in this example we will just write them into the default \nconfiguration file `wakamiti.yaml`:\n\n```yaml\n# wakamiti.yaml\nwakamiti:\n    resourceTypes: \n      - gherkin\n    modules:\n      - es.iti.wakamiti:wakamiti-rest:2.3.3\n      - es.iti.wakamiti:wakamiti-db:2.3.3\n      - es.iti.wakamiti:wakamiti-html-report:2.3.3\n      - com.h2database:h2:1.4.199\n    htmlReport:\n        output: target/wakamiti-report.html\n``` \n\n\u003e In addition to the core functionality properties, each plugin can make use of its own set of properties. These are all\n\u003e described in their own documentation.\n\nOnce you have configured the test execution, all that remains is to execute the test plan. There are several ways of \nlaunching it (see `Runners` below); in this example, we will use the console command launcher. Assuming it is installed \ncorrectly, you need to type:\n\n```shell\nwakamiti\n```\n\nand the test will be executed.\n\n\u003cbr/\u003e\n\n\u003cimg src=\"images/wakamiti-run.png\" width=\"600\"\u003e\n\n\u003cbr/\u003e\n\n\nThe results of the test execution are stored in an output file, named `wakamiti.json` by default, in addition to the \nconsole output. Additional plugins can read this file and generate reports or perform other post-execution tasks.\n\n## Runners\n\nThere are currently three methods of initiating a test plan, depending on the type of project and test approach:\n\n- **Using JUnit**: For Java projects, you can create an empty test class to be run as a normal JUnit test suite, \nsetting the custom JUnit runner `WakamitiJUnitRunner`. This way, the plan will be treated as a normal JUnit test and \nwill be executed along with any other existing JUnit test.\n\n    _Suitable scenarios_   \n   Java applications where you need to integrate reports with other JUnit tests, or use an IDE to run tests.\n\n\n- **Using Maven**: If your project uses Maven, and you prefer to run the Wakamiti test plan in a separate phase, you can \nrun Wakamiti by attaching the `wakamiti-maven-plugin` plugin to the Maven lifecycle. Configure the Maven plugin and any \nadditional Wakamiti plugins you want in your POM `build` section.\n\n   _Suitable scenarios_   \n   Maven-built applications where you want to include Wakamiti as part of the verify phase\n\n\n- **Stand-alone launcher**: If your project does not use neither JUnit nor Maven, Wakamiti provides a standalone \ncommand-line launcher that manages the plugin dependencies internally.\n\n   _Suitable scenarios_   \n   Non-Java applications and/or your test plan needs to be executed outside the build process.\n   \n     \n\n\nPlugins\n----------------------------------------------------------------------------------------------------\n\nWakamiti itself does not have defined steps, but they are included through various plugins. Currently, \n[the following](https://iti-ict.github.io/wakamiti/en/plugins) are available, but you can also develop your own plugins!\n\n\n\n\nWakamiti Editor\n----------------------------------------------------------------------------------------------------\n\nWakamiti implements the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)\nin order to allow editors to provide auto-completion and validation features. As an example, a \n[Visual Studio Code](https://code.visualstudio.com/) extension is provided \n[here](https://github.com/iti-ict/wakamiti/raw/main/wakamiti-vscode-extension/wakamiti-vscode-extension-latest.vsix).\nSee [this section](xxx) to learn more about it.\n\n\n\nContributing\n----------------------------------------------------------------------------------------------------\n\nThere are several ways in which you can contribute to this project:\n\n### Reporting a defect / requesting a new feature\n\nIf you have found a potential bug, or there is a missing feature that you really would need, feel free to open a new \nissue on the [Github page](https://github.com/iti-ict/wakamiti/issues). Please check before that a similar\nissue has not already been reported.\n\n\n### Fixing a bug / implementing a feature\n\nIf there is an [open issue](https://github.com/iti-ict/wakamiti/issues) that you want to implement,\nfollow these steps:\n1. Fork the [source code](https://github.com/iti-ict/wakamiti).\n2. Create a new branch in the forked repository.\n3. Commit the changes.\n4. Open a pull request that clearly states the issue that you are attempting to solve.\n5. Your pull request will be reviewed and either accepted or rejected. In the latter case, you will be given enough \nfeedback to make changes and resubmit the request.\n\n\u003e Feel free to engage in a **friendly** discussion if you disagree with the feedback given. \n\u003e Any rude or inappropriate form of communication will be automatically rejected.\n\n\nAcknowledgements\n----------------------------------------------------------------------------------------------------\n\nThis software has been developed as a part of the Plan of Non-Economical Activities of \n**Instituto Tecnológico de Informática (ITI)** for the year 2021, funded by \n**Institut Valencià de Competitivitat Empresarial (IVACE)** and **Generalitat Valenciana**,\nby means of the colaboration agreement between IVACE and ITI aimed to enhance their activity \nand capabilities of developing excellence in the matter of independant R\u0026D, spreading \nthe results of conducted researches, and driving knowledge transfer among companies from the \n*Comunitat Valenciana*. \n\n\n\u003cimg src=\"images/iti.png\" align=\"right\"\u003e\n\u003cimg src=\"images/gva-ivace.png\"\u003e\n\n\nLicense\n----------------------------------------------------------------------------------------------------\n\n```\nMozilla Public License 2.0\n\nThis Source Code Form is subject to the terms of the Mozilla Public\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\nfile, You can obtain one at https://mozilla.org/MPL/2.0/.\n```\n\n\n\nAuthors\n----------------------------------------------------------------------------------------------------\n\n- **María Galbis Calomarde** - mgalbis@iti.es \n- **Carlos Oliva Miñana** - coliva@iti.es\n    \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiti-ict%2Fwakamiti","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiti-ict%2Fwakamiti","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiti-ict%2Fwakamiti/lists"}