TL;DR
SoapUI was built in 2005 for a SOAP and WSDL-heavy world. It still handles WSDL import, SOAP request generation, XML assertions, and command-line test execution well. But its Java Swing UI, Groovy scripting model, local XML project files, and limited support for modern API workflows make it harder to use for REST-first, cloud-native teams.
Apidog is a free, all-in-one API development platform for modern API teams working with REST, GraphQL, gRPC, WebSocket, and API collaboration workflows. It supports JavaScript-based scripting, shared workspaces, documentation, mocking, and testing without requiring a Java desktop runtime.
Introduction
SoapUI is not broken. It still parses WSDLs, generates SOAP request stubs, runs test suites, and produces reports. Many teams have used it successfully for more than 20 years.
The problem is that “works” and “fits modern development workflows” are different things.
If your team still maintains SOAP-heavy enterprise integrations, SoapUI may remain the best tool for that job. If your team mainly builds REST, GraphQL, gRPC, or WebSocket APIs, the friction becomes more obvious: slower startup, desktop-only workflows, Groovy scripts, XML merge conflicts, and limited collaboration.
This guide breaks down:
- Where SoapUI is still strong
- Where it creates implementation friction
- When to keep using it
- When to move part or all of your API workflow to a newer tool
What SoapUI Still Does Well
1. Importing WSDLs and Generating SOAP Requests
SoapUI’s strongest feature is still WSDL-based SOAP testing.
Give SoapUI a WSDL URL and it can:
- Parse the service definition
- List available operations
- Generate request templates
- Include XML namespaces automatically
- Create the expected element structure for each operation
A typical workflow looks like this:
File → New SOAP Project → Initial WSDL → OK
SoapUI then generates operation-level request stubs such as:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ord="http://example.com/order">
<soapenv:Header/>
<soapenv:Body>
<ord:GetOrderRequest>
<ord:orderId>12345</ord:orderId>
</ord:GetOrderRequest>
</soapenv:Body>
</soapenv:Envelope>
For developers who do not work with WSDLs every day, this is valuable. SoapUI turns a complex XML schema into executable requests quickly.
2. XML Assertions
SoapUI’s XPath Match assertions are mature and reliable for XML-heavy testing.
For example, you can validate a SOAP response with an XPath expression:
declare namespace ns='http://example.com/order';
//ns:GetOrderResponse/ns:status/text()
Expected value:
APPROVED
This is especially useful in domains where XML is still central, such as:
- Enterprise integration
- Healthcare HL7 systems
- Financial messaging
- Government systems
- Legacy service orchestration
If your test suite depends heavily on namespaces, XPath, and XML payload validation, SoapUI still fits the job.
3. DataSource-Driven Tests
SoapUI can pull test data directly from a database using JDBC DataSources.
A practical test flow might look like this:
JDBC DataSource → SOAP Request → XPath Assertion → DataSource Loop
That allows your test case to:
- Query rows from a database
- Use each row as request input
- Send SOAP requests
- Validate each response
- Loop until all rows are processed
Example SQL:
SELECT order_id, expected_status
FROM api_test_orders
WHERE active = true;
Then the request can reference properties from the DataSource:
<ord:GetOrderRequest>
<ord:orderId>${DataSource#order_id}</ord:orderId>
</ord:GetOrderRequest>
This is one of SoapUI’s practical advantages. Many modern API testing tools require custom scripting or CSV exports to do the same thing.
4. Command-Line CI/CD Execution
SoapUI’s testrunner.sh has been used in CI systems for years.
A basic command looks like this:
testrunner.sh \
-s "Regression Suite" \
-c "Get Order Test" \
-r \
-j \
-f ./reports \
./soapui-project.xml
Common options include:
-s TestSuite name
-c TestCase name
-r Print report
-j Generate JUnit-style reports
-f Output folder
In Jenkins, that might look like:
pipeline {
agent any
stages {
stage('Run SoapUI Tests') {
steps {
sh '''
testrunner.sh \
-s "Regression Suite" \
-r \
-j \
-f ./reports \
./soapui-project.xml
'''
}
}
}
post {
always {
junit 'reports/*.xml'
}
}
}
If your existing CI pipeline already runs SoapUI reliably, that is a real reason to keep it.
5. Security Testing in ReadyAPI
ReadyAPI, the commercial product from SmartBear, includes security testing features such as:
- SQL injection checks
- XSS fuzzing
- Malformed header tests
- Schema boundary testing
For teams that need API security checks as part of a regulated test process, this can be a differentiator.
Where SoapUI Shows Its Age
1. The Java Swing Interface Slows Down Daily Work
SoapUI’s UI is built with Java Swing. That matters because the desktop experience feels different from modern developer tools.
Common friction points:
- Poor scaling on high-DPI displays
- Dense tree-based navigation
- Dialog-heavy configuration
- Older visual patterns
- Keyboard shortcuts that do not match current conventions
This is not just aesthetic. If a developer has to click through multiple dialogs to update environments, assertions, or test steps, that cost repeats every day.
A common SoapUI task often looks like this:
Project → TestSuite → TestCase → TestStep → Request → Assertions → XPath Match
In modern tools, the same work is usually closer to:
Collection → Request → Tests
The difference compounds when a team maintains hundreds of requests.
2. Startup Time Is Noticeable
SoapUI startup can take 30–60 seconds on modern machines. That delay comes from loading the JVM, initializing dependencies, and rendering the desktop UI.
This is not usually a blocker in CI, but it affects local development. If developers open and close the tool several times per day, the waiting time adds up.
By comparison, web-based tools, VS Code extensions, and lighter desktop API clients generally start much faster.
3. Groovy Adds a Niche Skill Requirement
SoapUI uses Groovy for scripting test logic, assertions, and DataSource behavior.
Example Groovy assertion:
def response = context.expand('${Get Order#Response}')
assert response.contains('<status>APPROVED</status>')
Groovy is capable, but fewer developers use it daily compared with JavaScript or Python.
That creates an onboarding problem:
- QA engineers with SoapUI experience may know Groovy
- Frontend developers usually know JavaScript or TypeScript
- Automation engineers may know Python
- Backend developers may know Java, Go, or C#
- New contributors may not want to learn Groovy just for API tests
For small scripts, this is manageable. For large test suites, Groovy becomes a maintenance dependency.
4. Collaboration Happens Through XML Files
SoapUI stores projects as local XML files.
A typical collaboration workflow is:
Developer A edits soapui-project.xml
Developer A commits the file
Developer B pulls the file
Git reports a merge conflict
Developer B resolves XML manually
XML merge conflicts are difficult to review because small UI changes can create large file diffs.
Example conflict:
<<<<<<< HEAD
<con:property>
<con:name>endpoint</con:name>
<con:value>https://staging.example.com</con:value>
</con:property>
=======
<con:property>
<con:name>endpoint</con:name>
<con:value>https://qa.example.com</con:value>
</con:property>
>>>>>>> feature/update-endpoint
This works, but it is not ideal for teams editing test projects concurrently.
Modern cloud-based API platforms reduce this friction by syncing project state through shared workspaces instead of requiring manual XML file coordination.
5. REST Testing Feels Secondary
SoapUI supports REST, but its structure still reflects its SOAP-first design.
REST APIs are usually organized around:
- Collections
- Folders
- Requests
- Environments
- Authentication profiles
- OpenAPI definitions
- Examples
- Documentation
SoapUI organizes work through projects, interfaces, resources, methods, and test cases. That model can work, but it does not map as naturally to REST-first development.
If your API portfolio is mostly REST, using SoapUI as the primary tool often feels like adapting REST workflows to a SOAP-era interface.
6. Limited Support for Modern API Protocols
SoapUI handles SOAP and REST. It does not provide the same native workflow for GraphQL, gRPC, or WebSocket testing.
That matters because many current API systems include multiple protocols:
Public API: REST
Internal service calls: gRPC
Real-time updates: WebSocket
Data queries: GraphQL
Legacy integrations: SOAP
With SoapUI, teams often need separate tools for each protocol.
Apidog supports REST, GraphQL, gRPC, and WebSocket workflows in one workspace. For teams that need to test multiple API styles together, that can reduce context switching.
7. No Built-In API Design Lifecycle
SoapUI focuses on testing. It is not designed as a full API lifecycle platform.
Modern API-first workflows often look like this:
Design API contract → Generate docs → Mock API → Implement → Test → Publish
SoapUI mostly enters at the testing stage.
That means teams may need separate tools for:
- API design
- OpenAPI editing
- Documentation
- Mock servers
- Test execution
- Collaboration
For some teams, separate tools are acceptable. For API-first teams, disconnected design and testing can create avoidable friction.
When You Should Still Use SoapUI
SoapUI is still the right choice for specific teams.
Use SoapUI if you have many WSDL-based services
If your team regularly tests complex SOAP services, SoapUI’s WSDL import and request generation are hard to replace.
Good fit:
SOAP-heavy portfolio
Complex WSDLs
Frequent schema changes
XML assertions
Enterprise integrations
Use SoapUI if your team already has Groovy expertise
If your QA team has years of Groovy scripts and shared helper libraries, migration may not be worth it.
Example:
def token = context.expand('${#Project#authToken}')
def accountId = context.expand('${DataSource#account_id}')
testRunner.testCase.setPropertyValue('requestToken', token)
testRunner.testCase.setPropertyValue('accountId', accountId)
If scripts like this are stable, tested, and already maintained, keeping SoapUI can be the practical option.
Use SoapUI or ReadyAPI if compliance reporting depends on it
Some organizations depend on specific ReadyAPI reports for audits or compliance processes.
If your reporting workflow is already accepted by compliance teams, replacing it may create more risk than value.
Use SoapUI if your CI pipeline is already built around it
If your Jenkins, Bamboo, or other CI jobs already run testrunner.sh and produce accepted reports, switching tools means rebuilding working infrastructure.
Before migrating, calculate the actual cost:
Number of test cases
Number of CI jobs
Number of custom scripts
Number of generated reports
Audit or compliance dependencies
Team retraining time
Use SoapUI for SOAP-heavy regulated industries
SoapUI remains common in industries where SOAP still appears frequently:
- Banking
- Insurance
- Healthcare
- Government
- Enterprise middleware
- Legacy system integration
In those environments, SoapUI is often the tool the ecosystem already understands.
When You Should Consider Switching
1. Your APIs Are Mostly REST
If your test portfolio looks like this:
80% REST
15% GraphQL or gRPC
5% SOAP
SoapUI probably should not be your primary API platform.
A better workflow is usually:
Use a modern API platform for REST, GraphQL, gRPC, and WebSocket
Keep SoapUI only for WSDL-heavy SOAP tests
2. You Are Onboarding Non-Java Engineers
If your team includes JavaScript, TypeScript, Python, or frontend engineers, Groovy adds unnecessary ramp-up time.
A JavaScript-style test script is usually easier for modern web teams to maintain:
const json = pm.response.json();
pm.test("status is approved", () => {
pm.expect(json.status).to.eql("APPROVED");
});
For teams already working in JavaScript, JavaScript-based API testing lowers the barrier to contribution.
3. Your Team Needs Real-Time Collaboration
If multiple developers or QA engineers edit API tests at the same time, SoapUI’s file-based project model creates avoidable merge conflicts.
Consider switching if your team regularly needs:
- Shared workspaces
- Real-time updates
- Role-based access
- Team environments
- Centralized documentation
- Reviewable API changes
4. You Are Building New Microservices
New services are usually not SOAP-first.
A common modern stack looks like:
REST for external APIs
gRPC for internal service communication
WebSocket for real-time features
OpenAPI for documentation
CI checks for regression tests
Starting that workflow in SoapUI usually means accepting limitations from day one.
5. You Want to Consolidate Tools
If your current workflow looks like this:
SoapUI for testing
Separate tool for documentation
Separate tool for mocks
Separate tool for API specs
Separate tool for collaboration
A unified API platform can reduce operational overhead.
Apidog covers API design, documentation, mocking, testing, and collaboration in one workspace, which can simplify the workflow for teams that do not need SoapUI’s WSDL-specific strengths.
Practical Migration Strategy
You do not need to replace SoapUI all at once.
A safer migration plan is:
Step 1: Inventory existing tests
Group your tests by protocol:
SOAP / WSDL
REST
GraphQL
gRPC
WebSocket
Also record:
CI dependencies
Groovy scripts
DataSources
Assertions
Reports
Compliance requirements
Step 2: Keep WSDL-heavy tests in SoapUI
Do not migrate tests that depend heavily on WSDL import, complex XML assertions, or existing Groovy libraries unless there is a strong reason.
Step 3: Move REST-first work to a modern API tool
Start with new REST APIs or low-risk existing endpoints.
Example migration target:
Authentication endpoints
Health checks
CRUD endpoints
Public REST APIs
Smoke tests
Step 4: Run both tools in CI
You can run SoapUI and another API testing tool in the same pipeline.
Example CI structure:
# Run SOAP tests
testrunner.sh \
-s "SOAP Regression" \
-r \
-j \
-f ./reports/soapui \
./soapui-project.xml
# Run modern API tests with your selected tool
# Export results as JUnit XML where supported
Then publish both result sets:
post {
always {
junit 'reports/**/*.xml'
}
}
Step 5: Avoid hard-coded credentials
SoapUI projects can store values in XML files, so avoid committing secrets.
Prefer environment variables or CI-injected properties.
Example:
testrunner.sh \
-PapiUsername="$API_USERNAME" \
-PapiPassword="$API_PASSWORD" \
./soapui-project.xml
Then reference project properties inside SoapUI instead of hard-coding credentials.
Honest Assessment
SoapUI feels outdated because it was built for a different API era:
SOAP-first
Desktop-first
Java ecosystem
Local XML project files
Groovy scripting
That world still exists in many enterprises, and SoapUI remains useful there.
But many teams now work in a different environment:
REST-first
Cloud collaboration
API-first design
JavaScript-based automation
Multiple protocols
Shared workspaces
CI/CD from day one
If your team matches the first profile, SoapUI can still be the right tool. If your team matches the second, using SoapUI as your primary API platform will likely slow you down.
FAQ
Is SoapUI still actively maintained in 2026?
Yes. SmartBear continues to release periodic updates to SoapUI open source. The update pace is slower than ReadyAPI, but the tool is not abandoned. Security patches and Java compatibility updates continue.
What does SoapUI do that no other tool does as well?
Native WSDL parsing with SOAP request stub generation. SoapUI has handled real-world WSDL edge cases for many years, and no open-source alternative fully matches it for that specific workflow.
Does Apidog plan to add WSDL support?
Based on the current public roadmap as of April 2026, Apidog focuses on REST, GraphQL, gRPC, and WebSocket workflows. Native WSDL/SOAP support is not on the public roadmap. Teams with WSDL-heavy requirements should plan around current capabilities.
Can Apidog and SoapUI run in the same CI pipeline?
Yes. They are independent tools. Some teams run SoapUI for SOAP test cases and use Apidog for REST, GraphQL, gRPC, or WebSocket workflows, with both feeding results into CI reporting where supported.
How does SoapUI’s age affect security?
The Java Swing UI itself is not the main concern. The Java runtime dependency means you should keep the JDK updated. Also avoid storing credentials directly in SoapUI XML project files. Use project properties, environment variables, or CI-injected values instead.
What would make SoapUI feel modern again?
A major modernization would require changes such as:
- A rewritten UI in a modern framework
- Cloud sync
- Real-time collaboration
- JavaScript scripting support
- Better REST-first project organization
- Native support for more API protocols
SmartBear has not publicly indicated that this kind of rewrite is planned for the open source version. ReadyAPI has received UI improvements, but it still follows the same Java desktop architecture.
Final Takeaway
SoapUI served its era well. For SOAP-heavy teams, it still does.
For REST-first, cloud-native, multi-protocol API teams, the practical choice is often to keep SoapUI for legacy SOAP coverage and move modern API design, documentation, mocking, collaboration, and testing into a newer API platform.
Top comments (0)