Exam >
On this page

SOAP

Specifying use cases of a SOAP-endpoint

Overview

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

attributedescexample
url Context path that will be appended to base web service url configured in WsPlugin. Required. Default: -
url="/some/url"
contentType Content-Type HTTP header. Required. Default: application/json
contentType="text/plain"
headers Comma-separated name=value list of HTTP header, will be applied to all cases if not overridden. Optional. Default: empty
headers="type=String, contentEncoding=UTF-8"
case.headers Comma-separated name=value list of HTTP headers, will completely override headers for specific case. Optional. Default: empty
e:case headers="type=String, contentEncoding=UTF-8"
cookies Comma-separated name=value list of HTTP cookies, will be applied to all cases if not overridden. Optional. Default: empty
cookies="one=1, two=2"
case.cookies Comma-separated name=value list of HTTP cookies, will completely override cookies for specific case. Optional. Default: empty
e:case cookies="one=1, two=2"
case.desc Description of use case. Optional. Default: ""
desc="Some description"
case.urlParams Additional params to add to query string. Optional. Default: ""
urlParams="param1=1&amp;param2=2"
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: -
e:body from="/request.json"
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: -
e:expected from="/response.json"
case.expected.statusCode Expected response status code Optional. Default: 200
e:expected statusCode="400"
case.expected.reasonPhrase Expected response reason phrase Optional. Default: OK
e:expected reasonPhrase="Not Found"
case.expected.protocol Expected status line protocol Optional. Default: HTTP/1.1"
e:expected protocol="HTTP/1.1"
case.expected.verifyAs Content verifier to use. Built-in verifiers: json, xml, text. Optional. Default: -
verifyAs="customFormat"

Examples

Basic example

Basic
POST mirror/body
Content-Type application/soap+xml; charset=UTF-8;
Use cases:
1) Content can be inlined
POST mirror/body HTTP/1.1
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
POST mirror/body HTTP/1.1
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>

How to