SOAP
Specifying use cases of a SOAP
-endpoint
Overview
e:soap
<e:soap url="/some/url"> <e:case desc="use-case 1"> <e:body> <! [CDATA[ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getItemRequest xmlns:ns2="http://ws.io"> <date>{{now 'yyyy-MM-dd'}}</date> </ns2:getItemRequest> </soap:Body> </soap:Envelope> ] ]> </e:body> <e:expected> <! [CDATA[ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getItemResponse xmlns:ns2="http://ws.io"> <val>{{placeholder}}</val> </ns2:getItemResponse> </soap:Body> </soap:Envelope> ] ]> </e:expected> </e:case> <e:case desc="use-case 2"> <e:body from="/ws/request.xml"/> <e:expected from="/ws/response.xml"/> </e:case> </e:soap>
Usage
1. Configure the connection to the Web Service via WsPlugin.
2. Use e:soap
tag in specification:
src/test/resources/specs/Specs.html
<e:soap url="/some/url">
<e:case desc="use-case 1">
<e:body>
<! [CDATA[
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getItemRequest xmlns:ns2="http://ws.io">
<date>{{now 'yyyy-MM-dd'}}</date>
</ns2:getItemRequest>
</soap:Body>
</soap:Envelope>
] ]>
</e:body>
<e:expected>
<! [CDATA[
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getItemResponse xmlns:ns2="http://ws.io">
<val>{{placeholder}}</val>
</ns2:getItemResponse>
</soap:Body>
</soap:Envelope>
] ]>
</e:expected>
</e:case>
<e:case desc="use-case 2">
<e:body from="/ws/request.xml"/>
<e:expected from="/ws/response.xml"/>
</e:case>
</e:soap>
Attributes
attribute | desc | example |
---|---|---|
url |
Context path that will be appended to base web service url configured in WsPlugin. | Required. Default: -
|
contentType |
Content-Type HTTP header. | Required. Default: application/json
|
headers |
Comma-separated name=value list of HTTP header, will be applied to all cases if not overridden. | Optional. Default: empty
|
case.headers |
Comma-separated name=value list of HTTP headers, will completely override headers for specific case. | Optional. Default: empty
|
cookies |
Comma-separated name=value list of HTTP cookies, will be applied to all cases if not overridden. | Optional. Default: empty
|
case.cookies |
Comma-separated name=value list of HTTP cookies, will completely override cookies for specific case. | Optional. Default: empty
|
case.desc |
Description of use case. | Optional. Default: ""
|
case.urlParams |
Additional params to add to query string. | Optional. Default: ""
|
case.body.from |
Use content of the specified file as a value of a request body instead of the tag body (empty tag can be used) | Optional. Default: -
|
case.expected.from |
Use content of the specified file as a value of an expected response body instead of the tag body (empty tag can be used) | Optional. Default: -
|
case.expected.statusCode |
Expected response status code | Optional. Default: 200
|
case.expected.reasonPhrase |
Expected response reason phrase | Optional. Default: OK
|
case.expected.protocol |
Expected status line protocol | Optional. Default: HTTP/1.1"
|
case.expected.verifyAs |
Content verifier to use. Built-in verifiers: json, xml, text. |
Optional. Default: -
|
Examples
Basic example
Use cases: | |
---|---|
1) Content can be inlined | |
| 20014ms |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getItemRequest xmlns:ns2="http://ws.io"> <date>2022-03-12</date> </ns2:getItemRequest> </soap:Body> </soap:Envelope> | |
2) Or stored in file | |
| 20010ms |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:getItemRequest xmlns:ns2="http://ws.io"> <date>2021-03-12</date> </ns2:getItemRequest> </soap:Body> </soap:Envelope> |