{"id":14969323,"url":"https://github.com/ctco/cukes","last_synced_at":"2026-01-08T17:14:51.005Z","repository":{"id":1883299,"uuid":"45254631","full_name":"ctco/cukes","owner":"ctco","description":"Cucumber DSL for testing RESTful Web Services","archived":false,"fork":false,"pushed_at":"2023-07-07T21:37:47.000Z","size":1387,"stargazers_count":112,"open_issues_count":45,"forks_count":67,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-31T08:09:06.514Z","etag":null,"topics":["api-testing","cucumber","cucumber-jvm","cukes-rest","java","restapi"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ctco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-10-30T14:07:45.000Z","updated_at":"2025-01-03T21:44:52.000Z","dependencies_parsed_at":"2024-01-03T01:26:18.192Z","dependency_job_id":"28bc04f4-3a75-4a52-bffe-f51232378c7c","html_url":"https://github.com/ctco/cukes","commit_stats":{"total_commits":484,"total_committers":45,"mean_commits":"10.755555555555556","dds":0.6384297520661157,"last_synced_commit":"ddede60dccfc8c1d7666cb02c50461738b5990a5"},"previous_names":["ctco/cukes-rest"],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctco%2Fcukes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctco%2Fcukes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctco%2Fcukes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctco%2Fcukes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ctco","download_url":"https://codeload.github.com/ctco/cukes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247632687,"owners_count":20970202,"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":["api-testing","cucumber","cucumber-jvm","cukes-rest","java","restapi"],"created_at":"2024-09-24T13:41:36.553Z","updated_at":"2026-01-08T17:14:50.971Z","avatar_url":"https://github.com/ctco.png","language":"Java","readme":"[![Join the chat at https://gitter.im/ctco/cukes](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ctco/cukes?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![wercker status](https://app.wercker.com/status/91bd08250ec1cee694c8d0e5c95f85ce/s/master \"wercker status\")](https://app.wercker.com/project/byKey/91bd08250ec1cee694c8d0e5c95f85ce)\n[![Maven](https://img.shields.io/maven-central/v/lv.ctco.cukes/cukes.svg)](http://search.maven.org/#search|ga|1|lv.ctco.cukes)\n\n# ![cukes-rest logo](assets/cukes-rest-logo.png)\n**cukes-rest** takes simplicity of **Cucumber** and provides bindings for HTTP specification. As a sugar on top, **cukes-rest**\nadds steps for storing and using request/response content from a file system, variable support in .features, context \ninflation in all steps and a custom plug-in system to allow users to add additional project specific\ncontent. \n\n## Resources\n- [Wiki](https://github.com/ctco/cukes/wiki)\n- [Samples](https://github.com/ctco/cukes/wiki/Test-Samples)\n- [Open Issues](https://github.com/ctco/cukes/issues)\n\n## Sample Test\n\n```gherkin\nFeature: Gadgets are great!\n\n  Background:\n    Given baseUri is http://my-server.com/rest/\n\n  Scenario: Should create another Gadget object\n    Given request body from file gadgets/requests/newGadget.json\n    And content type is \"application/json\"\n\n    When the client performs POST request on /gadgets\n    Then status code is 201\n    And header Location contains \"http://localhost:8080/gadgets/\"\n\n    When the client performs GET request on {(header.Location)}\n    Then status code is 200\n    And response contains property \"id\" with value other than \"2000\"\n    And response contains property \"name\" with value \"Nexus 9\"\n    And response does not contain property \"updatedDate\"\n```\n\nThere are three sections available to be used in a Feature files:\n- Feature - a description of a feature under test\n- Background - set of steps to be executed before every scenario (usually these are preconditions)\n- Scenario - a single automated test case\n\nAs well as three groups of steps available\n- Given - building up a HTTP request to be performed\n- When - executing the request\n- Then - assertions based on a response received\n         \n[More information can be found in the presentation right here!](https://speakerdeck.com/larchaon/getting-started-with-cukes-rest)\n          \n## Prerequisites\n- JDK 1.6+\n\n## Dependency\nThe dependencies are stored in [Maven Central](http://search.maven.org/#search|ga|1|lv.ctco.cukes)\n\n### cukes-rest: core dependency with all you need to get started with the framework (Maven)\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003elv.ctco.cukes\u003c/groupId\u003e\n    \u003cartifactId\u003ecukes-rest\u003c/artifactId\u003e\n    \u003cversion\u003e${cukes-rest.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Getting Started\n\nThere are two options to start local server with Sample Application:\n\n1. Run **SampleApplicaiton.java** with following params `server server.yml` from **$MODULE_DIR$**\n2. Execute Package/Install Maven phase of the parent project **cukes-rest-all**\n\n### Running tests\n\n*Precondition*: in order for all tests to pass successfully, please make sure you started fresh instance of Sample Application.\n\n- To start a specific Feature/Scenario, either change **CucumberOption** in **RunCukesTest.java** or run Feature file directly from you IDE\n- To start all tests run **RunCukesTest.java** from sub-project **cukes-rest-sample**\n- To start all tests right from Maven, execute _test_ phase in project **cukes-rest-sample**\n","funding_links":[],"categories":["项目","Projects","测试"],"sub_categories":["测试","Testing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctco%2Fcukes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctco%2Fcukes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctco%2Fcukes/lists"}