{"id":19541365,"url":"https://github.com/wingify/rest-api-testing-framework","last_synced_at":"2025-08-06T16:25:13.480Z","repository":{"id":50449964,"uuid":"519113178","full_name":"wingify/rest-api-testing-framework","owner":"wingify","description":"RestAssured based API testing framework","archived":false,"fork":false,"pushed_at":"2022-08-12T05:49:31.000Z","size":131,"stargazers_count":14,"open_issues_count":0,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-15T09:34:02.223Z","etag":null,"topics":["automation-testing","rest-api","rest-api-framework","restassured","restassuredrestapi","testing-framework"],"latest_commit_sha":null,"homepage":"","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/wingify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-29T06:57:24.000Z","updated_at":"2025-05-13T16:43:06.000Z","dependencies_parsed_at":"2022-09-06T10:23:35.103Z","dependency_job_id":null,"html_url":"https://github.com/wingify/rest-api-testing-framework","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wingify/rest-api-testing-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wingify%2Frest-api-testing-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wingify%2Frest-api-testing-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wingify%2Frest-api-testing-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wingify%2Frest-api-testing-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wingify","download_url":"https://codeload.github.com/wingify/rest-api-testing-framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wingify%2Frest-api-testing-framework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263182282,"owners_count":23426637,"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":["automation-testing","rest-api","rest-api-framework","restassured","restassuredrestapi","testing-framework"],"created_at":"2024-11-11T03:10:08.216Z","updated_at":"2025-07-02T17:10:59.752Z","avatar_url":"https://github.com/wingify.png","language":"Java","readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\n\u003ctable border=\"1\" align=\"center\"\u003e\u003ctr\u003e\u003ctd\u003e\u003ch1\u003eREST API Testing Framework\u003c/h1\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n\n## About The Project\n\n* This project is a RestAssured based API testing framework.\n* Underlying, it uses `RestAssured` - API testing library, `TestNG` - Third-party free library for Running tests,\n  and `Reporting Extent Reports` (library for interactive and detailed reports for tests).\n* This Project provides solution to automate all your Rest API Test cases at a go.\n* It is built in such a way that the core structure of this framework can be used to automate any of your REST APIs by adding your own code on top of it.\n* This framework provides you the capability to log Curls for all your API requests which can help you debug incase of any issues.\n* It also provides listeners and reports for better understanding of your test results.\n\n## Contents\n\n* [Getting Started](#started)\n* [Prerequisites](#pre)\n* [Installation](#install)\n* [Framework Details](#FrameworkDetails)\n    * [Built With](#specs)\n    * [Base Api](#baseapi)\n    * [Framework - What and Why?](#ww)\n* [Packages](#package)\n    * [Main Package](#mainpackage)\n    * [Test Package](#test)\n    * [Reports](#reports)\n* [Contributing](#Contributing)\n* [Usage](#example)\n* [Acknowledgments](#acknowledgments)\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\u003ca name=\"started\"\u003e\u003c/a\u003e\n\nBelow are the things required to get started with the project.\n\n\n\n## Prerequisites\u003ca name=\"pre\"\u003e\u003c/a\u003e\n\nThis Project Requires Java and gradle to be installed on your system.\n  ```sh\n  npm install java\n  npm i gradle --save-dev\n  ```\n\n\n## Installation\u003ca name=\"install\"\u003e\u003c/a\u003e\n\n* Clone the repo on your local system.\u003cbr /\u003e\n\n  ```sh\n  git clone https://github.com/wingify/rest-api-testing-framework.git\n  ```\n\n\n* Resolve all gradle dependencies.\n* Use gradle test command to run your test files.\n\n\n## Framework Details\u003ca name=\"FrameworkDetails\"\u003e\u003c/a\u003e\n### Built With\u003ca name=\"specs\"\u003e\u003c/a\u003e\n- Java\n- Gradle\n- TestNG\n- RestAssured (Java Library)\n\n\n### Base API\u003ca name=\"baseapi\"\u003e\u003c/a\u003e\n\nWe have used RestAssured RequestSpecBuilder as a basis for our API test framework. We have created a BaseApi class in which we have written wrapper methods over RestAssured.\n\n\n\n### Framework - What and Why?\u003ca name=\"ww\"\u003e\u003c/a\u003e\nThis framework is built using RestAssured library, and it is made in such a way that it can be reused by adding the code on top of it to automate any API. It has been made generic so that it can be used to automate any REST API.\n\n\n\n## Packages\u003ca name=\"package\"\u003e\u003c/a\u003e\n\n### Main Package\u003ca name=\"mainpackage\"\u003e\u003c/a\u003e\n\n`src/main/java/` is the core package of framework. It contains different sub packages for various API testing functionalities. All the sub Packages will be discussed in the following sections.\n* apirequestbuilder -\n  This package contains classes for creating API request.\n\n* basepackage -\n  It has 2 classes BaseApi and BaseTest. BaseApi class contains all the wrapper methods over RestAssured and BaseTest class contains the pre-requisite and post requisites for our test classes.\n\n* constants -\n  Inside this package we have classes which contains enum and constants.\n\n* listeners -\n  This package contains testNG listeners and it's implementations.\n\n* reports -\n  This contains implementation of testNG extent report.\n\n* requestpojo -\n  This package holds multiple pojo class which is used to create API request.\n\n* utils -\n  Inside this package we have multiple classes which contains utils functions related to test classes.\n\n\n### Test Package\u003ca name=\"test\"\u003e\u003c/a\u003e\n\n`src/test/java/` is the main test package which contains all the TestClasses, TestData and TestSchema\n* It contains all the test classes which uses testNG as test framework.\n* TestData contains all the data in json format required while writing testcases for different functionalities.\n* TestSchema contains all the schema files used for asserting response schema.\n\n\n### Reports\u003ca name=\"reports\"\u003e\u003c/a\u003e\n\n`src/main/java/reports` is the report package which uses TestNG extent reports generating an interactive and detailed HTML reports for our API test cases.\n\n## Usage\u003ca name=\"example\"\u003e\u003c/a\u003e\n\n```java\n@Test\npublic static void login() {\nString username = System.getProperty(\"username\");\nString password = System.getProperty(\"password\");\n\nLoginBuilder login = new LoginBuilder();\nLogin loginJson = login.createLoginBody(username, password);\nBaseApi api = new BaseApi();\napi.setRequestParams(\n       loginJson,\n       BaseApi.MethodType.POST,\n       LocalConfigs.baseURI,\n       BasePath.LOGIN_PATH\n);\nResponse response = api.execute();\nTestUtilFunctions.validateStatusCode(response, 200);\n\nif (response != null) {\n        cookies = response.getCookies();\n        accountId = (int) TestUtilFunctions.getJsonValue(response, \"accountId\");\n        userId = (int) TestUtilFunctions.getJsonValue(response,\"id\");\n        userName = (String) TestUtilFunctions.getJsonValue(response,\"name\");\n   }\n}\n```\n\n```java\npublic Login createLoginBody(String username ,String password) {\nLogin loginRequest = (Login) TestUtilFunctions.mapJson(\n        \"login.json\",\n        new Login());\n\nloginRequest.setUsername(username);\nloginRequest.setPassword(password);\nreturn loginRequest;\n}\n```\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\u003ca name=\"Contributing\"\u003e\u003c/a\u003e\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nPlease go through our [contributing guidelines](https://github.com/wingify/rest-api-testing-framework/blob/master/CONTRIBUTING.md)\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request.\n\n## Contributors\n\n- [Nakul Thaper](https://github.com/NAKULT)\n- [Abhishek Joshi](https://github.com/Abhi591)\n\n## Code of Conduct\n\n[Code of Conduct](https://github.com/wingify/rest-api-testing-framework/blob/master/CODE_OF_CONDUCT.md)\n\n## Acknowledgments\u003ca name=\"acknowledgments\"\u003e\u003c/a\u003e\n\n* [RestAssured Official Docs](https://rest-assured.io/)\n* [TestNG Docs](https://testng.org/doc/)\n\n## License\n\n[Apache License, Version 2.0](https://github.com/wingify/rest-api-testing-framework/blob/master/LICENSE)\n\nCopyright 2022 Wingify Software Pvt. Ltd.\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/wingify/rest-api-testing-framework.svg?style=for-the-badge\n[contributors-url]: https://github.com/wingify/rest-api-testing-framework/contributors\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top)\u003c/a\u003e\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwingify%2Frest-api-testing-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwingify%2Frest-api-testing-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwingify%2Frest-api-testing-framework/lists"}