{"id":28469723,"url":"https://github.com/clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing","last_synced_at":"2025-09-12T22:34:13.710Z","repository":{"id":154068630,"uuid":"480190081","full_name":"clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing","owner":"clark-ewerton","description":"Project to demonstrate how to automate testing from a XML request-response flow using SOAPUI's Maven library along Java 24 + Maven + Junit 5 + Cucumber + CI/CD (Github Actions and Pages) + Allure Reports","archived":false,"fork":false,"pushed_at":"2025-06-07T18:11:33.000Z","size":1083,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T16:50:59.222Z","etag":null,"topics":["allure-report","api","cucumber","github-actions","github-pages","java","maven","soap","soap-web-services","soapui","xml"],"latest_commit_sha":null,"homepage":"https://medium.com/@clarkewertonSilva/how-to-automate-a-testing-soapuis-xml-request-response-using-soapui-s-maven-library-java-junit-605a40281b50","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clark-ewerton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2022-04-11T01:43:53.000Z","updated_at":"2025-06-07T18:11:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"73cc8ac8-dfc9-4175-974d-9e023601f6bf","html_url":"https://github.com/clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clark-ewerton","download_url":"https://codeload.github.com/clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274887046,"owners_count":25368228,"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","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["allure-report","api","cucumber","github-actions","github-pages","java","maven","soap","soap-web-services","soapui","xml"],"created_at":"2025-06-07T09:08:23.563Z","updated_at":"2025-09-12T22:34:13.702Z","avatar_url":"https://github.com/clark-ewerton.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project to demonstrate how to automate testing from a XML request-response flow using SOAPUI's Maven library along Java 24 + Maven + Junit 5 + Cucumber + CI/CD (Github Actions and Pages) + Allure Reports\n\n[![Api CI/CD](https://github.com/clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing/workflows/API%20Tests%20CI/badge.svg)](https://github.com/clark-ewerton/webservice-soapui-xml-java-junit-cucumber-automated-testing/actions/workflows/cicd.yml)\n[![Pages Status](https://img.shields.io/badge/GitHub%20Pages-Online-green)](https://clark-ewerton.github.io/webservice-soapui-xml-java-junit-cucumber-automated-testing/)\n![License](https://img.shields.io/badge/license-MIT-blue)\n\nDon't forget to give this project a ⭐\n\nFor this project, it was took into account the Windows as main environment! \n\nThis project was created to start the initial steps with test automation for a SOAP Web Services using SOAP's Maven library. It tests the public WebService: [Number Converson](https://www.dataaccess.com/webservicesserver/NumberConversion.wso?wsdl). Which is a public SOAP Web Service, pretty simple to handle on and perform some requests.\n\nThe test scenario that I'm using here is to convert a number (two digits for example) into the number written, so that if you put '20' to convert to Dollars then the result will be 'twenty dollars'. The whole explanation is written in Medium's article: [https://medium.com/@clarkewertonSilva](https://medium.com/@clarkewertonSilva/how-to-automate-a-testing-soapuis-xml-request-response-using-soapui-s-maven-library-java-junit-605a40281b50). Please take a look.\n\n## Project Structure\n```bash\nwebservice-soapui-xml-java-junit-cucumber-automated-testing/\n├─ src/\n│  ├─ main/\n│  │  ├─ java/\n│  │  │  │  ├─ core/\n│  │  │  │  │  ├─ BaseEndpoint.java\n│  │  │  │  │  ├─ Endpoint.java\n│  │  │  │  │  ├─ EndpointFactory.java\n│  │  │  │  ├─ responseBody/\n│  │  │  │  │  ├─ ResultHandlerWebservices.java\n│  ├─ test/\n│  │  ├─ java/\n│  │  │  │  │  │  ├─ numberConversion/\n│  │  │  │  │  │  │  ├─ builders/\n│  │  │  │  │  │  │  |  ├─ NumberConversionBuilder.java\n│  │  │  │  │  │  ├─ endpoints/\n│  │  │  │  │  │  │  ├─ NumberToDollars.java\n│  │  │  │  │  │  ├─ runner/\n│  │  │  │  │  │  │  |  ├─ RunnerNumberConversion.java\n│  │  │  │  │  │  ├─ steps/\n│  │  │  │  │  │  │  |  ├─ NumberToDollars_Steps.java\n│  │  ├─ resources/\n│  │  │  ├─ numberConversion/features\n│  │  │  │  ├─ numberConversion.feature\n│  │  │  ├─ soapui/\n│  │  │  │  ├─ NumberConversion-soapui-project.xml\n│  │  │  ├─ allure.properties\n├─ .gitignore\n├─ pom.xml\n├─ README.md\n```\n\n## Languages and Frameworks\n\nThis project using the following languages and frameworks:\n\n* [Java 24](https://openjdk.java.net/projects/jdk24/) as the programming language\n* [JUnit 5](https://junit.org/junit5/) as the UnitTest framework to support the test creation\n* [Cucumber](https://cucumber.io/) as the tool that supports Behaviour-Driven Development(BDD) making out tests more describable\n* [Maven](https://maven.apache.org/) as the Java build tool\n* [SOAPUI program](https://www.soapui.org/) as a way to create the XML's body templates and link it to the Maven's project afterwards.\n* [SOAPUI's Maven library](https://www.soapui.org/docs/test-automation/maven/maven-2-x/) as the library for Maven to connect the programming logic to the SOAPUI's program installed in your machine. It's where all the testing automating truly happens.\n* [XML Path](https://mvnrepository.com/artifact/io.rest-assured/xml-path/3.0.0) as the library from RestAssured to make the assertions in XML's body.\n* [Allure Reports](https://mvnrepository.com/artifact/io.rest-assured/xml-path/3.0.0](https://allurereport.org/) as the main report\n\n## How to run it?\n\nAll you have to do is run the class called 'RunnerNumberConversion' as a Junit test. Or you can just run as a maven using the command: mvn test\n\n## Test architecture\n\nWe know that any automation project starting with a good test architecture.\nYou will see the following items in this architecture:\n\n* [Patterns Applied](#page-objects-pattern)\n* [Generate Report](#generate-report)\n\nDo you have any other items to add to this test architecture? Please do a pull request or open an issue to discuss.\n\n### Patterns Applied\n* Abstract Factory Pattern\n* Builder\n* BaseEndpoint\n\n## GitHub Actions CI/CD\nThe workflow file `.github/workflows/cicd.yml` includes two jobs:\n\n`run-api-tests`: runs tests on a local emulator on GitHub-hosted runners using Ubuntu.\n\n`deploy-report`: generates an Allure report and publishes it to GitHub Pages.\n\nAllure results are stored as artifacts and published after every execution, regardless of test results.\n\n## Allure Reports\nAfter every test execution, Allure reports are generated and published to:\n\n🔗 https://clark-ewerton.github.io/webservice-soapui-xml-java-junit-cucumber-automated-testing\n\n## Contributing\nContributions are welcome!\nFeel free to open issues, fork the repository, and submit pull requests.\n\nIf you find this project useful, please consider giving it a star to help increase its visibility.\n\n## License\nThis project is licensed under the MIT License.\nSee the LICENSE file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclark-ewerton%2Fwebservice-soapui-xml-java-junit-cucumber-automated-testing/lists"}