For those that have done any kind of web services development, soapUI is a great tool to have in the arsenal. After adding a WSDL to a project, soapUI will stub out requests, which I often use as a testing facility to validate the request/response messages that I am to code against. The hurdle to using soapUI with Agile is the authentication mechanism they chose to employ. Some systems such as BI will have a separate service to authenticate, then a sessionID can be passed around for subsequent calls, but Agile is not architected this way. Instead they chose to use the WWW-Authenticate header passed in the request. This blog will show you how to set up soapUI so it authenticates and allows you to test your Agile PLM service calls.
2. Introduction
soapUI is a great tool to have in the tools arsenal.
The hurdle to using soapUI with Agile is the
authentication mechanism they chose to employ.
Some systems such as BI will have a separate
service to authenticate, then a sessionID can be
passed around for subsequent calls, but Agile is
not architected this way.
This presentation will show you how to set up
soapUI so it authenticates and allows you to test
your Agile PLM service calls.
3. Steps to Success
Download the WSDL
Create a soapUI project
Create a Test Case
Running the Test Case
Download the WSDL
4. Download the WSDL
Before using soapUI, you will need the WSDL, follow
these steps to download it:
Navigate to
http://<host>:<port>/CoreService/services in a
browser
For the purpose of this blog, we will right click and
save-as on the wsdl link next to BusinessObject
Remember where you save the file
5. Create a soapUI project
1. Open soapUI
2. Click File | New soapUI Project
3. Enter "AgileBusinessObject" as the project name
4. Select the WSDL from above for the "Initial WSDL/WADL" file
5. Click "OK"
6. You will see that soapUI builds out a tree structure with all of the available calls
in the service. Lets modify the getObject request:
7. Expand the object tree to reveal Projects | AgileBusinessObject |
BusinessObject_Binding | getObject | Request 1
8. Right click on Request 1 and click "Clone Request" and name it "getTest"
9. For the purpose of the blog, which is simply understanding how to get soapUI to
a usable state, we are going to strip out all of the unnecessary content in this
request. Therefore any nodes that are "Optional" or "Zero or more repetitions"
can be removed.
10. Fill in the "classIdentifier" and the "objectNumber" of the Agile object to fetch
11. Click File | Save All Projects
6. Final Request XML
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://xmlns.oracle.com/AgileObjects/Core/Business/V1">
<soapenv:Header/>
<soapenv:Body>
<v1:getObject>
<request>
<!--1 or more repetitions:-->
<requests>
<!-- Rodney - this is a part lookup -->
<classIdentifier>10141</classIdentifier>
<objectNumber>P00001</objectNumber>
</requests>
</request>
</v1:getObject>
</soapenv:Body>
</soapenv:Envelope>
7. Create a Test Case
Normally I do not use test cases because my needs for soapUI are
pretty simple. In the case of Agile though, the test cases can handle
the authentication headers for us.
Right click on Projects | AgileBusinessObject |
BusinessObject_Binding | getObject | getTest and select "Add to
TestCase"
Enter "AgileBusinessTests" as the name to create
Enter "TestCases" as the test case to create
Click OK on the Add Request to Test Case dialog that opens
When the test case window opens, notice a key icon on the dialog
tool bar, click it
Enter the Agile username, password, and "Agile" for the domain
Click OK
8. Running the Test Case
All that remains is the execution of the test case. In the
TestCases dialog, click the play button (icon on the
toolbar). You can double click the getTest row in the
TestCases dialog to see the request and response
associated with the test.
Pretty simple - happy testing!
9. Videos
The following are links to the video demonstrating the
blog content:
YouTube: http://www.youtube.com/watch?v=utq7RiW8Xqw
Vimeo: https://vimeo.com/72058431
Blog: http://www.plmmechanic.com/blog/item/15-testing-
agile-plm-web-services-from-soapui
10. About Us
PLM Mechanic specializes in the technical
aspects of Oracle’s Agile PLM solution
We offer the following service:
– Agile PLM installations and upgrades
– Agile PLM maintenance and help desk functions
– Agile PLM hosting
– Customization
PLM Mechanic also has several product
offerings