Soapui
Soapui
Soapui
soapUI v.2.5.1
Project Documentation
......................................................................................................................................
eviware 01 February 2009
TABLE OF CONTENTS i
Table of Contents
......................................................................................................................................
1 User Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.3 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.3.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.3.4 WS-Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3.5 Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.11.1 Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.12 Usage Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.15.2.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
1.1 Overview
......................................................................................................................................
soapUI Overview
Prerequisites
!
"
#$% &
!
'&(% )
*
)
+*
) +
*
,-&. /..0 +
"
#0 #$% &
!
'12 3
'1&
4
! "
"
"
+:
+
"
The Navigator
.
:
9
9
"
0: )* 9
: "
+ & )* 9 '&(% ,-&. & :
; ,
.
" "
"
-
Property Mode
. 5
5
2 $
3
,< .2 .,< &
,<
.& .2 5
Main Menu
! "
. > '"
'"
9
# &
0
$
# &
%&
# 0
) 3
"
2 "
.
) " & ("
( (
'&* ) 5
%
+ +" "
+ "
+ "
3
+ ," - .%
// ) ,0 .2
5
8 "
.2 .&
.
?
"
0
;
& 0
. 1" ;
?
1 ;
?
&
,&
;
) *
. )
0 * % $
( )
0 * % $
.%2$(2& ;
9++
9++
/" .% &
System Properties
. & 0
@
Log Tabs
.
"
8
,
"
3
3 ) ABBB*
3
) *
.
) *9
.%
<
" )
%.
*
, "
$,
: )
?
2
D:
4
D:
D: 3
7
D:37
) "
*
-
" " "
)
*
" . ?
" "+ " . ?
7
7 4 "
3
$"& .2
.
"
"
+
%.
. E
&
7
.7 76 %7
' 0
3
2
7? 7 0
9
.
7/
+& % (7
7/
+
%7
5 < . . (-
0
539 0
1.1.3 Preferences
......................................................................................................................................
soapUI Preferences
.
707
9
Tab Description
Import Preferences
.
C
3
9
HTTP Settings
Setting Description
Setting Description
Authenticate Preemptively Send Authentication headers with each request without first receiving
an authentication challenge. This is a potential security hazard but will
improve performance since only one request will be required for
authenticated endpoints instead of two
Preencoded Endpoints Do not URL-encode endpoints, set this if your endpoint URLs are
already URL-encoded (containing for example %20 or %3A)
Bind Address The local address to bind to when sending requests, can be
overridden on a request level (with the corresponding request
property) and on a system level by setting the soapui.bind.address
system variable.
Include request in time taken Includes the time it took to write the request in time-taken
Include response in time taken Includes the time it took to read the response body in time-taken
Socket Timeout The socket timeout for HTTP requests in milliseconds
Max Response Size The maximum number of bytes to read from a response (0 =
unlimited)
Max Connections Per Host The maximum number of simultaneous connections to a specific host.
Increase this value if you are running LoadTests with more than 500
threads on a particular host.
Max Total Connections The total maximum number of connections. Increase this value if you
are running LoadTests with more than 2000 threads.
Leave MockEngine Will leave the MockEngine running even when all MockServices have
stopped resulting in much faster startup-times for new MockServices
and 404 errors when trying to call a stopped MockService (instead of
connection failure)
Enable Mock HTTP Log Logs wire content of all mock requests. Selecting this option will
degrade Mock Engine performance marginally and may require restart
to enable or disable.
Proxy Settings
Setting Description
F
5.%$ 8
F
SSL Settings
Setting Description
2
<
.
$"&
3 $"-
WSDL Settings
Setting Description
Cache WSDLs Turns on and off caching of WSDL's as described under Caching
Definitions .
Sample Values Generates example values in requests when creating from schema
Type Comment Generates comments with type information in new requests
Include Optional Always includes optional elements in generated requests
Pretty Print Pretty prints response messages in response editor
Attachment Parts Generates part-elements in request messages for mime-attachments
in RPC messages (required by some ws-stacks)
No Content-Type Validation Does not validate the content-type of a mime-attachment against the
type(s) specified in the SOAP-Binding
Schema Directory Specifies a directory containing schema (.xsd) files that should be
automatically added when parsing or validating wsdl or requests.
Changing the contents of this directory requires a restart.
Name with Binding Tells soapUI to name imported interfaces with the name of their
corresponding soap/http binding, and not with their portType (as
described in Interfaces ). This ensures that WSDL containing bindings
for both SOAP 1.1 and SOAP 1.2 will get unique names during import.
This setting defaults to true.
Setting Description
Excluded Types A list of XML-Schema types and global elements in the form of
name@namespace which will be used when generating sample
requests and responses and input forms in the soapUI Pro Form
editor. By default the XML-Schema root element is added since it is
quite common in .NET services and generates a sample xml fragment
of about 300 kb!.
Strict Schema Types Check this to not allow schema type redefinitions in included/imported
xsd:s for a specific WSDL (default behavior in versions prior to 1.7.5)
Compression Limit The minimum message size to compress in the soapUI project file for
preserving space. Compression is performed with gzip and the result
is base64 encoded into the project file. For large requests, this can
save up to 90% file-space, but be aware that the requests are no
longer readable or diffable.
Pretty Print Project Files Pretty prints project files when they are saved, which makes it easier
to work with a source-control system (diffing, etc...). Be aware that
when selecting this option the size of the project files will increase
substantially and also cached WSDLs and XSDs will be pretty-printed.
UI Settings
Setting Description
Close Projects Closes all projects at startup for improved startup-time and less
memory consumption.
Order Projects Sorts Projects in alphabetical order in the navigator.
Order Requests Sorts Requests in alphabetical order in the navigator.
Order TestSuites Sorts TestSuites in alphabetical order in the navigator.
Show Descriptions Show description content when available
Save Projects On Exit Automatically save all projects on exit.
Create Backup Creates a backup copy of a projects project-file before saving.
Backup Folder The folder where to save backups, if relative or empty the folder is
relative to the project files folder
Auto Save Interval Sets a project auto save interval (in minutes). If set over 0, soapUI will
automatically save all projects that have no running tests (both
Functional and Load) at the specified interval
Desktop Type Selects which desktop layout to use. soapUI Pro adds a Tabbed
Desktop as an alternative to the default layout. Changing this setting
will be applied when closing the preferences dialog.
Native L&F Turns off the use of the default Look & Feel and uses the JRE default
instead. Requires a restart.
Do not disable Groovy Log Keeps the groovy log active during LoadTests, which can be useful for
debugging, etc.
Show Log Tabs Expands the log tabs when starting soapUI.
Show Startup Page Opens startup web page when starting soapUI.
Editor Settings
Setting Description
Editor Font The font to be used by all XML Editors. The "Select Font" button
opens a dialog for selecting the desired font and size.
XML Line Numbers Shows line-numbers by default in all XML-Editors (use Alt-L in editors
to toggle).
Groovy Line Numbers Shows line-numbers by default in all Groovy-Editors (use Alt-L in
editors to toggle).
Disable auto-resize Disables automatic resizing of request/response editors.
Tabbed Request view Sets the tab-layout as the default layout for request/response editors
(see Requests ).
Validate Requests Turns on automatic validation of requests before they are submitted
from a request editor. The validation performed is the same as when
pressing Alt-V in the editor.
Abort on Invalid Enabled in conjunction with "Validate Requests", if selected any
requests that fail validation will not be submitted.
Validate Responses Turns on automatic validation of response messages when they are
received in a response editor. The validation performed is the same
as when pressing Alt-V in the editor.
Integrated Tools
0
. .
WSI Settings
.
'& G '&
Setting Description
Global Properties
$
. 7- ;7
"
$
&
'
"
WS-A Settings
$
'&
Setting Description
Soap Action Overrides WS-S Action If present in the WSDL soap action overrides wsa:Action
Use default RelationshipType Indicates using default 'reply' for RelationshipType as specified in
Message Addressing Properties
Use default RelatesTo Indicates using default 'unspecified' for RelatesTo as specified in
Message Addressing Properties
Override existing headers Indicates replacing/skipping(if unchecked) already existing headers
Enable for optional Addressing policy Enables WS Addressing for Policy Addressing Assertion attribute
Optional="true" (see the WS-Policy Assertions specification )
.
0
Setting Description
Default Request Editor Sets the default Message Editor to use when a Request is opened
Default Response Editor Sets the default Message Editor to use when a Response is received
Outline Editor Limit Defines the maximum size of messages to handle in the outline editor;
since the outline editor consumes a large amount of memory, setting
a limit related to one’s own memory settings is encouraged
Form Editor Limit Defines the maximum size of messages to handle in the form editor;
since the form editor consumes a large amount of memory, setting a
limit related to one’s own memory settings is encouraged
Table Inspector Columns Sets the maximum number of columns displayed by the Table
Inspector (due to performance reasons).
Script Library Sets the location for the local Script Library .
Coverage Settings
.
0
'&(% 2
Setting Description
Code Templates
0
2 .
2 &
.
++ 2 .
H
)
3*
.
#$%
5
#0 3
&
' &
'&(%
"
C
Coverage Visualization
;
9
, %
&
, 9
. 2
8
#0
& .& .2 .&
.&
. 2
.
E
9
A . 0
: ;
C
,< ,
++ +
.
2
7
7 3
;
2
M+>
,<
,
2
. ,
C
. , )B+A*
E . .&
: .& .2 .&
.&
$
-3
. , $
&
<
$
2
)
* &
$
2
( "
+
Assertion Coverage
Coverage Options
. 2
;
9
+" & , 4"
5 4"
N
'" & "{" + Namespace URI + "}" +
local part 3
" 4" "{" + Namespace URI + "}" + local
part=comma-seperated list of values
C 3
"
{http://my.namespace}weekday=mon,tue,wed,thu,fri,sat,sun
1 9
A ! !"
'&(%
.
2
0 0: .& .2
E ! )$
'&(%
"
'&(%
4+ $"
1 !
'&(%
539 '"
1.2 Workspaces
......................................................................................................................................
Workspaces
'"
0: : " 3
9
( "
${user.home}/default-soapui-workspace.xml & "
5
& '"
"
3 "
: "
"
: "
) *
:
"
"
)
*
0:
"
$ 2
'"
0:
' 3
: "
3
"
3
:
3
.
"
)
7C7 *9
6( .%
9 0
&
0:
%&
9 0
3
: .
:
"
:
1.3 Projects
......................................................................................................................................
EO 7, ,7
:
)
(&"+(& * '
4
&
5 &
0:
'"
$
9
: <
'&(%+'(%
: ) ,%*
<
'&(%
" .&
'&(% '(%
' & &
'&(%
,-&. '(%
:
: )
:
*
(
4( ;
0: G '
0
'&(% ) ,%
*
0
'(% ) ,%
*
6(
$ ;
,-&. &
:
"
" ;
2 % .,
"
" ;
2 % %.,
"
;
&;0 $
6(
" 0
.&
:
6( )$ 0
$"&
:
& 0
: .
.
:
&$ 0
: "
.
:
" "
<
0
: 3
$
,
"
:
+
0
:
"
$
&
:
:
$
&
:
:
%&
"
3
.&
(
3
Project View
. 0:
: .
3
. . 9
$$(
/ .
< "
:
: .&
: , $
+$
/ -
,0 0: 2
:
. "
. R , $
7"&
/ -
,0 . 0: ,<
.
:
:
. $ $"& $ . < "
:
' :
Description Inspector
Description Inspector
. 0
0: 0
.
0:
. & &
% &
?
&
: .
0:
,< 3
1.3.2 Coverage
......................................................................................................................................
Project Coverage
0: 2
2
. 2
:
2
2
, +2+0
.&
:
3
1.3.3 Requirements
......................................................................................................................................
Requirements Inspectors
1.3.4 WS-Security
......................................................................................................................................
WS-Security
.
' & & '& &
3
'& &
"
K
'& &
:
:9
C
<
' & ,<
C
< $"& $",
$"&
C <
&;0 $
:
'& & 9
J& + 2 " +
;
'&&
<
$",
'&&
Usage
Keystores
. J + 2 "
'& &
.
J $
.
J 9
& 9 "+ ), ;*
& 9 "+ ), ;
0 9 "
<
( 9 "
( 0 9
& 0 9 L&&- & 0
S , EO
" "K
Outgoing WSS
;
'&&
8
-
7'&& -7
'&& "
'
8
Incoming WSS
'&&
)
$",<
< +
*
+
+
& '& &
<
" "
'
'&&
< +$",
7'&&7
.
9
C
'& & & .,<
'& &
1.3.5 Encryption
......................................................................................................................................
Project Encryption
.
: )
< *
(
&
:
.
: " 6$
9
:
:
&
:
'
:
8
"
<
:
9
&
3
'
3 "
9
% 3
5
0: 3 .
8
:
8 :
4
' "
.
:
:
2
0:8
&
:
: " .2
2
&
:
:
.& $"& C &
3 C &
: ! -
3
3 . .&
3 3 .2 $"
3 3 $";
2
:
:
8+&
&
"
0:
)
:
(
*
C .& .2
3
8
+ 0 7
7
.& .2
:8 0
.
:+
539 ,
0:
.
9
$
+
+
(
G
" 8
:
2
,
539
WSDL Interfaces
: '&(%
&;0+/..0 6
0.
;
7 '&(%7
<
.
Interface Actions
.
9
( %# 4( 9 ;
G
1 + 9 "
.
+) % +& 9 " '& 6 0
"
9 .
$ .
$
1
" 9 ?
.& ) *
1 )$ 9 ?
$"& ) *
1 "& 9 ?
/.$% '&(%
. # 9
# # -
,0 9 & '&(% '4 , $ /
' # 9
)
+ *
+ 3
&$ 9
: '
<
.2
(
3
. 7 (7
4
6
+0.
9
5
;
;
) *
'
<
.2
<
.
7" .,<
:
Caching Definitions
6 '&(%+#&( :
9
+ % 3
.
) ## " <
!
<
. : "
:
8
3
"
"
0
: 0: ( .
.
'&(% ) *
(
'
'&(%
7
'&(% 7
:
8
.
'&(% '&(% & '&(%
"
; '&(%
: )
&;0 AA+AE
*
&;0 6
C
6
0.
;
;
<
)
*
<
- 6
0.
75 6
7 '&(% &
.
'&(% 6
'&(% 9
'&(% & 7
7
)
'&(%
*
6
7
7 '&(% & ) 3
3 *
) *
"
) *
6
"
'
#$% &
3
'&(% + +
+
9
9++1
+EBBD+BM+3
+ 9 #;0 $.;$
9++1
+EBBD+AA+3 9 3
$.;$
9++1
+EBBO+BO+3 9 3
$.;$
9++1
+#$%+A>>M+
9 #$% 5
9++
+
++AA+3 9
&;0
9++1
+EBBA+#$%& 9 #$% &
'&(% &
8 7& (7 5
<
0 ;
'
)( +%*
Service Endpoints
&
& -
3
'&(%
,%
,% 70 -
7
/
&
< '
<
&
,< +.,<
<
'
7;"7
< <
.
-
"
8
WS-I Compliance
'&
4 6 0 E
9
A 4 # $ 72" '& 2
7
. '& . . '&(%
E 4
7" & ,< -
72" '& 2
7
) $
G *
: 2I )
* '&
.
. AA '&
;
4
7 7
8
'
'& 4
'& 4 "
8
'&
2
,
"
" 9
72
7
" '&
3
9
&
7& %
7
'& &
.
8
WSDL Refactoring
'
'&(%
<
3
#0 3
3
' '&(%
7, 7
0
9
&
( ,%
'&(% < "
<
Refactor Operations
&
53 4 '&(%
) < *
;
) *
8
) *
727
7(7
Message Refactoring
.
< ) * <
)
*
< 7- $ 7 :
)0
- $ "3
"
*
2
,
$
3
<
&
0 < "
:" 5 & 3
.
#0 )
3* 5 #0 3
0
5 #0
#0
WSDL Operations
'
' "
0.
'&(%
.
9
)$
$";
3
$"&
) )
0 *
$",
&
3
.2
6( 7" ,<
+
"
/
(
3
Request Actions
.
<
9
( 7"
,< -
+
< .2 .2
.& .2 <
)$
<
$"&
< $",
)
$",
&
< 3
.2
<
+ ,
7" - .%
,0
+
<
3
.,< ) *
+ 7"
< <
<
&
<
<
(
3
G . #$%
,
0
9
; - <
C -
<
; G
.
8
/..0 / 9 < +
/..0 / +
9 < +
&&% ),
* 9
&&% (
'& 9 '&
0
) *
+
3
+ )
*
Editor Toolbar
Editor Layouts
Aut
HTTP Headers
SSL Details
. &&% (
3
< 00 0
WS-A Properties
$
'& G
'& 9
< +"
'& 9
" '&(%
'&
"
" 3
'& 9. . < +"
)
3
*
Submitting requests
'
<
-
<
6
& "
<
)
*
(
< +
3
;
< 727
#
<
< (
< "
Authentication
'&& 0 .
'&& ..% ,< (
.
'& &
/..0
8
Message Validation
'
G <
8
A .
E . &;0
'&(% &;0
1
$$-
.
G 3
( "
)
*
;"
.
Copy Requests
0
"
.,< .
9
'
" 3
<
9
+ , 9 ;
.,< )*
. 9 $
,<
.,<
.
#$%
& <
.
00 0 8
. G 2 2
< < G
"
9
6
. 7G .
7
9
) *
,
.
<
,
C 3
< 7(7
.
. < 77
7& G 7
3 9
Schema Support
.
0 C -
#$% &
3 .
" #$%
&
#$% &
"
.
" 9
& 8 3; A 3
- 6
3
6 "
767
3
T
& &< 2
3
2
3
Overview View
0 ; G 4
" <
-3
)%.X2.,%X-*
$ 3
"
)%.X(;'5*
$
"
)%.X0*
$
)%.X%-C.*
$ 3
)%.X,?/.*
.
.
2
/
.
" ; . 9
(;'5 3
0
%.X2
) *
%.X- 3
) *
#0
0
.+-3
$" ,
. ,<
539 $
.
9
#$% &
/
#$%
#0
+$
$
2
-
Coverage Inspector
)N* "
7( G 7 "3
. .
8
C
;
7 7 "
.
.
4 8
. #$% C
+#0
#$%
; -
#0 3
2 2 .
. (
.
; - & -
00 0 < 8
539 '"
' & C
&
$.;$
3
($-
<
7 C7
'
8
2
0
) *
5
:
;
0 9
$$- '&(%
0 $$-
L
<
&;0 ,
79###7
###
,
<
)QD 3* 79###7
###
)+
*
&
$$- ) $$- * #;0 ) $.;$ * 2;5.-5. )
* &',-C ) , * 5J5;'5 )
*
$$-
'&(% &;0
'
$$- 0
C 3
<
9
<wsdl:definitions xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
...
<wsdl:operation name="SendClaim">
<soapbind:operation soapAction="http://example.com/soapaction"/>
<wsdl:input>
<mime:multipartRelated>
<mime:part>
<soapbind:body use="literal"
parts="ClaimDetail"
namespace="http://example.com/mimetypes"/>
</mime:part>
<mime:part>
<mime:content part="ClaimPhoto"
type="image/jpeg"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output>
<soapbind:body use="literal"
namespace="http://example.com/mimetypes"/>
</wsdl:output>
</wsdl:operation>
swaRef Attachments
. '& 0
swaRef
,
cid:somename 77
C 3
<
9
<wsdl:definitions xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
...
<wsdl:types>
...
<xsd:element name="ClaimForm" type="ref:swaRef"/>
<ClaimForm>cid:claimForm</ClaimForm>
<wsdl:definitions xmlns:xmime="http://www.w3.org/2005/05/xmlmime
...
<wsdl:types>
...
<xsd:element name="ClaimImage" type="xmime:base64Binary"/>
<ClaimImage xm:contentType="image/gif">cid:claimImage</ClaimImage>
&
$.;$ ,< ( .
C
! $.;$ <
Anonymous Attachments
Inline files
<wsdl:definitions xmlns:xmime="http://www.w3.org/2005/05/xmlmime
...
<wsdl:types>
...
<xsd:element name="ClaimData" type="xsd:hexBinary"/>
<ClaimData>file:c:\data\mydata.zip</ClaimData>
Attachment Caching
'
: )
*
:
"
Multipart Attachments
C $$- , $.;$
.
$$- $
7
+37
,< ( )7-
$
7* 2(
2( 7Y S Y
S7
"
"
Response Attachments
.
4 ( "
'(% :
,% . ,-&.+/..0
9
,-&. & + , + ,< 5
+
+
,-&.
.&
,-&.
3
$"
,-&.
,-&. & "
. ,-&. &
'(%
3
< '(% ,-&. & 7 7 ) '(%*
'(%
WADL Support
A '
,-&. & '(% +,%
) < * #$% &
0
E '
,-&. & '(% 7 7
'(%
'(%
'(% 2
'(% & ) *
& ,-&. .,<
.
9
$ 6& )< * 9
,
" ,-&. &
9
( $ 4( ;
& G
1
" ;
.& ) *
+ "& 0
/.$% ,-&. &
3
<=$ 0
'EL
: '(%
) *
' 0
3
'(%
6( " 0
,
0
;
3
( "
,-&. &
,-&. & G
'&(% 9
7;7
'(%
7& -
7
7'(% 27
'(% #$% &
Generate TestSuite
. 7? .& 7
,-&. &
9
WADL2Java Integration
EL '(% "
:
'(% &
'(%EL
,-&. &
9
1.5.1 Parameters/Representations
......................................................................................................................................
REST Parameters
9
>.? 9 <
,%
.
9
7" 9
<
#" 9
, 9 #$% & .
9
9
3
/ 9 ,% -
.
9
A .
'(%
E .
0 C -
9
REST Representations
,-&. <
<
)0. 0;&.
*
'
8 /..0
/..0
-
< 7"7
<
) 7
7
*
'(%
. 9
, 9
8 < ,-R-&.
,-&0;5&- C%.
8
, 9 .
" + 9
/..0 &
>6& 9
R5
#$% &
'(%
+ +
)
'(%
* &
2
"
<
1.5.2 Resources
......................................................................................................................................
REST Resources
,-&. & ; , ,-&. &
< ,
,-&. &
75 , 7
&+,
-
9
.
9
, 5 9
, 0+-
9
-3 0 9
3
+
+
0 9
3
2 ,< 9
<
. -3 0
3 < 3
,-&.
& 6 0
,
C 3
http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&query=Madonna&output=xml
-3
< 3
.
,-&. , 9
5 9
(
9
0 9
+
,
"
9
& , G
, G ) *
5 ,<
,< ,
5 2 ,
, ,
.
< ,
3
, . 7, 07
0 ,
1.5.3 Requests
......................................................................................................................................
9
.
9
/..0 $ 0;&. 0.
$
2 0 ,<
) *
.
.
<
!"
,% <
. ,< 0
0;&. 0.
9
C < $ 0 $
<
:,
-
,
$.
8
.
)*
#$% &
>",
R
,%8
/.$% C
0;&.
Response Handling
1.6 Scripting
......................................................................................................................................
1.7 Properties
......................................................................................................................................
Property Editors
0
9
.
, 2
3
?
? 0
3
(
+
C 3 7 37
test.a.property=hello!
${test.a.property}
' 3
9
6
+ 8 (
=
?
=
? 0
3 )73
7*
. 3 9
${[scope]propertyName[#xpath-expression]}
A 2" 3 ) 3
., 23*
E 2"
1 2"
3
#0 3
) #$%* 3
3
737
9
${Search Request#Response#//ns1:Item[1]/n1:Author[1]/text()}
'
7,
7
7& ,< 7
5
3
3
Dynamic Properties
${=(int)(Math.random()*1000)}
B >>>
(
3 3
: C 3
<
,< :
7< 7
) 3
* <
...
${=request.name}
...
...
${=request.operation.interface.project.name}
...
.
)*
9
9
D: %
9 ) 3
,< $",
*
3 9 3 ) 3
.2 $"&*
C
0
:
:+ ;
)*
K
Nested Properties
3 ) K* 3 9
test = "value"
testexp = "${test}"
testexp = "value"
exp = "${exp}"
Built-In Properties
.
3
.
5
70
$7
result the value returned by the script from its last run (read-only)
script the script itself
Run TestCase Step
Property Editors
0
9
.
, 2
3
?
? 0
3
(
+
C 3 7 37
test.a.property=hello!
${test.a.property}
' 3
9
6
+ 8 (
=
?
=
? 0
3 )73
7*
. 3 9
${[scope]propertyName[#xpath-expression]}
A 2" 3 ) 3
., 23*
E 2"
1 2"
3
#0 3
) #$%* 3
3
737
9
${Search Request#Response#//ns1:Item[1]/n1:Author[1]/text()}
'
7,
7
7& ,< 7
5
3
3
Dynamic Properties
${=(int)(Math.random()*1000)}
B >>>
(
3 3
: C 3
<
,< :
7< 7
) 3
* <
...
${=request.name}
...
...
${=request.operation.interface.project.name}
...
.
)*
9
9
D: %
9 ) 3
,< $",
*
3 9 3 ) 3
.2 $"&*
C
0
:
:+ ;
)*
K
Nested Properties
3 ) K* 3 9
test = "value"
testexp = "${test}"
testexp = "value"
exp = "${exp}"
Built-In Properties
.
3
.
5
70
$7
result the value returned by the script from its last run (read-only)
script the script itself
Run TestCase Step
539 ?
& C .
,
1.8.2 TestSuites
......................................................................................................................................
Generating TestSuites
&
7? .& 7
.& .
8
"
3
.&
, E 9
A ; .2 ;
.& .2
E &
.2 ,< ;
: K
7" + E 9
A 3
,< 3
< .,<
E 2 -
,<
<
.,<
&
1
2 %.
.2
TestSuite Actions
.
.&
9
" ;
.& ,
//
" (+- .&
6(
+
.2 .&
+
"
.&
.2+.&
"
"
.,
&
.&
&$
.&
: .2
' 3
.&
%&
+
. 2
.&
(
3
TestSuite Runner
( 2"
.&
.& ,
.2 0
6
.2 "
.2
.2 .2
0
6
.2
.& 3
.
9
" 9 , .2
+ 9 2
6(
+ 9 0
.2 .&
" 7" 9 .
.2
+ - .%
,0 9 -3
/.$% ,
.& ) *
. < +
.&
% .2
.2 )
*9
(
9
.&
0
9 .2
&
&
9 ?
.&
.( &
9 ?
.&
Generating Reports
&
72 ,
7
3
/.$%
9
3
9
TestSuite Coverage
.& 2
< C
)
0 *
1.8.3 TestCases
......................................................................................................................................
soapUI TestCases
.2
.&
3 < %.
.2
.2
TestCase Actions
.
.2
9
(
+
.2 -
//
+ .2
.2 ;
8@ .&
.2
6(
%. .2
+
+ - /(0
.2
.&
+
- .%
,3 /(0
.&
.&
+
.&
.2
&
.2
&$
.2 .&
" "
%
.2,
$
+ . .2
.2
$
+ ( .2 .2
'
3
. 2
(
3
Clone TestCase
&
.2 .2
9
:
<
:
Clone TestSteps
&
.&
.2
9
.
) 3
*
.2)* .&
) *
:
<
:
( "
.2
+
.2 .2 .2
TestCase Options
&
.2 ;
.2
.2 -
9 ' "
) 0
-3
* "
9 2 /..0 & < .2 &
"
/ 9 2 .2 .&
)
3
,< &
*
!
+ 9 2 .2 7C 7
.2 .&
9 " 9 %
,
.2
.&
+
2"
"
.&
) &" 9 . ) * < .2
+ &" 9 . ) *
.2
' " 9 . 3 .&
, "
3
.2
Clone TestStep
&
.&
.&
9
:
<
:
&
72 ,
7
3
/.$%
9
3
9
TestCase Coverage
.2 2
< C
)
0 *
' &
"
. .2 2
2
.&
0: 2
0 -
2
.2 +
3
2
2
0 &
0: 2
TestCase Requirements
. .2 ,< ,< 0 0: G
,<
.2
,< .2 < .2
%
4 7%" .27
,< . "
1.8.4 TestSteps
......................................................................................................................................
soapUI TestSteps
.2 .&
3 .
8
Request Sends a SOAP request and allows the response to be validated using
a variety of assertions.
REST Request Step Executes a REST Request to a Resource defined in the project
HTTP Request Step Executes and arbitrary HTTP request
Property Transfer Used for transferring property values between two test steps.
Groovy Script Runs a Groovy script that can do more or less "anything".
Properties Used for defining global properties that can be read from an external
source.
Conditional Goto Allows any number of conditional jumps in the TestCase execution
path. Conditions are specified as XPath expression and applied to the
previous request steps response.
Delay Step Pauses a TestCase run for the specified number of milliseconds
Run TestCase Step Runs another TestCase from within an existing one
MockResponse Step Waits/Listens for an incoming SOAP Request that can be validated
and return a mock response
DataSource Step Reads external data to be used as input to requests, etc - soapUI pro
only
DataSourceLoop Step Used together with a DataSource to specify looping for external data
rows - soapUI pro only
DataSink Step Writes properties to an external storage - soapUI pro only
DataGen Step Generates property values - soapUI Pro only
9
.&
) *
//
+ .&
3
% 8@
&
+
) *
$ .
)
2
*
$ (
)
2 (*
8 # 8 .&
.&
Test Requests
,< &
9
A &;0 . ,< '&(% ;
:
E ,-&. . ,< ,-&. ,-
:
1 /..0 . ,< /..0
. "
+
<
,
. ,< )
/..0 . ,< *
.
9
+#" )
*
+ )
*
&
&$
. ,< %
+
4
.,< .
4
Clone Assertions
Property Transfers
0
. .&
0
2
0
. .&
)
.2 .& 0: ?
0
* .
77
#0+#R 3
0
. &3 #0+#R
#0+#R
263
3
#$%
#0
3
0
#0 & ? #0 2
3
#0 3
.
9
9
+ , 9
& 9
" 9
C "
) 3
.,<
*
" 9
C "
) 3
.,<
*
9
#0 5
3 .,<
3 < .,< <
(
3
7. %
7
0
.
.2+.& . . %
727
Transfer Execution
#0 3
&
#0 3
<
<
#0 3
7 7
.2 3 .2 7C 7
.2 ;
.
9
! # C
) 3
*
" & " ;
# ' ' #0 3
3
)< "
AO*
% & ,& $" ;
:
#
#0 3
. >",
#0 3
#R 3
3+ : 7
7
PropertyTransfer Example
.
: 9
<soapenv:Envelope
xmlns:ns="http://webservices.amazon.com/AWSECommerceService/2006-02-15"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:ItemSearch>
<ns:SubscriptionId>- your subscription id here-</ns:SubscriptionId>
<ns:Request>
<ns:SearchIndex>Books</ns:SearchIndex>
<ns:Title>Oxford</ns:Title>
</ns:Request>
</ns:ItemSearch>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://webservices.amazon.com/AWSECommerceService/2006-02-15">
<soapenv:Body>
<ns:ItemSearch>
<ns:SubscriptionId>- your subscription id here -</ns:SubscriptionId>
<ns:Request>
<ns:Author>?</ns:Author>
<ns:SearchIndex>Books</ns:SearchIndex>
</ns:Request>
</ns:ItemSearch>
</soapenv:Body>
</soapenv:Envelope>
.
#09
,
"
) 3
*
2 &3 #0
#0
6 ) ? 3
*
.
9
+ , 9
9
& 9
" 9
)
.,< *
9
3
5
3
.,<
) *
(
3
"
9
Script Execution
'
7, 7 E :
"
. log :
.2
7?
7
-3
) 3
*
Context Properties
.
9
%' 3
%. .
.2
5
3
3
3 )
* '
%.
7B7
"+" .2 ) *
%. '
%.
7B7
"
%.,
%.
A
B
/
& .2
.2 ;
?
? 3
9
$ ,< 39
// modify
textNodes.clear();
textNodes.add( "test" + System.currentTimeMillis() );
// set property
property.setValue( writer.toString() )
,
testRunner.gotoStep( 0 )
}
else
{
// reset name and pass on
context.currentStep.name = "Groovy Step"
log.info "timePassed = " + timePassed + ", exiting.."
}
,
0
&
C
// fail randomly
if( Math.random() > 0.5 )
throw new Exception( "A random error has occurred!" );
,+ "
7$ /..0 &7
.2 ;
(
HttpState : .2 "
.
" /
&
?
9
for( c in 0..cookies.length-1 )
soapUI GroovyUtils
+
U
3V =
) 3
*
getNamespaces() $
3
,9 #0
3
removeDomNodes( xpath ) (;$
#0 3
xml 9
3
updateProperty() 9 #/ .&
3 ) 3
*
updateProperty( boolean prettyPrint ) 9
3 (
#0 3
declareNamespace
#$% $
0
-3
...
log.info( holder["//ns1:RequestId"] )
...
holder["//ns:SubscriptionId"] = ""+Math.random()
...
539 .
' & 0
&
Properties Step
. 0
&
0
. ?&
.
+
3 3
3 )
*
Properties Editor
9
.
Step Execution
539 , .2 &
7, .27
.&
9
& .& .2
3 . 7, 0
7
.2
.2
" , .2
3
Execution
'
.&
9
A .
"
.2
E .
.2
1 .
"
"
.2 ,
.2
D
.2 , .2
.
A 1
+
.2
.
(&
3
.2
.2
.2
.29
MockResponse Step
. $",
.
&;0 ,<
.
< :
.,< &
.&
3
9
2
<
\
.
3
" : ,< &
.
9
.
$",
3
9
&" C $",
&
<
&
B
!" $",
&;0 C
. $",
&
0 $",
+
.,<
3 4 ; -
0
.
Query/Match Configuration
0
. $",
&
: .,<
<
%.
$",
"
%.
9
1.8.4.9 DataSource
......................................................................................................................................
.
(&
9
L(62 (& L(62
-3 (& 3 -3 )3*
? (&
#$% (& 3 #$%
C (& 3
( (&
? (&
" (&
(& %
<
(&
. 0
73
7 (&
+, - (&
. (&
(& 7.7
(& ,
. %
. 707 7&7
7(& -3 7
DataSource Options
.
9
(& %. )
*
(&
%.
" (& .&
3
.2
! & , (&
.
3
&R% < L(62 '/-,-
3
1 & , (&
3
.2 3
(& %
(& .2
(
(& ) = B*
(
(&
& (&
* 4 (&
' 3
3
(&
DataSource Execution
(
707
(& 4 3
.2 )
= *
(& )
=
* (
" (&
"
3
#$% (&
<
< 3
2 3
.2 3
(&
(& %
&
" 3
. 7&7
(&
%.
, $
(( % .
JDBC DataSource
Excel DataSource
Grid DataSource
.
+
-
+
3
-3
.
.
9
XML DataSource
#$% (& (&
File DataSource
C 3
) 3
*
.
9
C
&
. G
Directory DataSource
Groovy DataSource
.
" (& (& &
. ?
7 7 : ) &
.&
$
* 3 9
7 7
737 ., 23
3
7, 7 ., :
539
0 (& %
&
.
E
9
(& &
(& &
"
.
&
&
C 3
(&
3 <
(& %
<
(& &
,<
)
" < *
1.8.4.11 DataSink
......................................................................................................................................
.
9
(&" %. ) *
- .2 3
(&" &
(&"
G
?
0
-3
3
5
0
0
-3
. 7&7
(&"
%.
)4* (&"
.
" (&" (&" &
3 9
737 ., 23
3
7
7 $
7, 7 ., :
7
7
9
, 0
.&
) K*
03
3
2 (&" 3
& 3 3
3
3
. 3
7 7 #$% 3
<
(&" 77
1.8.4.12 DataGen
......................................................................................................................................
DataGen TestStep
. 7(?7 .&
.2 3
< .
0
. -3
: "
2
(?
.2
( "
.&
9
.
(?
) *
9
Script
.
&
9
&
C 3
9
Template
<date><today>${DataGen#today}</today></date>
Number
& 3
&( ABB ABBB &( OB
&(
9
List
9
8 ,-( &.-0
,-(
. " " ) 3
*
+
.
8 3
5
< (
.2
(
< +
+
,-(
$ &.-0
(? .&
3
3
.2 0
3
(?
%.8
5
< < ( <
<
< <
539 % .
' &
% .
%. .2 )
.2 75 %.7
*
+ .2
.&
& 9 & %. -3
.
0
6
)
* %.
3
. %&
% . -3
LoadTest Options
/..0 )
*
+ + # 7" 9 & J
+2
' &
& %$ 9 &
%. & ) *
EOB
/ , 9 ( )
*
' 9 (
$
-3
%.
( 3 7UV7
%. %
+ " 9 2
.
%.
)
"
* L$ 2
%
.2
. .&
.2
.2
. & %. -3
( "
.&
.&
,
"
.&
.&
%. .&
%.
. %. %
3
%.
( "
) * 3
< +
539 ?
& ' & % .
& 7%. 7 %. -
7
7 & 7&
$3 7
9
. &
$3 "
3 3
6&
&"& 7" 3
Run again!
5
%.
"
.2 O 3
OBB %.
Now What?
.
%. &
% . (
539 2
' & % .
LoadTest Configuration
. 3 %.
9
. %. %
%.
. %. &
.2 )
*
LoadTest Limit
&
% B % .
%.
%.
LoadTest Strategies
%.
.2 3
.2
.
&
&
3
%.
.
%. &
9
& 9 .2 3
4 9 .2 3
:" 9 .2 3 7 7
9 .2 3 3
1 9 ( )
0 *
9 %
)
0 *
.0&
72 .0&
7
%. ;
C 3
EB DMB BO
EB 1B E AB 3 D
"
EB E
%. 6 &
. 6
9
C 3
QBB 1B OB
AB
1B OB AB
AB
%. . &
C 3
QBB A
1B A 1B AB
%. ? &
. ? &
9
-
3
M AB AE AB
6 -
. .2 .2
%. &
&
. &
&
9
/
.2 .
%. ;
. 3
A AA
1.9.3 Execution
......................................................................................................................................
LoadTest Execution
'
%.
.2
.2
(
%.
9
% .
727 %.
%. 3
(
3
& .9
&
"
&'
"
$
3
2 .0&+60&
/,
/
2
)
.2 3 *
Request Step The request duration is calculated depending on the settings in the
LoadTest Options dialog (as described there).
LoadTest Assertions
'
%.
9
Calculation of TPS/BPS
(
72 .0&7
%. ;
.0& 60&
9
5;.
) *9
.0& 9 )ABBB+
*W 3
= ABB
.0& ABB
60& 9 )+* W .0&
< W .0& C 3
ABBBBBB ABB < .0& ABB
)ABBBBB+ABB
W ABB* = ABBBBBB 60&
6
9
.0& 9 .
.2 + 25. + ABBB .2 AB
ABB <
.0& AB
60& 9 6 + .
+ ABBB .2 AB
ABBBBB
60& ABBBB
0
.2
. .0&+60& < .&
"
.2
.
.2
&
%&
<
) * &
.0&
)
+*
1.9.4 Assertions
......................................................................................................................................
%.
&"& 7" 3
9
6&
&"& 7" 3
%.
%.
1.9.5 Graphs
......................................................................................................................................
Diagrams
E
%. & )
3 +
* . 9
.&
,
& .&
6
7, 7
. 7(7 9
%. &
7&
7
%. ;
.
.2 )
& %.
.2
<
###
&
6
%. . "
%.
.
.&
.2 . .
3
3
L$
) /..0 L(62 L$& *
$
L$ L$ 7
7
7 7 ) *
;
L$
) 3
*
% .
' & 3
8 " : 6
L$
77
3
) .2
*
Comparison Setup
,
7
$
'#0 &0E 0 $ AM A? ,$ L,- AOB_BQ
L6 L$
Results
soapUI cmdline
Threads jmeter soapUI soapUI (*) soapUI cmdline (*)
1 8 ms, 105 TPS 6.78 ms, 147 TPS 10.7 ms, 94 TPS 5.75 ms, 174 TPS 10 ms, 99 TPS
5 43 ms, 110 TPS 38.7 ms, 128 TPS 23.7 ms, 211 TPS 30.4 ms, 164 TPS 24 ms, 210 TPS
10 86 ms, 112 TPS 82 ms, 122 TPS 46.5 ms, 215 TPS 61 ms, 164 TPS 38 ms, 262 TPS
25 214 ms, 114 TPS 204 ms, 123 TPS 124 ms, 202 TPS 159 ms, 157 TPS 95 ms, 263 TPS
.0& L$
3
.
/
2 LG$
3
.
;
<
3
' &
&; "
%"
L$ L$ /..0 AB
' & < System.currentTimeMillis()
System.nanoTime() L AO
Further Analysis
Conclusion
Files
File Description
comparison-soapui-project.xml soapUI project file containing all tests run in the comparison
soapui-compare.jmx jmeter project file containing all tests run in the comparison
ws4ee-samples-server-ejb.jar precompiled jar file containing tested Web Service, just drop this in
the JBoss 4.0.3 deploy folder and the above tests should run as
configured (you may need to change the endpoint)
1.10 Mocking
......................................................................................................................................
$"
' &
9
+ $ & $"& 3
+
$ $ & #& -/ $ 0 &
'&(%
)
*
$"& .&
/ $ , R "
'&(%
3
0 $",
.&
.2
&;0 <
' &
539 ?
& $" ' &
3
"
3
"
? "
&
:
2 2
9++3+2 23N'&(%
Create a MockService
< ,
"
7? $"&7
9
L
. $"& ) *
< +
< $"&
. $",
,< ) +
8 * 7 7
"
. 7
,< 7 +
<
)
*
$"&
1 &
< K
$",
<
9
&
" $",
7
,< 7 +
<
$"&
$"; 9
2
K /
$"&
C
$",
<
) $"&*
;J
" 9
$";
)
* 2
$";
;
)
*
$"& $";
- $";
$",
'&(%
&
<
; $";
$"&
<
" L "
<
MockService Actions
,
"
$"&
9
( )$
$"& -
&*
+4 $"& $"&
$"&
6( )
$";
$"&
+ )$ $"&
%#
$"&
: .
$"& -
&
$"&
&$
$"&
3
<
9
/ - $"&
( "
3
<
9
MockService Inspectors
MockService Options
MockService execution
'
$"&
,
)
$"&*
$"& ;
.
9
&;0 ,< 77 ' &
<
$"& + $";
,< (
' $"&
+ $";
$",
.
$"& <
$"&
WSDL Publishing
'
$"&
'&(%
)'&(% #&(*
+
$"&
.
$"-
$"&9
&
$"&
" 9
&
9
9
EO
$"&
7N'&(%7 "
'&(%
'&(%
"
'&(%
'&(%
1.10.2.1 Coverage
......................................................................................................................................
MockService Coverage
'
2
$"&
4 "
<
2
0 .
E
9
2 2
9 '&(%
$" 2
9 $" "
'
$"& 2
0
2
.
$"& $";
8 $";
3
0 ' &
MockOperation Actions
,
"
$";
$"&
9
)
$";
-
7"
3
<
"
$"&
.
< "
$"&
$"&
6( )
$",
$";
+
;
" $";
) *
&
$";
&$
$";
3
Change Operation
.
9
6&
$";
%#
"
"
$",
$";
+
9 ' "
3
+
)
" +
+
( "
$";
$";
C
9
Request Dispatching
< $";
D
39
>.6+
<
#0 &
Query-Match Dispatching
. <
+
+ &
<
<
9
#0 9 #0 3
< $";
-3
9 "
(
. 9 $",
3
<
( 9
.
(
9
( 5
9
<
-3 9
#0 3
< 3
-3
G
& 9 ;
0 #0 & <
#0 #0
?
3
?
context $", 23
.
3
$";
+$",
$"&
& :
Map
?\
) 3
*
requestContext $", 23
. 3 <
<
$";
539 $" ,
Mock Responses
$",
$"&
$";
.
)
3
3 *
$",
$";
,<
+ 7 $"&7 +
MockResponse Actions
,
"
$",
$";
9
)
$",
-
7"
3
< $",
$";
+
$",
&
.2
+
7"
.2 $",
.&
+
$",
&
$",
&$
$",
3
/ "
$
& 9 .
( "
$",
$";
$",
9
. ,
#$% & /..0 /
,< - ) * 7,
&
7
?
3
) *
Response Scripts
. 7,
&
7 ?
3
context $", 23
.
3
$";
+$",
$"&
& :
Map
?
) 3
*
requestContext $", 23
. 3 <
<
$";
mockRequest '$",<
< :
/
&,< +/
&,
:
mockResponse '$",
$",
: ) 3
*
. ,
3
3 ) $"&
*
. $",<
<
context.randomValue = Math.random()
<detail>${randomValue}</detail>
WS-A Properties
SOAP Monitor
EB
&;0 $
&;0
3
.
.2 $"&
0 )3 * 2
4 '&(% )*
& &;0 $ 0: 7% &;0 $7 9
&
9
', 9 /..0 03 '
9
3
3 9
" 9 /..0 .
9
) ,% . 7
7
: <
"
"
+ ), ),
(
.
,< +,
'&&
'&&
Main Window
.
7$
27
< +
. 1
9
+ 7" 9 <
<
. E
1.11.1 Coverage
......................................................................................................................................
0 ' &
Scenario Description
Data Driven Web Service Testing Shows how to use a combination of TestSteps or Groovy Scripts to
allow test data (query parameters, username/password, etc) to be
provided from an external source
Template Driven Web Service Testing Extends Data Driven testing to show how to read a series for test
values from an external source and run the entire TestCase for each
row of values.
Interactive Testing Shows how to use Groovy scripts to create an input dialog for a
TestCase and for displaying the result.
Surveillance Testing Describes how to use a scheduling tool in conjunction with soapUI to
set up ongoing test processes that continuously validate functionality
and performance.
( ( .
.2
9
2 ,<
2 0
&
3
2 0
. &
5
3
70
&
7
3
? &
0
&
6
6
3
4 & &
3 " !
:
4 '&(%
)
9++4+'&-2&+'&-2&*
<soapenv:Envelope
xmlns:ns="http://webservices.amazon.com/AWSECommerceService/2006-02-15"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:ItemSearch>
<ns:SubscriptionId>?</ns:SubscriptionId>
<ns:Request>
<ns:SearchIndex>Books</ns:SearchIndex>
<ns:Author>?</ns:Author>
</ns:Request>
</ns:ItemSearch>
</soapenv:Body>
</soapenv:Envelope>
7& 2
7
7&;0 C 7
3
70
&
7 E
7&
(7 7 7
70
.7
E
7, 7 0
. -
,<
<
"
9
& 7 7 0 & -9
9
7 7
3
. ? &
3
: ? &
7 7
6
? &
.2
? &
- -
9
// init properties
def props = new Properties();
props.load( new FileInputStream( "test-input.properties" ));
.
3
737
., 23 -
3
7J
E1B7
def list = []
new File( "testdata.txt" ).eachLine { line -> list.add( line ) }
., 23
3
77
0
. ,<
9
.
<
. <
"
.
7, 2 7
3
coupland,150
king,150
shakespeare,150
.
%. .2 O
AO
Properties
.
9
" 9
"/ % 9 4
"+" 9
Groovy Input
.
" 9
// create dialog
def dialog = com.eviware.soapui.support.UISupport.createConfigurationDialog( "Amazon
Query" );
dialog.addTextField( "Author", "The Author to search on" );
// assign
step.setPropertyValue( "Author", map.get( "Author" ));
}
else testRunner.cancel( "No author to search on!" );
'
? 0
&
<ns:ItemSearch>
<ns:SubscriptionId>${SubscriptionId}</ns:SubscriptionId>
<ns:Request>
<ns:SearchIndex>Books</ns:SearchIndex>
<ns:Author>${Author}</ns:Author>
</ns:Request>
</ns:ItemSearch>
Search Request
.
< 9
<soapenv:Envelope
xmlns:ns="http://webservices.amazon.com/AWSECommerceService/2006-03-08"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:ItemSearch>
<ns:SubscriptionId>?</ns:SubscriptionId>
<ns:Request>
<ns:SearchIndex>Books</ns:SearchIndex>
<ns:Author>?</ns:Author>
</ns:Request>
</ns:ItemSearch>
</soapenv:Body>
</soapenv:Envelope>
Result Transfer
.
3 ? 0
7, 2 7
#0 3
9
declare namespace
ns1='http://webservices.amazon.com/AWSECommerceService/2006-03-08';
//ns1:TotalResults/text()
.
9
,
.2
9
Summary
%"
%. 9
0
9
[LoadTest10]
21:16:56,512 INFO [SoapUILoadTestRunner] Exported 1 log items to
[LoadTest10-log.txt]
21:16:56,512 INFO [SoapUILoadTestRunner] Exported 0 error results
21:16:56,512 INFO [SoapUILoadTestRunner] Exported 2 statistics to
[LoadTest10-statistics.txt]
21:16:56,602 INFO [SoapUILoadTestRunner] Running LoadTest [LoadTest25]
21:16:57,113 INFO [SoapUILoadTestRunner] LoadTest [LoadTest25] progress: 0.0046
21:16:58,135 INFO [SoapUILoadTestRunner] LoadTest [LoadTest25] progress: 0.0348
.. etc ..
21:17:37,742 INFO [SoapUILoadTestRunner] LoadTest [LoadTest25] progress: 0.9506
21:17:38,773 INFO [SoapUILoadTestRunner] LoadTest [LoadTest25] progress: 0.9748
21:17:39,845 INFO [SoapUILoadTestRunner] LoadTest [LoadTest25] finished with status
FINISHED
21:17:39,865 INFO [SoapUILoadTestRunner] Exporting log and statistics for LoadTest
[LoadTest25]
21:17:40,095 INFO [SoapUILoadTestRunner] Exported 1 log items to
[LoadTest25-log.txt]
21:17:40,095 INFO [SoapUILoadTestRunner] Exported 0 error results
21:17:40,095 INFO [SoapUILoadTestRunner] Exported 2 statistics to
[LoadTest25-statistics.txt]
21:17:40,105 INFO [SoapUILoadTestRunner] soapui suite [Organization Tests] finished
in 88647ms
%
:9
2
G2& C &
)
:
3
*9
2 ,
,
3 73 +27 ,
+
*
? "
)
7&7
*9
2" % 6 .&
)
.&
*9
? "
" % 6
9
Request Step,min,max,avg,last,cnt,tps,bytes,bps,err
request step,3,1189,95.25,76,5000,262.45,2160000,84454,0
Total:,3,1189,95.25,76,5000,262.45,2160000,84454,0
Summary
. < "
2 .
' &
Tool Integrations
;
& ' & . J
8
A + 1
3
Configuration
)
*
'&(%
'&(% 77 '&(%
'&(%
3
'&(%
'&(%
72
7
"
)* 3
)
9 * .
#C
: '?
9
Running a tool
* .
L'&(0 '&2
9
JBossWS wstools versions 1.0.X JBossWS User Guide Install the latest JBossWS stack
and install/configure as required.
Specify the directory containing
the wstools script in the Tool
Integrations settings dialog. The
dialog has a "Show Config"
button that displays the wstools
config file generated for the
current settings.
JBossWS wstools versions 1.0.X JBossWS User Guide Install the latest JBossWS 1.2 or
newer stack and install/configure
as required. Specify the directory
containing the WSTools script in
the Tool Integrations settings
dialog. The dialog has a "Show
Config" button that displays the
WSTools config file generated for
the current settings.
JWSDP JAX-RPC / WSCompile , tested with versions 1.6 and 2.0 WSCompile Install the desired JWSDP
tested with versions 1.6 and 2.0 version and install/configure as
required. Specify the directory
containing the WSCompile script
in the Tool Integrations settings
dialog.
JWSDP JAX-WS / WSImport , tested with versions 1.6 and 2.0 WSImport Install the desired JWSDP
tested with versions 1.6 and 2.0 version and specify the jaxWS /
bin directory in the soapUI Tool
Integrations settings
Apache Axis 1.X tested with versions 1.2.1, 1.3 wsdl2java Install Axis 1.X and specify the
and 1.4 installation directory in the
soapUI Tool Integrations settings
Apache Axis 2
Apache Axis 2 tested with 0.9X and 1.0 wsdl2java Install Axis 2 and specify the
installation directory in the
soapUI Tool Integrations settings
Apache CXF 2.0 tested with 2.0.1 wsdl2java Install CXF and specify the
installation directory in the
soapUI Tool Integrations settings
XFire 1.X
XFire 1.X WsGen tested with 1.X WsGen Install XFire 1.X and specify the
installation directory in the
soapUI Tool Integrations settings
Oracle wsa
Oracle wsa.jar tested with latest JDeveloper Oracle Web Services (PDF) Install JDeveloper and specify
release <jdeveloper-root>/webservices/lib
in soapUI Tool Integrations
settings
XMLBeans 2.x
XMLBeans 2.X tested with 2.2.0 scomp Install XmlBeans 2.X and specify
the installation directory in the
soapUI Tool Integrations settings
JAXB 2.x
JWSDP JAXB 2.0 tested with JWSDP 2.0 xjc Install JWSDP as required and
specify the jaxb\bin installation
directory in the soapUI Tool
Integrations settings
GSoap 2.X
GSoap 2.X tested with GSoap 2.7 on win32 wsdl2h , soapcpp2 Install GSoap as required and
specify the installation directory in
the soapUI Tool Integrations
settings
.NET 2.0
.NET 2.0 .NET 2.0 wsdl.exe Install Visual Studio and .NET 2.0
and specify the directory
containing wsdl.exe in the soapUI
Tool Integrations settings
E
9
A C . : .
$
E C $
3
.
9
.
9
.
$ "
.
$
.
$
3
%
.
$
9
" .
$
)
*9
&;0 <
7
37
.
$
9
Tool Description
SoapUITestCaseRunner
. com.eviware.soapui.tools.SoapUITestCaseRunner
"
:
9
switch description
Launch Dialog
C
7% %., 7
0: .& .2
9
.
:
)
* '
.,
9
JUnit Integration
. runner.run() 3
+
.2 9
Total TestCases: 1
Total TestSteps: 4
Total Request Assertions: 1
Total Failed Assertions: 0
Total Exported Results: 4
6 3
3 -a
3
C 3
,< .&
)
*9
Status: OK
Time Taken: 55
Size: 448
Timestamp: Sun Mar 12 12:45:57 CET 2006
TestStep: request step
----------------------------------------------------
Encoding: UTF-8
Endpoint: http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization
Username: asd
Password: dfsdfdsf
Domain: asdasd
---------------- Request ---------------------------
<soapenv:Envelope xmlns:sam="http://org.jboss.test.webservice/samples"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<sam:getContactInfo>
<String_1>testsd1141581163341</String_1>
</sam:getContactInfo>
</soapenv:Body>
</soapenv:Envelope>
---------------- Response --------------------------
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getContactInfoResponse
xmlns:ns1="http://org.jboss.test.webservice/samples">
<result>The 'testsd1141581163341' boss is currently out of office, please
call again.</result>
</ns1:getContactInfoResponse>
</soapenv:Body>
</soapenv:Envelope>
-3
Y.& S Y.2S Y.&
5S Y2 S Y& S3
3
7.&
A .2 A ,< &
A B ;J37 ) .&
"
.2*
APO
3
Y.& S Y.2S Y.&
5S Y2 S Y2 SY-3S
3
) *
JUnit Reports
:
3
3
L "
3
2
.&
"
.2
7.-&. . & 37
.
:
"9
<junitreport todir="./testresults">
<fileset dir="./testresults">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="./testresults/html"/>
</junitreport>
'
1E 9
<target name="soapui-report">
<junitreport todir="g:\\reports">
<fileset dir="g:\\reports">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="g:\\reports\\html"/>
</junitreport>
</target>
SoapUILoadTestRunner
. &
%., %.
34
.
%.
%.
switch description
switch description
loadtestrunner.bat -ehttp://localhost:8080/services/MyService
c:\projects\my-soapui-project.xml
C
%.,
7% (
7
0:+%.
9
.
:
)
* '
[testcase3]
15:31:59,941 INFO [SoapUILoadTestRunner] Running LoadTest [LoadTest1]
15:32:00,141 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.0025
15:32:01,153 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.019533332
15:32:02,154 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.036383335
15:32:03,155 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.053066667
..etc..
15:32:57,944 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.9662167
15:32:58,956 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.9830833
15:32:59,977 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 1.0001
15:33:00,979 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] finished with status
FINISHED
15:33:00,979 INFO [SoapUILoadTestRunner] Exporting log and statistics for LoadTest
[LoadTest1]
15:33:01,039 INFO [SoapUILoadTestRunner] Exported 2 log items to [LoadTest
1-log.txt]
15:33:01,039 INFO [SoapUILoadTestRunner] Exported 0 error results
15:33:01,119 INFO [SoapUILoadTestRunner] Exported 2 statistics to [LoadTest
1-statistics.txt]
15:33:01,119 INFO [SoapUILoadTestRunner] Skipping testcase [Copy of Copy of
testing], filter is [testcase3]
15:33:01,119 INFO [SoapUILoadTestRunner] soapui suite [test] finished in 61178ms
. 3 3 %. - " 9
Request Step,min,max,avg,last,cnt,tps,bytes,bps,err
request step,1,407,17.63,26,11591,283.49,5192768,86696,0
Total:,1,407,17.63,26,11591,283.49,5192768,86696,0
SoapUIMockServiceRunner
. com.eviware.soapui.tools.SoapUIMockServiceRunner
"
:
$"&
9
switch description
. "
$"&
3
8
SoapUIToolRunner
. &
.,
2 ?
9
switch description
9
mailapi_1_3_1.jar;saaj.jar;servlet.jar;wsdl4j-1.5.1.jar
org.apache.axis.wsdl.WSDL2Java -v -W -s -a
-H -T 1.2 -o g:\test\amazon
C:\DOCUME~1\OLE~1.MAT\LOCALS~1\Temp\tempdir8304.tmp\AWSECommerceService.wsdl
Parsing XML file:
C:\DOCUME~1\OLE~1.MAT\LOCALS~1\Temp\tempdir8304.tmp\AWSECommerceService.wsdl
Generating
g:\test\amazon\com\amazon\webservices\AWSECommerceService\_2006_05_17\CartGetRequest.java
...
Generating
g:\test\amazon\com\amazon\webservices\AWSECommerceService\_2006_05_17\deploy.wsdd
Generating
g:\test\amazon\com\amazon\webservices\AWSECommerceService\_2006_05_17\undeploy.wsdd
SoapUIToolRunner: Execution finished successfully
02:27:14,593 INFO [SoapUIToolRunner] time taken: 5814ms
, 9
A#
E#
539 A#
0
<dependency>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>1.7.6</version>
<type>plugin</type>
</dependency>
maven.repo.remote=http://www.ibiblio.org/maven,http://www.soapui.org/repository
(
6 "
:
${pom.artifactId}-soapui-project.xml
maven.soapui.project
,
maven soapui:test
maven soapui:loadtest
.
: .2 .&
.& +.2+%.
maven.soapui.test.testsuite maven.soapui.test.testcase
maven.soapui.test.loadtest
.,< 3 .2 maven.soapui.test.XX
3
maven soapui:test
-Dmaven.soapui.test.endpoint=http://somehost.com:8080/services/MyService
6
.,< 3
.2
.2
.
&
.2,
&
.2, maven.soapui.report.XX
build:start:
soapui:test:
[echo] Running soapUI project sample-soapui-project.xml with endpoint []
[java] SoapUI 2.5.1 TestRunner
soapui:loadtest:
[echo] Running soapui project jbossws-soapui-project.xml with endpoint []
BUILD FAILED
File...... C:\Documents and
Settings\ole.matzura\.maven\cache\maven-soapui-plugin-1.5beta1\plugin.jelly
Element... ant:java
Line...... 104
Column.... 105
Java returned: 1
Total time: 18 seconds
Finished at: Sun Mar 12 22:48:26 CET 2006
0
E
:
38
<pluginRepositories>
<pluginRepository>
<id>eviwarePluginRepository</id>
<url>http://www.eviware.com/repository/maven2/</url>
</pluginRepository>
</pluginRepositories>
.
3
<plugins>
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<projectFile>sample-soapui-project.xml</projectFile>
<host>http://127.0.0.1:8181</host>
</configuration>
</plugin>
</plugins>
,
mvn eviware:maven-soapui-plugin:test
mvn eviware:maven-soapui-plugin:loadtest
$"&
mvn eviware:maven-soapui-plugin:mock
.
: .2 .&
.& +.2+%. testSuite testCase
loadTest
Integrated Tools
:
"
mvn eviware:maven-soapui-plugin:tool
E
9
<plugins>
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<projectFile>sample-soapui-project.xml</projectFile>
<testSuite>OleTest</testSuite>
<iface>IOrderService</iface>
<tool>wsi,axis1,axis2</tool>
<settingsFile>C:\workspace\core\soapui-settings.xml</settingsFile>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
7537
:
9
&
'&(%
?
.& + $"&
'&(%
&
3
0:
(
<
;
: 56
70:7
5
9
.
%
'F
%
56 "
9
.
56 0
' '
Demonstration Movies
1.15.2.1 Installation
......................................................................................................................................
; 56 9
5 77 56
L 72 7
9
.
77 9
' & L
-3
"
.'9
7
5
7 .'
'"
5
(
.
7
%
7 .' %
.
("
0 (-
/ 9
2
7 A7
77
"
L
-Xms128m
-Xmx512m
-XX:MaxPermSize=128m
-ea
539 '"
56 0
soapUI eclipse-plugin
.
77
EO
:
.
"
&'._'.
"
;J ) "
*
2
7
7 .
E 8
7
5
7
5
(
7
%
7
5
+ "
"
+"
soapUI Preferences
$
&
'+0
8
soapUI Nature
.
5
L
:
.
3
"
7
7 9
7&
' &7
:9
' -
0: -3
G "
:
" 7
7
: 9
;
'&(% '(% 77
7
' &7 9
5
7? S 3 A# 7
& 7?7 " 3 )
70 S
S
.7*
9
.
L ) K*
). " 3
:
.
*
' &
539 '"
L6 '& .
Global Actions
.
9
.
8
Desktop Actions
.
"
"
8
Ctrl F4 Close Current. Closes the active window in the soapUI desktop
Ctrl Alt O Close Others. Closes all windows but the active window in the soapUI
desktop.
Ctrl Alt L Close All. Closes all windows in the soapUI desktop.
Ctrl Tab Select next. Selects next window in the soapUI desktop.
Project Actions
.
0: 5
Interface Actions
.
5
Operation Actions
.
;
5
Request Actions
.
,< 5
.
"
,< -8
TestSuite Actions
.
.& 5
TestCase Actions
.
.2 5
.
"
.2 -8
.
"
? -8