{"id":21375678,"url":"https://github.com/qaf-tm/qaf-support-ws","last_synced_at":"2025-08-08T15:35:50.758Z","repository":{"id":95775419,"uuid":"80094629","full_name":"qmetry/qaf-support-ws","owner":"qmetry","description":" Support project that provides ready to use steps for webservices ","archived":false,"fork":false,"pushed_at":"2024-01-23T10:21:48.000Z","size":171,"stargazers_count":10,"open_issues_count":1,"forks_count":10,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-01-24T06:39:59.256Z","etag":null,"topics":["bdd","java","qaf","rest","rest-api","test-automation","testng","webservices"],"latest_commit_sha":null,"homepage":"","language":"Java","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/qmetry.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":"2017-01-26T07:36:36.000Z","updated_at":"2024-01-24T06:39:59.257Z","dependencies_parsed_at":"2024-01-23T06:45:18.406Z","dependency_job_id":null,"html_url":"https://github.com/qmetry/qaf-support-ws","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmetry%2Fqaf-support-ws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmetry%2Fqaf-support-ws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmetry%2Fqaf-support-ws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmetry%2Fqaf-support-ws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qmetry","download_url":"https://codeload.github.com/qmetry/qaf-support-ws/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225871094,"owners_count":17537173,"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","java","qaf","rest","rest-api","test-automation","testng","webservices"],"created_at":"2024-11-22T09:12:02.231Z","updated_at":"2025-07-13T09:33:30.050Z","avatar_url":"https://github.com/qmetry.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/github/license/qmetry/qaf-support-ws.svg)](http://www.opensource.org/licenses/mit-license.php)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.qmetry/qaf-support-ws/badge.svg)](https://mvnrepository.com/artifact/com.qmetry/qaf-support-ws/latest)\n[![GitHub tag](https://img.shields.io/github/tag/qmetry/qaf-support-ws.svg)](https://github.com/qmetry/qaf-support-ws/tags)\n[![javadoc](https://javadoc.io/badge2/com.qmetry/qaf-support-ws/javadoc.svg)](https://javadoc.io/doc/com.qmetry/qaf-support-ws)\n\n# qaf-support-ws\n Support project that provides ready to use steps for webservices \n Features:\n\n | Feature\t|Attribute\t|Details|\n |---------|----------|--------|\n |Test-Authoring\t|\tIndustry Standard||\n |\t|Coded\t|Java (TestNG, Junit)|\n ||\t\tBDD |\tQAF-BDD, Gherkin||\t\n ||\t\tKeyword driven\t|XML,CSV,EXCEL||\n | Step-Creation\t|||\n ||Java\t|Y (any Java IDE can be used)|\n ||BDD\t| Ecipse QAF BDD editor, QAS|\n ||Keyword driven|\tQAS||\n |IDE support\t|\tY | Eclipse, IntelliJ, Net-beans, QAS||\n |Data-driven\t\t|Y |XML, CSV, JSON, DB, Excel|\n |Reporting\t\t|XML\t|Industry Standard – TestNG and Junit|\n ||HTML |TestNG, Junit, QAF(json) detailed reporting|\n |Language-Support|Y|Java, Goovy|\n |Programming|Y\t\tFull programming control|\n |Test-Data|||\n ||parameter|Y|\n ||Random|\tY|\n ||Locale\t|Y|\n ||\tMultiple Env support|\tY|\n |Orchestration|Y|\t\tUI and API test Orchestration|\n |Test-Management|Y|\t\tSupports easy integration with all test management tools|\n |Build tools\t|Industry Standard|\tANT+IVY, Maven,Gradle|\n |Request validation|||\n ||XML\t|xml path validation|\n ||JSON\t|json path validation|\n ||Schema|\tY|\n |Run-configuration|Y|\t\tTestNG XML (all features)|\n |||Parallel execution|\n |SOAP support\t|Y||\n |REST support\t\t|Y||\n\n To start with \n 1. [Create QAF Project](https://qmetry.github.io/qaf/latest/create_test_project.html)\n 2. add dependency\n    ```\n    \u003cdependency org=\"com.qmetry\" name=\"qaf-support-ws\" rev=\"latest.integration\" /\u003e\n    \n    ```\n 3. Create [web-service call repository](https://github.com/qmetry/qaf-support-ws/wiki/Request-Call-Repository) having all your calls in following format in `.wsc` or `.properties` file\n    ``` properties\n    #format\n    #my.ws.call = {'headers':\u003cjson map of key-val pair\u003e,'endpoint':'/myservice-endPoint','baseUrl':'${env.baseurl}','method':'\u003cmethod GET|POST|PUT|DELETE\u003e','query-parameters':\u003cjson map of key-val pair\u003e,'form-parameters':\u003cjson map of key-val pair\u003e,'body':'\u003crequest-body\u003e'}\n    get.sample.call={'headers':{},'endPoint':'/myservice-endpoint','baseUrl':'${env.baseurl}','method':'GET','query-parameters':{'param1':'val1','param2':'val2'},'form-parameters':{},'body':''}\n    \n    \n    ```\n  4. Create [bdd](https://qmetry.github.io/qaf/latest/bdd2.html)\n   ```\n   Scenario: \u003cscenario name\u003e\n\n      When user requests '${get.sample.call}'\n      Then response should have status code '\u003cstatus code\u003e'\n     [And response should have '\u003cexpectedvalue1\u003e' at '\u003cjsonpath1\u003e'\n      And response should have '\u003cexpectedvalue2\u003e' at '\u003cjsonpath2\u003e'\n        :\n        :\n     ]  \n   ```\n   \n 5. [Run your test](https://github.com/qmetry/qaf-step-by-step-tutorial/wiki/Exercise-3-Run-Your-First-Test)\n \n Refer ready to use [steps for validation](https://javadoc.io/doc/com.qmetry/qaf-support-ws/latest/com/qmetry/qaf/automation/step/WsStep.html). Here you can find [Example Projet](https://github.com/qmetry/WebServiceWithWebAutomation-Sample).\n \n# Authorization\n\n This dependency provides few well known Authentication support as well.\n \n1. Basic authentication, requires below properties.\n \n ```\n rest.client.impl=com.qmetry.qaf.automation.ws.client.BasicAuthWsClient\n rest.client.basic.auth.username=\u003cUSERNAME\u003e\n rest.client.basic.auth.password=\u003cPASSWORD\u003e\n ```\n2. Digest type authentication, requires below properties.\n \n ```\n rest.client.impl=com.qmetry.qaf.automation.ws.client.DigestAuthWsClient\n rest.client.digest.auth.username=\u003cUSERNAME\u003e\n rest.client.digest.auth.password=\u003cPASSWORD\u003e\n ```\n 3. OAuth type authentication,requires below properties.\n \n ```\n rest.client.impl=com.qmetry.qaf.automation.ws.client.OAuthWsClient\n rest.client.oauth.auth.access_token=\u003cACCESS_TOKEN\u003e\n rest.client.oauth.auth.client_id=\u003cCLIENT_ID\u003e\n rest.client.oauth.auth.client_secret=\u003cCLIENT_SECRET\u003e\n rest.client.oauth.auth.refresh_token=\u003cREFRESH_TOKEN\u003e\n rest.client.oauth.auth.username=\u003cUSERNAME\u003e\n rest.client.oauth.auth.password=\u003cPASSWORD\u003e\n rest.client.oauth.auth.authentication_server_url=\u003cAUTHENTICATION_SERVER_URL\u003e\n rest.client.oauth.auth.resource_server_url=\u003cRESOURCE_SERVER_URL\u003e\n rest.client.oauth.auth.grant_type=\u003cGRANT_TYPE\u003e\n ```\n 4. NTLM authentication,requires below properties.\n \n ```\n rest.client.impl=com.qmetry.qaf.automation.ws.client.NTLMAuthClient\n ntlm.user=\u003cUSERNAME\u003e\n ntlm.password=PASSWORD\n ntlm.workstation=\u003cWORKSTATION\u003e\n ntlm.domain=\u003cDOMAIN\u003e\n ```\n 5. Hawk authentication,requires below properties\n \n ```\n rest.client.impl=com.qmetry.qaf.automation.ws.client.HawkAuthWsClient\n rest.client.hawk.auth.keyId=\u003cHAWK_KEY_ID\u003e\n rest.client.hawk.auth.key=\u003cHAWK_KEY\u003e\n ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqaf-tm%2Fqaf-support-ws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqaf-tm%2Fqaf-support-ws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqaf-tm%2Fqaf-support-ws/lists"}