{"id":13651378,"url":"https://github.com/restqa/restqa","last_synced_at":"2025-07-18T18:34:28.060Z","repository":{"id":38990621,"uuid":"258732511","full_name":"restqa/restqa","owner":"restqa","description":"🦏  | Best in class Microservice automation testing. Test Driven Happiness","archived":false,"fork":false,"pushed_at":"2024-09-13T09:55:50.000Z","size":52293,"stargazers_count":90,"open_issues_count":18,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-05T17:34:44.035Z","etag":null,"topics":["gherkin","restqa","test-automation","testing-tools","unit-testing"],"latest_commit_sha":null,"homepage":"https://restqa.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/restqa.png","metadata":{"funding":{"github":["restqa"]},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-25T09:24:51.000Z","updated_at":"2025-05-07T12:46:38.000Z","dependencies_parsed_at":"2024-09-22T02:01:44.355Z","dependency_job_id":"ba042b72-49a9-447b-aac9-95bdddb60e8a","html_url":"https://github.com/restqa/restqa","commit_stats":{"total_commits":906,"total_committers":15,"mean_commits":60.4,"dds":0.2792494481236203,"last_synced_commit":"3e98ac7aa557e12a06f1f31ff572415732c85e18"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/restqa/restqa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restqa%2Frestqa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restqa%2Frestqa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restqa%2Frestqa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restqa%2Frestqa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/restqa","download_url":"https://codeload.github.com/restqa/restqa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/restqa%2Frestqa/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265810135,"owners_count":23831946,"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":["gherkin","restqa","test-automation","testing-tools","unit-testing"],"created_at":"2024-08-02T02:00:48.738Z","updated_at":"2025-07-18T18:34:28.016Z","avatar_url":"https://github.com/restqa.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://restqa.io/assets/img/content/mascote.png\" alt=\"RestQA logo\"/\u003e\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eRestQA\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eTest Driven Happiness\u003c/h3\u003e\n\u003cp align=\"center\"\u003eMaking Backend engineer happy by applying world class developer experience through Microservice Testing\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@restqa/restqa\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@restqa/restqa\" alt=\"npm package\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/en/about/releases/\"\u003e\u003cimg src=\"https://img.shields.io/node/v/@restqa/restqa\" alt=\"node compatility\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/restqa/restqa/actions/workflows/build.yml\"\u003e\u003cimg src=\"https://github.com/restqa/restqa/actions/workflows/build.yml/badge.svg\" alt=\"github action build\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/restqa/restqa\"\u003e\u003cimg src=\"https://img.shields.io/docker/v/restqa/restqa/latest\" alt=\"Docker build\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://restqa.io/chat\"\u003e\u003cimg src=\"https://img.shields.io/badge/chat-discord-blue?style=flat\u0026logo=discord\" alt=\"discord chat\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg referrerpolicy=\"no-referrer-when-downgrade\" src=\"https://static.scarf.sh/a.png?x-pxid=8107db3b-fcee-4af8-81f0-14e29ec04430\" /\u003e\n    \u003ca href=\"https://dashboard.restqa.io/#/documentation/introduction\"\u003e📖 Documentation\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Project Paused.. ~Still under development... The release 1.0.0 is coming soon, Feel free to contribute!~\n\n## 😃 Why Test Driven Happiness?\n\nWithin our DEV team while working with microservice, we realized a few thing:\n\n- [X] **WE HATE** Writting Local Test\n- [X] **WE HATE** Reviewing long unreadable Local Test full of mocks\n- [X] **WE HATE** Maintaining the Integration Test\n- [X] **WE HATE** Maintaining the Performance Test\n- [X] **WE HATE** Maintaining the API specification\n- [X] **WE HATE** Maintaining the postman collection\n- [X] **WE HATE** Maintaining the HTTP Mocks\n- [X] **WE HATE** Rewrite the test while changing the microservice technology\n\nThis is why we decided to challenge ourself on how to transform this frustration into a positive initative.\nRestQA was build with a simple goal: Driving the happiness of the DEV team through testing.\n\nRun one command and get everything that you need to enjoy maintaining your microservice.\n\n#### Synthax\n\nGherkin Based but **KEEP CALM It aint's BDD!**\n\n![Step definition](https://restqa.io/assets/img/content/2-why-step1.gif)\n\nThe RestQA Community maintains the step definitions! **YOU** focus on writting scenarios **WE** taking care of everything else 🤗\n\n#### Screenshot\n\n👉 [Access to our online demo](https://dashboard.restqa.io)\n\n![Screenshot](https://restqa.io/assets/img/content/2-why-step2.png)\n\n#### Benefits\n\n* No Gherkin step to maintain (50+ steps out of the box)\n* Gherkin step maintain by the community\n* Test Ready in a minute\n* Outside in testing: Code refactoring friendly\n* Code Review friendly\n* Test driven development friendly\n* Mock ready in a minute\n* Community driven\n\n## ⭐️ Features\n\n- 🌈 Local API test as Single source of truth\n- 💬 Write local API test using ordinary language\n- 🚦 Reuse your local API test to run the integration test\n- 🎯 Get code coverage from your local tests\n- 🏎  Generate Performace Test scenario compatible with your favorite Performance testing tool\n- 📚  Generate an up to date API specification from the test results\n- 👩‍🚀 Generate an up to date postman collection\n- 🕐 Instant result\n- 👑 Programming language Agnostic\n- 👩‍💻 Community Driven\n\n## 🕵️ Under the scene\n\nOnly one command to run and everything else is taking care of:\n\n``` mermaid\n%%{init: {'theme': 'forest' } }%%\nstateDiagram-v2\n    direction LR\n    state \"npm test\" as cmd\n    state \"RestQA\" as restqa\n    state \"run tests\" as runner\n    state \"Test report\" as formatter\n    state \"Microservice\" as mc\n    state \"External dependencies (container)\" as extenal\n    state \"3rd party mock\" as mock\n    state \"console output\" as console\n\n    [*] --\u003e cmd\n    cmd --\u003e restqa\n    state restqa {\n      direction LR\n      \n      runner --\u003e mc\n      mc --\u003e runner\n      mc --\u003e extenal\n      extenal --\u003e mc\n     \n      state mc {\n        direction LR\n        [*] --\u003e running\n        running --\u003e [*]\n      }\n\n      state extenal {\n        direction LR\n        [*] --\u003e mock\n        mock --\u003e [*]\n      }\n      mc --\u003e result\n      result --\u003e formatter\n      result --\u003e console\n    }\n\n    restqa --\u003e [*]\n```\n\n## 🎬 Demo\n\nhttps://user-images.githubusercontent.com/4768226/205502972-1fddb8f2-130e-4071-a9f5-de4bc2406497.mp4\n\n## 📦 Install\n\nOnce you get nodeJs on your local machine run the command\n\n```\nnpm install -D @restqa/restqa@next\n```\n\n```\nyarn add @restqa/restqa@next -D\n```\n\n## 🎯 Usage\n\nIn you `package.json` add the script:\n\n```\n  \"scripts\": {\n    \"test\": \"restqa run\",\n    \"happy\": \"restqa run --report\"\n  }\n\n```\n\nRun the command:\n\n```\nnpm test\n```\n\nIt will automatically initialize RestQA into your project and generate the initial test for you ^^\n\nThen you can Write your Unit Test Using ordinary language:\n\n```gherkin\nFeature: GET /api/infos\n\nScenario: Get the list of informations\nGiven a request\nWhen GET \"/api/info\"\nThen status = 200\n  And the body:\n  \"\"\"\n{\n  \"message\": \"Hello World!\"\n}\n  \"\"\"\n```\n\nThen simply run the command to get full report:\n\n```\nnpm run happy\n```\n\n## 🌈 Example\n\nTake a look at the [examples folder](./examples) to see a basic setup.\n\n## 🚧 Roadmap\n\n##### 🚀 Local Test\n\n- [X] Test coverage\n- [X] [Mock external http depedencies](./packages/plugin-http-mock)\n- [X] [Mock MongoDB database](./packages/plugin-mongodb)\n- [ ] Mock Postgres database\n- [ ] Mock MySQL database\n- [ ] Mock S3 database\n- [ ] Mock Redis store\n\n##### 🏎 Performance Test\n\n- [X] Artillery.io\n- [ ] K6 (Need contribution [#291](https://github.com/restqa/restqa/issues/291))\n- [ ] Jmeter (Need contribution [#290](https://github.com/restqa/restqa/issues/290))\n- [ ] Vegeta (Need contribution [#289](https://github.com/restqa/restqa/issues/289))\n\n#### 📚 API Specification\n\n- [X] OAS (swagger)\n- [ ] Raml\n\n#### 👩‍🚀 API Collection\n\n- [X] Postman\n\n\n## Big Love ❤️\n\nRestQA Team would like to give a hug 🤗 to thanks the excellent work of the following dependent open source project:\n\n* [Cucumber-js](https://github.com/cucumber/cucumber-js/)\n* [VueJs](https://vuejs.org/)\n* [Element-ui](https://element-plus.org)\n* [C8](https://github.com/bcoe/c8)\n* [Swagger Ui](https://github.com/swagger-api/swagger-ui)\n* [Scarf](https://github.com/scarf-sh)\n\n\n## Contribution\n\nSee [Contributing Guide](./CONTRIBUTING.md).\n\n## Author\n\n- [@olivierodo](https://www.github.com/olivierodo) - 🇫🇷\n- [@tonygo](https://github.com/tony-go) - 🇫🇷\n\n## License\n\n[MIT License](./LICENSE)\n","funding_links":["https://github.com/sponsors/restqa"],"categories":["Software","Testing","Tools, Libraries \u0026 Frameworks","Capabilities","🎄 Influence","API Testing","Tools"],"sub_categories":["API Testing","Querying","Testing","Promo (RestQA)","Desktop","JavaScript"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frestqa%2Frestqa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frestqa%2Frestqa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frestqa%2Frestqa/lists"}