{"id":23478272,"url":"https://github.com/willis7/soapui-gradle-plugin","last_synced_at":"2025-04-14T21:31:36.603Z","repository":{"id":16278103,"uuid":"19026501","full_name":"willis7/soapui-gradle-plugin","owner":"willis7","description":"SoapUI Gradle Plugin","archived":false,"fork":false,"pushed_at":"2020-06-18T08:13:34.000Z","size":314,"stargazers_count":14,"open_issues_count":5,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-24T12:07:01.775Z","etag":null,"topics":["gradle-plugin","gradle-soapui-plugin","groovy","soapui","soapui-tests"],"latest_commit_sha":null,"homepage":null,"language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"pa11y/pa11y","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willis7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-22T11:01:06.000Z","updated_at":"2020-05-09T11:25:14.000Z","dependencies_parsed_at":"2022-09-14T20:51:07.896Z","dependency_job_id":null,"html_url":"https://github.com/willis7/soapui-gradle-plugin","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willis7%2Fsoapui-gradle-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willis7%2Fsoapui-gradle-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willis7%2Fsoapui-gradle-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willis7%2Fsoapui-gradle-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willis7","download_url":"https://codeload.github.com/willis7/soapui-gradle-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231142996,"owners_count":18334326,"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":["gradle-plugin","gradle-soapui-plugin","groovy","soapui","soapui-tests"],"created_at":"2024-12-24T19:18:29.790Z","updated_at":"2024-12-24T19:18:34.868Z","avatar_url":"https://github.com/willis7.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradle SoapUI plugin\n\n![SoapUI Logo](http://www.soapui.org/images/stories/homepage/soapui_logo.png)\n\nThe plugin provides tasks for running SoapUI tests and mocks during a Gradle build.\n\n\n\u003ctable border=1\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            Unfortunately, I don't have much time to contribute anymore. In practice this means far less activity, \n            responsiveness on issues and new releases from my end.\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            I am  ctively looking for contributors willing to take on maintenance and implementation of the project. If you are interested and would love to see this \n            plugin continue to thrive, shoot me a \u003ca href=\"mailto:sion5@hotmail.co.uk\"\u003email\u003c/a\u003e.\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\n## Build Status\n\n\u003c!--\n[![Build Status](https://travis-ci.org/byte-shifter-ltd/soapui-gradle-plugin.svg)](https://travis-ci.org/byte-shifter-ltd/soapui-gradle-plugin)\n--\u003e\n[![Build Status](https://travis-ci.org/willis7/soapui-gradle-plugin.svg)](https://travis-ci.org/willis7/soapui-gradle-plugin)\n[![Coverage Status](https://coveralls.io/repos/github/byte-shifter-ltd/soapui-gradle-plugin/badge.svg?branch=master)](https://coveralls.io/github/byte-shifter-ltd/soapui-gradle-plugin?branch=master)\n\n\n## Usage\n\nThis plugin has a fairly complex dependency tree. To use this plugin successfully we need to override some dependencies through forcing versions or completely substituting modules.\nSee approach [SmartBear uses solve jar-hell problem in their maven plugin.](http://smartbearsoftware.com/repository/maven2/com/smartbear/soapui/soapui-maven-plugin/5.3.0/soapui-maven-plugin-5.3.0.pom)\nAs a result your build file can look like this:\n\n```groovy\nbuildscript {\n    ext {\n        soapUIVersion = '5.3.0.RELEASE' // open source version\n        // soapUIVersion = '5.1.2.PRO-RELEASE' // pro version\n    }\n    repositories {\n        maven { url 'https://plugins.gradle.org/m2/' }\n        maven { url 'http://www.soapui.org/repository/maven2/' }\n        mavenCentral()\n    }\n    dependencies {\n        compile(\"com.smartbear.soapui:soapui:$soapUIVersion\") {\n            exclude group: 'com.jgoodies', module: 'forms'\n            exclude group: 'com.jgoodies', module: 'looks'\n            exclude group: 'com.jgoodies', module: 'binding'\n        }\n    }\n    configurations.all {\n        resolutionStrategy {\n            force 'com.jgoodies:binding:2.0.1',\n                  'com.jgoodies:forms:1.0.7',\n                  'com.jgoodies:looks:2.2.0'\n        }\n    }\n}\n\napply plugin: 'io.byteshifter.soapui'\n```\n\nBut for most common and trivial use-cases, buildscript configuration could be much simpler:\n\n```groovy\nbuildscript {\n    repositories {\n        jcenter()\n        maven { url 'https://plugins.gradle.org/m2/' }\n        maven { url 'http://smartbearsoftware.com/repository/maven2/' }\n    }\n    dependencies {\n        classpath('gradle.plugin.io.byteshifter:soapui-gradle-plugin:5.3.0.RELEASE')\n    }\n}\n\napply plugin: io.byteshifter.plugins.soapui.SoapUIPlugin\n```\n\n[Gradle Plugin Portal](https://plugins.gradle.org/plugin/io.byteshifter.soapui)\n\n\n## Tasks\n\nThe `soapui` plugin pre-defines the following tasks out-of-the-box:\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTask Name\u003c/th\u003e\n        \u003cth\u003eType\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003esoaptest\u003c/td\u003e\n        \u003ctd\u003eTestTask\u003c/td\u003e\n        \u003ctd\u003eRuns the SoapUI tests as specified by the plugin properties. Internally invokes the SoapUITestCaseRunner class as described there.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003esoapload\u003c/td\u003e\n        \u003ctd\u003eLoadTestTask\u003c/td\u003e\n        \u003ctd\u003eRuns the SoapUI loadtests as specified by the plugin properties. Internally invokes the SoapUILoadTestRunner class as described there.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003esoaptool\u003c/td\u003e\n        \u003ctd\u003eToolTask\u003c/td\u003e\n        \u003ctd\u003eRuns the specified and configured code-generation tool. Internally invokes the SoapUIToolRunner class as described there.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003esoapmock\u003c/td\u003e\n        \u003ctd\u003eMockServiceTask\u003c/td\u003e\n        \u003ctd\u003eRuns the specified and configured code-generation tool. Internally invokes the SoapUIMockServiceRunner class as described there.\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\n## Task properties\n\n### soaptest properties\n\nTo configure the SoapUI test task you can choose to set the following properties within the `test` closure of the\n`soapui` extension:\n\n* `projectFile` : Specified the name of the SoapUI project file to use\n* `testSuite` : Specifies the name of the TestSuite to run\n* `testCase` : Specifies the name of the TestCase to run\n* `endpoint` : Overrides the service endpoint to be invoked by any TestRequests\n* `host` : Overrides the target host:port to be invoked by any TestRequests\n* `username` : Overrides the username used by any TestRequests run\n* `password` : Overrides the password used by any TestRequests run\n* `domain` : Overrides the domain used by any TestRequests run\n* `printReport` : Controls if a small test report should be printed to the console (true/false)\n* `outputFolder` : Set which folder results/reports are saved to\n* `junitReport` : Turns on creation of JUnit-reports, (true/false)\n* `exportAll` : Controls if all test requests should be exported (default only exports errors), (true/false)\n* `settingsFile` : Specifies SoapUI settings file to use\n* `wssPasswordType` : Specifies WSS password type\n* `projectPassword` : Specifies password for encrypted project\n* `settingsFilePassword` : Specifies password for encrypted settings file\n* `globalProperties` : Sets global properties\n* `projectProperties` : Sets project properties\n* `saveAfterRun` : Saves project file after run\n* `testFailIgnore` : Ignore failed tests.\n\n### loadtest properties\n\nTo configure the SoapUI load test task you can choose to set the following properties within the `load` closure of the\n`soapui` extension:\n\n* `projectFile` : Specified the name of the SoapUI project file to use\n* `testSuite` : Specifies the name of the TestSuite to run\n* `testCase` : Specifies the name of the TestCase to run\n* `loadTest` : Specifies the name of the LoadTest to run\n* `limit` : Overrides the limit of executed LoadTests\n* `endpoint` : Overrides the service endpoint to be invoked by any TestRequests\n* `host` : Overrides the target host:port to be invoked by any TestRequests\n* `username` : Overrides the username used by any TestRequests run\n* `password` : Overrides the password used by any TestRequests run\n* `domain` : Overrides the domain used by any TestRequests run\n* `printReport` : Controls if a small test report should be printed to the console (true/false)\n* `outputFolder` : Set which folder results/reports are saved to\n* `settingsFile` : Specifies SoapUI settings file to use\n* `wssPasswordType` : Specifies WSS password type\n* `projectPassword` : Specifies password for encrypted project\n* `settingsFilePassword` : Specifies password for encrypted settings file\n* `saveAfterRun` : Saves project file after run\n* `threadcount` : Number of threads in loadtest.\n\n### tool properties\n\n* `projectFile` : Specified the name of the SoapUI project file to use\n* `iface` : Specifies the interface to generate for\n* `tool` : Specifies the tool(s) to run, a comma-separated list of axis1, axis2, dotnet, gsoap, jaxb, wstools, wsconsume, ora, wscompile, wsi, wsimport, xfire or xmlbeans\n* `settingsFile` : Specifies SoapUI settings file to use\n* `projectPassword` : Specifies password for encrypted project\n* `settingsFilePassword` : Specifies password for encrypted settings file\n* `outputFolder` : Set which folder results/reports are saved to\n\n### mock properties\n\n* `projectFile` : Specified the name of the SoapUI project file to use\n* `mockService` : Specified the MockService to run\n* `port` : The local port to listen on, overrides the port configured for the MockService\n* `path` : The local path to listen on, overrides the path configured for the MockService\n* `noBlock` : Turns off blocking when MockRunner has started\n* `settingsFile` : Specifies SoapUI settings file to use\n* `projectPassword` : Specifies password for encrypted project\n* `settingsFilePassword` : Specifies password for encrypted settings file\n* `saveAfterRun` : Saves project file after run\n\n\n## Full Example\n\n```groovy\nsoapui {\n    test {\n        projectFile = 'sample-soapui-project.xml'\n        testSuite = 'OleTest'\n        printReport = true\n        junitReport = true\n    }\n    load {\n        projectFile = 'sample-soapui-load-project.xml'\n        printReport = true\n    }\n    tool {\n        projectFile = 'sample-soapui-tool-project.xml'\n        iface = 'IOrderService'\n        tool = 'wsi,axis1,axis2'\n    }\n}\n```\n\n\n## Complex Example\n\nThere may be times when you have multiple test suites inside the same SoapUI project. You wouldn't want to maintain several Gradle projects, so the plugin uses convention mapping. This means you can have many tasks, but override the properties at runtime. Here's an example:\n\n```groovy\nsoapui {\n    test {\n        projectFile = 'sample-soapui-project.xml'\n        printReport = true\n        junitReport = true\n    }\n}\n\nimport io.byteshifter.plugins.soapui.tasks.TestTask\n\ntask testSuiteA(type: TestTask) {\n    testSuite = 'SuiteA'\n}\n\ntask testSuiteB(type: TestTask) {\n    testSuite = 'SuiteB'\n}\n```\n\nWhat you should notice in the example above is that we still use the `soapui` convention block with the nested `test` section. You may also have noticed that we have defined 2 new tasks of type `TestTask`. The `TestTask` is what runs the `SoapUITestCaseRunner`. The only difference between the 2 tasks is that they set their own value for `testSuite`. Through the magic of convention mapping the rest of the values are inherited.\n\n\n## Tons of TestSuites for enterprise-grade SoapUI test projects\n\nIn case of many TestSuites you might want use such approach to reduce a lot of duplications in your build script code:\n\n```groovy\n[\n    'SuiteA',\n    'SuiteB',\n    // ...\n    'SuiteZ',\n\n].each { suite -\u003e\n    tasks.create(name: suite, type: io.byteshifter.plugins.soapui.tasks.TestTask) {\n        testSuite = suite\n    }\n}\n```\n\nPlease, note: to run all of the TestSuites in this case, you can use only `gradle soaptest` command.\n\n\n## SoapUI test runner and plugin versions mapping\n\nPreviously, versions between soapui-gradle-plugin and SoapUI test runner was't synchronized.\nBut after version 5.0.1 we will try to keep them synchronized as soon as newer SoapUI will be released.\n\n| soapui-gradle-plugin | SoapUI test runner |\n| -------------------- | ------------------ |\n| 0.2                  | 5.0.1              |\n| 5.1.0                | 5.1.0              |\n| ...                  | ...                |\n| 5.3.1-RC             | 5.3.1-RC           |\n| 5.3.0.RELEASE        | 5.3.0              |\n\nUsing Open Source Version:\nWe do recommend use SoapUI runner version 5.3.0 - it's last fully featured and quite stable version of SoapUI. \nVersion 5.3.1-RC1 was not released.\nVersion 5.4.0 is very limited: LoadUI integration has been removed. \nTo create and run advanced load tests, use LoadUI Pro, which is part of the ReadyAPI application suite.\n\n## Contribute\n\n- Issue Tracker: [github.com/byte-shifter-ltd/soapui-gradle-plugin/issues](https://github.com/byte-shifter-ltd/soapui-gradle-plugin/issues)\n- Source Code: [github.com/byte-shifter-ltd/soapui-gradle-plugin](https://github.com/byte-shifter-ltd/soapui-gradle-plugin)\n\n\n## License\n\nThe project is licensed under the MIT license.\n\n\n\u003c!-- nothing to thanks, JetBrains don't wanna give open-source licene for that project anymore..\n## Thanks\n\nFor the Open Source licence ....\n\u003cimg src=\"https://cdn.pbrd.co/images/8eFlobE.png\" width=\"150\" height=\"75\" /\u003e\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillis7%2Fsoapui-gradle-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillis7%2Fsoapui-gradle-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillis7%2Fsoapui-gradle-plugin/lists"}