......

soapUI v.2.0.2

Project Documentation

...... eviware 28 January 2008

TABLE OF CONTENTS i

Table of Contents ......

1 User Guide ...... 1.1 Overview ...... 1

1.1.1 Tabbed Desktop ...... 1

1.1.2 License Management ...... 3

1.1.3 Preferences ...... 5

1.1.4 XPath Selection ...... 16

1.1.5 WSDL Coverage ...... 18 1.2 Workspaces ...... 23 1.3 Projects ...... 26

1.3.1 Project View ...... 31

1.3.2 Coverage ...... 34

1.3.3 Requirements ...... 35

1.3.4 WS-Security ...... 38 1.4 Interfaces ...... 42

1.4.1 Interface View ...... 47

1.4.2 Service Endpoints ...... 48

1.4.3 WSDL Content ...... 50

1.4.4 WS-I Complicance ...... 52

1.4.5 WSDL Refactoring ...... 55 1.5 Operations ...... 59 1.6 Working with Requests ...... 61

1.6.1 Form Editor ...... 73

1.6.2 Overview View ...... 78

1.6.3 Outline Editor ...... 79

1.6.4 Message Inspectors ...... 81

1.6.5 Attachments/Inline Files ...... 85 1.7 Scripting ...... 91

1.7.1 Script Library ...... 95

©2005 EVIWARE.COM • ALL RIGHTS RESERVED TABLE OF CONTENTS ii

1.8 Properties ...... 99

1.8.1 Property Expansion ...... 104 1.9 Functional Testing ...... 109

1.9.1 Getting Started ...... 110

1.9.2 TestSuites ...... 113

1.9.3 TestCases ...... 119

1.9.3.1 Test Requests ...... 132

1.9.3.2 Property Transfers ...... 139

1.9.3.3 Conditional Gotos ...... 144

1.9.3.4 Groovy Scripts ...... 147

1.9.3.5 Properties Step ...... 153

1.9.3.6 Delay Step ...... 155

1.9.3.7 Run TestCase ...... 156

1.9.3.8 Mock Response ...... 159

1.9.3.9 DataSource ...... 164

1.9.3.10 DataSource Loop ...... 171

1.9.3.11 DataSink ...... 172 1.10 ...... 177

1.10.1 Getting Started ...... 183

1.10.2 Limit & Strategies ...... 188

1.10.3 Execution ...... 191

1.10.4 Assertions ...... 195

1.10.5 Diagrams ...... 200

1.10.6 JMeter comparison ...... 202 1.11 Mocking ...... 1

1.11.1 Getting Started ...... 1

1.11.2 Mock Services ...... 7

1.11.2.1 Coverage ...... 15

1.11.3 Mock Operations ...... 16

1.11.4 Mock Responses ...... 20 1.12 SOAP Monitoring ...... 25

1.12.1 Coverage ...... 28

©2005 EVIWARE.COM • ALL RIGHTS RESERVED TABLE OF CONTENTS iii

1.13 Usage Scenarios ...... 29

1.13.1 Data-Driven Testing ...... 30

1.13.2 Template-Driven Testing ...... 35

1.13.3 Interactive Testing ...... 40

1.13.4 Surveillance Testing ...... 46 1.14 Tool Integrations ...... 54

1.14.1 Code Generation ...... 56

1.14.2 Apache Tcp-Mon ...... 62 1.15 CommandLine Tools ...... 65

1.15.1 TestCaseRunner ...... 66

1.15.2 LoadTestRunner ...... 73

1.15.3 MockServiceRunner ...... 77

1.15.4 ToolRunner ...... 79 1.16 Keyboard shortcuts ...... 81 1.17 IDE/Tool Plugins ...... 85

1.17.1 Maven Plugins ...... 86

1.17.1.1 Maven 1.X Plugin ...... 87

1.17.1.2 Maven 2.X Plugin ...... 92

1.17.2 NetBeans Plugin ...... 94

1.17.2.1 Installation ...... 100

1.17.3 IntelliJ Plugin ...... 105

1.17.4 Plugin ...... 106

1.17.4.1 soapUI Nature ...... 109 1.18 Keyboard shortcuts ...... 113

©2005 EVIWARE.COM • ALL RIGHTS RESERVED TABLE OF CONTENTS iv

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 1

1.1 Overview ......

soapUI Overview

Prerequisites

                                          !"#$ %     &          '    (%  ")* %         !"#$ &  '     &  % '     &  ' +,$      % +*  +,$ "       -         !./           (   !."  0 

The soapUI Interface

       1         %  &      (     #2 ' ,     1                        1     3  34             

5          6

bottom-left bottom right • The Properties panel will show information on the item currently A color-coded log view showing log messages from soapUI selected in the navigator

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 2

&)      1          1     % 1   7                1 '

The Navigator 5  7          6   6    1  *7 & ' 6    7   1 

  & ' 6        7

)   & ' 6          

89   & ' 6    9         

5 "  & ' 6    5 "    7

5 /  & ' 6    5 /      

      5 /  

5 " & ' 6    5 / %                

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 3

      5 /  

$ 5  & ' 6           5 / 

,1" & ' 6    ,1"   7

,1)   & ' 6    ,1)     ,1"

,18   & ' 6    ,18       ,1)  

5             1         1         %1        2

Property-Mode 5 :           %       *      :    3* %,3     *      7    &  ;    1 ;  %'              7        &*7  5 "   5 /   ,1"  ,18  '      3*  3       7     # %1           8 %1  *           )     %                  (     *  2(     1  (       %(               +,$     +*  "              %(   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 4

Drag and Drop

   (           :        /,          & (     89    5 /    5 89   "       89  '            5 "   5 /     :         

Main Menu

,               (%    %   5            6   5   <         !1          !1             6   % "     *    % "           % *            & (    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 5

     '                        % /       7 1       % *   (      ! %    (       " # %        (     

/    1         5     $ %   % "     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 6

   # 1  & %   3" !3          ' $ %  %     :    $ %  (  ( %        1  (  ) %     1  (  "  %     1  (       #  %        *

  *  + % )       =  + !   % )     = "    ,    % )             &  ' *     &   * ' %  $  ,       $  &   * ' %  $  ,   *-! % )   6    ). * % "      

System Properties

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 7

5 "  *                                       >

Log Tabs

5        1                   4

8  1                                 %                (          (          &   ?@@@'  (          &  '

5          & '6 * ! %         ! %       9               1 &    $ 5  '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1 OVERVIEW 8

 , ! % 1%         !, ! %              7 &               A*  " '  ! %                (            %           *                     (              1               3   3       B7         0   B7       B7 (       3  % B7 (3       &    1       '

:(6   *

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.1 TABBED DESKTOP 1

1.1.1 Tabbed Desktop ......

soapUI Pro Tabbed Desktop

  *     1        #2 5          " 5           4  35 3   # 1 5   (

)                             2   %    %     %     1 1    1      &       ' %      %1  5 %=   1   1 1   5 %=  %   3  3  0       1                            (   ,1"   5 /      5    %1               1         

A (             5 /              $ 5      5 C  %            

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.1 TABBED DESKTOP 2

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.2 LICENSE MANAGEMENT 3

1.1.2 License Management ......

soapUI Pro License Management

  *  %        4          &      ( '          $ 6

"   3   5 3  3D  $ 3           (   

/                              3=  3%    *%                        

                          6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.2 LICENSE MANAGEMENT 4

5            3E " $  #  3                     3E    $ 3          

Command-Line, Plugins and Licenses

:    %    9       5   5#2  %      %            *  

:(6 *

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 5

1.1.3 Preferences ......

soapUI Preferences

5         3* 3             6

Tab Description

HTTP Settings Sets various HTTP-related options Proxy Settings Sets HTTP Proxy address and authentication SSL Settings Sets SSL-related options WSDL Settings Sets WSDL-related options UI Settings Sets UI-related options Editor Settings Sets editor-related options Tools Sets paths to integrated tools WSI Settings Sets WS-I Basic Profile validation options Global Properties Manages Global Properties soapUI Pro Settings Sets soapUI-Pro specific settings Coverage Settings Coverate related settings

Import Preferences

5   A              (               (   %      *       6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 6

5   6  %  (    &*'         /. /  /   %            "   %  (                        (           

HTTP Settings

Setting Description

User-Agent Header Sets the HTTP User-Agent Header. If none is specified the default HttpClient header is used Close connections after request Disables HTTP Keep-Alives by requesting to close the HTTP connection after each request. This will have a negative impact on performance but may give more "realistic" values during load testing 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 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 Preencoded Endpoints Do not URL-encode endpoints, set this if your endpoint URLs are already URL-encoded (containing for example %20 or %3A)

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 7

Setting Description

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. 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. 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)

Proxy Settings

Setting Description

Proxy Host The HTTP Proxy host to use

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 8

Setting Description

Proxy Port The HTTP Proxy port to use Proxy Username The username sent for proxy authentications Proxy Password The password sent for proxy authentications Excludes A comma-separated list of hosts to exclude, for example "127.0.0.1:8080,myserver.com" will not use a proxy for 127.0.0.1 on port 8080 and myserver.com on any port.

SSL Settings

Setting Description keyStore Path to the keyStore to use when locating client certificates keyStore password the keyStore password Enable Mock SSL Enables SSL support for MockServices Mock Port The port for SSL connections Mock KeyStore The keystore to use for SSL certificates Mock Password The keystore password Mock Key Password The default keys password Mock TrustStore The truststore to use (optional) Mock TrustStore Password The truststore password

/            9            5 ,1"        (   ,12    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 9

WSDL Settings

Setting Description

Cache WSDLs Turns on/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/validating wsdl/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. Excluded Types A list of XML-Schema types/global-elements in the form of name@namespace which will be used when generating sample requests/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!.

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 10

Setting Description

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/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/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.

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 11

Setting Description

Order TestSuites Sorts TestSuites in alphabetical order in the navigator. 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.

Editor Settings

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 12

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

*      5    5   

WSI Settings

5       !"% F         !"%   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 13

Setting Description

Verbose Sets verbose output of WS-I tools Results Type Sets which results to show in the generated report Message Entry Shows message entries in report Failure Message Includes defined failure messages in report Assertion Description Includes description of each test assertion in report Location Local path to installed wsi test tools Show Log Shows Log window when running WS-I tools Output Folder If specified, generated HTML reports will automatically be exported to this folder, which is required when running ws-i validation from the command-line or one of the Maven plug-ins

Global Properties

,                             5 32  )3     1              &  *     '

soapUI Pro Settings

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 14

5         *    

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 Table Inspector Columns Sets the maximum number of columns displayed by the Table Inspector (due to performance reasons). Form Editor Limit Defines the maximum size of messages to handle in the form editor; since the outline editor consumes a large amount of memory, setting a limit related to one’s own memory settings is encouraged Script Library Sets the location for the local Script Library .

Coverage Settings

5         *  !"#$ /    

Setting Description

Count Empty Values Sets empty elements/attributes to count as covered Count ? Values Sets elements/attributes containing ? to count as covered Auto Prepare Automatically prepares for Coverage calculation when opening a window containing Coverage content.

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.3 PREFERENCES 15

:(6 +*  "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.4 XPATH SELECTION 16

1.1.4 XPath Selection ......

soapUI Pro XPath Selection Dialog

  *   +*  !0 "           +*  (    9 6 5 +*     5 * %5    5 ,1)    5 / =   5           %    (     :           +*  (         "        )G            +*  (         

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.4 XPATH SELECTION 17

:(6 "  $ 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.5 WSDL COVERAGE 18

1.1.5 WSDL Coverage ......

WSDL Coverage

  *    9     !"#$ /          0       !"#$       A   5   ,1"  ,1 /  ")* ,      5             !"#$ /   1           /      5               H

Coverage for Web Services

5    & (  ' I                 %          (    &    %  ' 5                   %         

! "       !"#$                   1       A                                        

5 !"#$ /      0                   & (  ' 5 8                            5              0       4 3,  / 3

A              0   +*                                    5       ,  /        3  / 3

Coverage Visualization

     /            3/  * 3            6            /   /  )   (  /  8   /  55             7                 5          /  F 0        9     &3,  / 3'     ,  /    9       

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.5 WSDL COVERAGE 19

)             6 8  $ % "      8  6       5  / 4        +*         " 5 "  5 /   5 "                       5 "    

The Coverage Tree

5 /  5          C  6 ? 5   *        7     )   A        89    8             5    /        3   3     (           )    /   J<          89    8     /     5        8   A        5  8  &@?' C 5 5 "         7  5 "   5 /     5 "    5 "        ,  2(      5  8     3, 3         "   9              3,  /3             &    ' "  3,  / 3                 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.5 WSDL COVERAGE 20

# %1                

Assertion Coverage

         5     +*     0                !"#$           /        1%     /  5   ,          ,  /                     +*  (               8      

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.5 WSDL COVERAGE 21

Coverage Options

5 /  )                   6 /  2  F   %               /  K F   %         K      

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.1.5 WSDL COVERAGE 22

Coverage Measurement Points

          .     6 ? A A   5  %          !"#$            5   /  *        *7  5 "   5 /   C A ,1" %           !"#$   1        !"#$   0    ,1  . A ")* , %          !"#$      %   :(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.2 WORKSPACES 23

1.2 Workspaces ......

Workspaces

   !1     *7 &7  1   (    '6 #  1          ${user.home}/default-soapui-workspace.xml  " 1    :" !1          1         (       1         7       1      1               7         1              &  '  7                          %1         1      &      ' *7           1         !1 *7  

! (          7    1  (                  1         (       7     (         &      '                 

Open/Closed Projects

*7             %  4   7                   %1        %     /  7                     7          1        1      "     &  * '       7     1 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.2 WORKSPACES 24

Workspace Actions 5         1 %  %   &      3A3  '6 0 & $  6 *      !"#$ *7   6 *       (   % 7 5 7        1    7%   %                               6 *   8$   (    % 7 5 7        1    %  &    8 *7 '  )  % "   7 " ) (   % )     7 (  ) "  % *        7  % 8   !1                :   0 &%   % *        1   &%   % *    (  1      &    7      1    ' " # % #       (   

Workspace Details Tab 5 3#  3      %         1           0 6        1 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.2 WORKSPACES 25

$   6           1        1     :    & %'6    1   

:(6 *7

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3 PROJECTS 26

1.3 Projects ......

Projects

    7            !1        &  '    (      *7        :  6            ")*E55* D   *5      5 "    5 /        )       ,1"   ,1          )     7       (%    &   ' 5         1  /F"         %       !"#$         &       '           &    ' !    (    7           1    3  *73    !1   

              7                     %     !"#$")* &1    com.eviware.soapui.model 1 ' /                !"#$ ? ?   ")*E55*  & 9   D  * ? @' 5                  

Creating Projects

"  : !"#$ *7     !1  ,         6      7  9        !"#$      7 &   8$'            9        !"#$         7   &   7      7%  ('

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3 PROJECTS 27

)             7     &   -soapui-project.xml' *              +,$      1  "/,       +,$ 

Remote Projects   ? L M      7%   & '   %  &     ' !     8$   7      1           8 7           1   %       

5         6 *7              9         (             5  %         %  7      0    7               8 7       7              (        7       3"  3 *7 ,        7           %  7

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3 PROJECTS 28

Project Actions 5         7    %   6 ) & $  * % *   !"#$ 8$            ) & $   % *     !"#$                % )          % 5 8      % )          % $ 5 8  0    % *      5 "     7 0  %   % *      ,1"    7  % *       7 5             5     7      % *      7   1  5 7             1   1   9    % *      7   (           (   % *        7      1    % "       7          7    ) % "       7         7  " # % #       (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3 PROJECTS 29

Project Details Tab 5 3#  3      %         1           0 6      7 $   6         7       7     :    & %'6   7 7% (  $  6           7 &  /  # ' 5     3/  !"#$ 3    !"#$ *   

Project View

!   1 7     *7 F 5      7     1   7     

5 *7                               7  5    (                

5 5    6 " . 5       9 1     7    7       5 "  7   8  ,  (! . 1 ",2 *7 /                 7         5      1           5  N     8  ,  3 . 1 ",2 5 *7 89                9     8  , & 4   , (!  . 5 !"%"  /   5    1     !"%"         5   ")* ,  ,1" 8  ,

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3 PROJECTS 30

:(6 *7 )

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.1 PROJECT VIEW 31

1.3.1 Project View ......

Project View Tab: Main View

5 7              7      5  ,  ,1" , 5    9 1           7

!        7          

Description Inspector

5 #                     *7

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.1 PROJECT VIEW 32

Description Inspector

5 *      *7  *  5            *7

Load Script Inspector

5 $  "          = "          7 5     *7 *    *7 89   (     

Save Script Inspector

5 "  "           $  "           = "          7 5          *7 89   (     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.1 PROJECT VIEW 33

:(6 *7 / 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.2 COVERAGE 34

1.3.2 Coverage ......

Project Coverage

*7 /      /       5  /             7      /            /        8 / *          5 "      7         ( 

5       (  38  $ 3              5 "  5 / 

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.3 REQUIREMENTS 35

1.3.3 Requirements ......

Project Requirements

*7 89  &   * '       9    7   (                        (  9 

5 9         5 /     9   1         

Menu Bar

5 *7 89          6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.3 REQUIREMENTS 36

) 3  89   3 8 89   3   89   (  "     3 2(  89   (  "   

Import File Format

5        (   9             9  )     4 # :  " #    "    2(  6

"TST-049","User Name Length","User Name must exceed 6 chars and be case sensitive","In Scope" "EVI-020","Cu No SQL Injection Test","Test SQL Injection","Out of Scope" "EVI-021","Loadtest Purchase","We must make sure that Purchase withstand a buying storm","Out of Scope"

Requirements List

5     9       6 $ 5   #   89  =       #       5  ,      *7 ,        1      # #      9  0 :    89   $  " #     89  $                  

  "    89  5             89                   "   (  5      5 /     5 /   

Requirements Inspectors

5   89    6  (  5        89   5 /     -     1  5 /     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.3 REQUIREMENTS 37

% $1        89   *7      $  $      5 / 

:(6 !"%" 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.4 WS-SECURITY 38

1.3.4 WS-Security ......

WS-Security

5            !"%"             (   !"%"             1     H

     !"%" %       7                 76 A    9          89   A  9    ,1"   ,18     ,1" A  9           ")* ,        7           !"%" 6 G"  /  %  1               )   !"" %               9    ,18    !"" %                !"%"  1 4     1%9     9               !"%"      *7 F               

Usage

5       !"%"     6 ?    G  /    G    C /    )   !""   !""    .                 9   1    )         & (  ' 9             9         -             !""%1       38 3      9    ,18   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.4 WS-SECURITY 39

Keystores

5 G   /              1    %    !"%"     5         G ,        %   

   G   /                     1 -                     "            1

5          G   6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.4 WS-SECURITY 40

"  6       1   &8  )' "  6   %     1   &8  ) *  6  1    9  #   6      1         #  *  6       "  * 6  I""2 "  *       

Outgoing WSS

)   !""              4        2             3!"" 2 3       !""%      1       

5                      33              9                                           !"" 2   

!                                4

            2                    4               5           6

Incoming WSS

 !""           &    ,189     9     '            "  !"%"                 9                    1       1             

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.3.4 WS-SECURITY 41

   !""      33                 9                  1             )      9          &    9             '

!         !""        9  ,18                 3!""3         5                     6

A        !"%"  "           5 89           !"%"            

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4 INTERFACES 42

1.4 Interfaces ......

Interfaces

             7          ")*E55* D  *5  )       3  !"#$  3             9             5             

Interface Actions 5              %   6 "    5  6 )     F  +  46 6 1           5    (  % & 4 (  6 1  !"% D  *           6   5 ,        5 ,    +     6 =    5 "      &  ' +   %   6 =    ,1"     &  ' *  $  6     $  1 ",2 6 "   !"#$    !0  8  , E  $  6            &       '            (                 6            7 !       %9                       5 /  " # % #       (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4 INTERFACES 43

Updating the Interface Definition

5 3   #3                   0        D *5     6 :       )        )                  &    '   !        %9                5 /  5          6 !   8$        & (      ' !         & (               +,$ "    5         6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4 INTERFACES 44

5   6 $  * % 5 8$    &  !"#$'     (  0 3 %            !"#$           9        3 % !    9     7        5 89       5 /     "  % "              9   7  ! % G (      9        &                       ' (  8 % % "   9           9                 1 9      5 89   "       9   *   3 %  5 89       7              " 3  % )                89   5 89             %   &        %   '                    & (         '       

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4 INTERFACES 45

Caching Definitions

D         !"#$+"#    7         6 ( !   %          (        5         &% " %    1   9              )  %           9        5  7   1       7%    4      (      1                  1                   *      % 7     *7 #  5 

5                                !"#$  &      '      #    

Interface Details Tab 5 3#  3      %                     , & %'6 5     !"#$ *5     D (   $   6           $  * & %'6  8$       &       ' 8! & %'6 5     !"#$ D      {namespace}name   ") 5  6 5 ")* F       4 ")* ? ?  ")* ? C 5      9   &    '   E55* E  (  & %'6 "          

, & %'6 "    #   8*/ 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4 INTERFACES 46

WSDL Importing Details

!   !"#$     3  !"#$ 3 7        4 5  !"#$         !"#$ "   !"#$               1      )  !"#$                            7 &      ")* ? ?? C  '                ")* D                    A     D   *5  )     )      9      & '      9    2      D   *5                 3:   D 3 !"#$ " 5         !"#$ D   !"#$   6  !"#$ "   3 3     &  !"#$  '               D    3 3    !"#$ " & (           (   '             &  '         1     &   '             D                  1       !     +,$%"            (    !"#$         6  6 .  C@@B@J(   6 +)*     ,5),  6 .  C@@B??( 6 (     ,5),  6 .  C@@O@O( 6 (     ,5),  6 .  +,$?<

:(6   )

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.1 INTERFACE VIEW 47

1.4.1 Interface View ......

Interface View Tab: Main View

5                7      !"#$ " D   5    9 1            

*          )               !       &# $ '                     

:(6 " 2 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.2 SERVICE ENDPOINTS 48

1.4.2 Service Endpoints ......

Service Endpoints

"  3" 2  3      (                                    !"#$      8$                                   8$%      3* 2  3     E "            9   !      9                    

"            89   5 89                      9   

5 ) !             9           6 - all requests - 6          9             - all requests with no endpoint - 6          9                    6          9                                  5 89      3" 5 /  2 3    5 /  2     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.2 SERVICE ENDPOINTS 49

!        3)13                   9    %9    

:(6 !"#$ /

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.3 WSDL CONTENT 50

1.4.3 WSDL Content ......

WSDL Content

5                      !"#$       !"#$+"#           

5                                           2              1             4

Double-click on will focus on (if available)

Global Element its Complex Type Message Part its Complex Type or Global Element Operation input/output its Message Binding Operation input/output its corresponding Operation input/output Port its Binding Operation

5        &   ' D 1 %          A  %      (   &      1 '    # %    !"#$%           # 2(  !"#$ %    (                            5         * *  *4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.3 WSDL CONTENT 51

:(6 !"% /  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.4 WS-I COMPLICANCE 52

1.4.4 WS-I Complicance ......

WS-I Tools Integration

          !"%  0  D  *      C   6 ? 5 ! & $   %     ,   3/1 !" /  3   5     !"% 5  5      !"#$    C 5 ! ") 3 /    ! %    89   2       3/1 !" /  3   &    ,  F   '              7   /P   &         '   !"%    5  5 ? ?   !"%    )   0            3 % % 3             4

WS-I Reports

!                  !"%  0           !"%  0   1      4                        !"% /   8       1          

     1  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.4 WS-I COMPLICANCE 53

5         (       E5,$    3/ 3                  1  !"%    (  6

Displaying Tool Output

"  3" $ 3     !" " 5              %              4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.4 WS-I COMPLICANCE 54

:(6 !"#$ 8 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.5 WSDL REFACTORING 55

1.4.5 WSDL Refactoring ......

WSDL Refactoring

!   !"#$          9                 (              +*  (            (                  5 !"#$ 8        *             0                          (  (   -                                             

Getting Started

!        !"#$      38   3       *           6

"   # 8$     !"#$          9     1      9   " :(      0   !"#$                      & 9 '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.5 WSDL REFACTORING 56

)            &      '     4           &   '                    3/3                    3# 3     

* :(         6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.5 WSDL REFACTORING 57

5                 6 5                              9    1     7 5                                         E                              5         9   &  '   9         &   '                        9     32 ,  3       7     &*        2 ,   1(                    1      ' /                                    8                  ,  (                  9                 

8    %                                                 5          

8    ) "                     *    9    1         

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.4.5 WSDL REFACTORING 58

D     : "                (      5        

5 A 1(                      

!                   (    :(  

5        +*  (      7           5          7   +* %(   &          ' "  +*                      5 : +*  (            

  +*           &                 ('       %     : +*  (     *    : +*             +*     

" A            7          ( %(    

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.5 OPERATIONS 59

1.5 Operations ......

Operations

!                                    *5  5               %   6 )   %   %      ,1)          (    ,1" )   %    &   * ' %      ,18   "       (    5 /  0 3 %    89                       1            . %                                           " # % #       (   

Operation Details Tab 5 3#  3      %        )            $   6                        :   "))  & %'6  ")*          ")*E55*  "  & %'6 5           *5 

, & %'6 "    #   8*/     & %'6 5 (              &    ' "  & %'6 5 (               &    '  )   & %'6 "             ,  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.5 OPERATIONS 60

  )   & %'6 "             ,   "4&, & %'6 "     %     &  9   '

:(6 !1  89  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 61

1.6 Working with Requests ......

Working with Requests

     9               2  9                 89            9  %       1 9         &  '

Request Actions 5         9      %   6  3   %    89   2    )   (  %      9    5 /    5 /               5 "   5 /   9  )   %   %      9        ,1"           9          ,18   )   %    1 *  ,2 %      ,18   "  9     (    5 /            9            (,   3 1 *  ,2 %           9    (  5 89   &  ' ( 3 %      9     9             9  %      %       9        $  %      9        " # % #       (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 62

Request Details Tab 5 3#  3      %        89            =  *  0 6      9   $   6         9         9      :    ! ' 6 5           9     &   '  ! 6 5     9    6 5     9   8 ) 6 5   *        9   "    *  &        ' *  6 5       9   9      6 5      9   9    $ 6 5       9   9  :5$,  ' & 4  , 6 "     !"%"     1            9   5     *                 & 4   6        !"" 55$ 1      9      55$ &   '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 63

 %8  * 

.  "/ 6 2  ,5),%              9   &    '    " 6    ,5), 1   9         ,5),       )   6   E55*     9   &  ,,2+)*     '                        8         " )   6  ,5),                           $ .   6 5     1               ,           )   6 5                !"#$    ( %      MD   (D  * %*  * 

 &     6 "    9          (   9       , (  6 8           9   5         % 5 89                            

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 64

The Request Editor

5 9          %1 9            " 3             9                          2 $  

F                  5 +,$            8       *        6  )  2   9          A 2      9      ) F            5                4 E55* E  6   9     E55* E     6     9        ""$  &8   ' 6       ""$ #            *      &    '                           (    &               '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 65

Editor Toolbar

5 9  %       &    ' . %   9        )   (  %      9    5 /    9  %     )   %    &   * ' %      ,18   "  9     (    5 /     )   %   %      9       ,1"   9  %        3 %       9   (                        9      1      9   (   , %          %9      % ( 3 %      9     9  %     -           9      9          9   (  3 %      9   &    9      '  (. % %(           9         5  (         &     '6 [edit current...]              [add new endpoint...]         [delete current...]           . , %         9            "   %         9            " # % #       (   

Editor Layouts

5       C             35  $  3     &  '6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 66

Aut

)       89                  

5     !"%"      !"%"  5    *7 

HTTP Headers

5 E55* E                   E55*       9       A 9             E55*        9             

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 67

SSL Details

5 ""$ #                                  (              9     * *  *

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 68

XML Source Editor 5 9     (%   (%         &   *               3+,$34 3) 3  3A3        ,       9      ' 5         9      Q  %   6 5  %                  9 % %   (    ) & 4*  % %     !""%   ")*%E    9             89   #  5  ) & 4   %     !"%5   ")*%E    9     *//(,/( / //  %       +   %          0. %   %      %              %                    1         1   3 %  % 3  6 %2 6   9        %+ 6      %   6       "%5  6    9     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 69

Submitting requests

!  9             %2    9                   D  "       1          9            &                 '

#     9          %    (              )        9      3/ 3         %+                 9                        9   #        9               1                %%     

)                                    9            1  0               9           9                  9         

 E55* *(         http.proxyHost  http.proxyPort           *( *               1 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 70

Authentication

   9                               " 2        89   #  5  &    ' /            E /   D  #    :5$,   ""$   1 &;  H'    https      I""2  

    !""%*  5      !""%55$      89   #  5            !"%"                   4

Message Validation !   %F   9                           4 ? 5             C 5 ")*                !"#$  ")*  .      ,,2               5  F        %(       #  1                 &  '

        %      )1%     

F          %   &     ' ")*%     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 71

5       

      9  %   3/1 !"% /  3   "    &  !"%          '        9             !"% /             !"%   

Copy Requests

  *         1%    5 89      5        6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6 WORKING WITH REQUESTS 72

5   6  %        3 %  5 89        (  8 % %      1 5 89     (  9    " 3 %       5 89           !  1  (  9         6 (, 6 )     5 89  & ' *  6 ,         89        5 89      7  ! 6 )     5 89      (  5 89          89   &*          9                        '

:(6     A

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.1 FORM EDITOR 73

1.6.1 Form Editor ......

soapUI Pro Form Editor

5           %       +,$%"      9     5             * *  *   4

5        F    /      /         9      9   F     1                            6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.1 FORM EDITOR 74

D                                                           5      3F 5 3        6  %       & ' ,   %          #  %              5              9           ,    #  %                    A (        9     3#  3    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.1 FORM EDITOR 75

5        

Datatype Support

"   * ? L M  A 2          +,$%"        %              

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.1 FORM EDITOR 76

5                   9    3 3      %         3" F  3     (   6

Schema Support

5 A 2     +,$%"                     (  5         %1  +,$            "          +,$ "     1              &  '  

5         1 6 "    4   ()      ?  (        2   D       %( D    1    %  3D  3        (                           R      "   "9 /  (   % /       %(  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.1 FORM EDITOR 77

             ,        (                  2               ( (       (           , *       ?%CO@ , *          &    (  S@T'   5       %                    ")*%2     1 1  ? L M  U          9          9  % 1                

:(6 ) F

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.2 OVERVIEW VIEW 78

1.6.2 Overview View ......

Overview View

  *    3)3    0   1%9      %  

2     1 &   '        +,$)   5(                          8$   (   4 8$           1       (   

:(6 )  2

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.3 OUTLINE EDITOR 79

1.6.3 Outline Editor ......

soapUI Pro Outline Editor

5   * )  2       9         %        5                         =  %                  :                5        %           5                

                            %  

5       &   '6 /        &$5V"EA5V/' 2(        &$5V"EA5V2' /        &$5V/58$V/' 2(        &$5V/58$V2'

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.3 OUTLINE EDITOR 80

,    (   1     &$5V#)!:' ,    1       &$5V*' ,        &$5V$2A5' ,   (              &$5V8=E5' 5  5 %/  E %      5    1          ) %5    6 #)!: %      (       * %    $5V/ %         &      ' $5V2 % (        &      '      %           +*    * %5   2(     ,1 8    5  89   

:(6 ,   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.4 MESSAGE INSPECTORS 81

1.6.4 Message Inspectors ......

Message Inspectors

  *     (%                   +,$ "     )  2    (           

5         6 +"# %    +,$ "       5  %                  +,$ %    +,$    +*         # %              /  %    ,  /        2               

Coverage Inspector

!                  ,  /        9        

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.4 MESSAGE INSPECTORS 82

                         &K' 1  3#  F   3 1(               

XSD/XML Schema Inspector

5 +,$ "            +,$ "     A     & (    9 '     (          5                    5           89  /  ")* E   9     * *  *

:      9              !"#$   (                            

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.4 MESSAGE INSPECTORS 83

Table Layout Inspector

5 5                     4                A                     )          3   3   1                    5                

5                 0    4

XML - XML Fragment/XPath Inspector

5 +,$ A +*      +,$                  )  2                  +*  (                 /%/ 5      +,$          0    4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.4 MESSAGE INSPECTORS 84

Doc - XML Schema Documentation Inspector

5 #                 5           )  2          "  2        * *  * 9  4

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.5 ATTACHMENTS/INLINE FILES 85

1.6.5 Attachments/Inline Files ......

Working with Attachments / Inline Files

        1      6 ,5), %     0          ")* ,  ")*          * % ,,2%         ")*E55*        %  %                &     & '       ,5),                  (   #,2'

D ,5),     9                  89   #  5                  9      !"#$ # &    '   9  

The Attachments Tab

5 9                     9       A 9                          9   A                 5                   ,5),    A    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.5 ATTACHMENTS/INLINE FILES 86

5  %        6 0 & %' % 5       (  4 , % 5  %      ' & %' % 5 0       % 5           &  ' , & %' % 5      &      *   ' (  $ %      #  1   %       !"#$ # %1                     &        '           % 

Attaching files

        9            %     9           3 A3       %    !                      4 /                                *   &   ' :                          7 )                   *   6          ,,2     !"#$         *         %  I                9       ")*%%   8    36+++3      +++           %       8       9         & MB  ('     36+++3      +++           %             &                  '

"                        ,,2 &   ' +)* & ,5),  ' /):52:5 &     ' "!82A &  8  ' :G:)!: &      '

MIME Attachments

,,2            !"#$%     ")*      !             ,%*     A (     9           6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.5 ATTACHMENTS/INLINE FILES 87

5            *  %(6

swaRef Attachments

5 !"%   *    swaRef                             8              cid:somename      3  3            A (     9           6

...

           (  6

cid:claimForm

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.5 ATTACHMENTS/INLINE FILES 88

            *  %(6

MTOM Attachments

5 ,5),      0          ")*%  5     %      %           (     &   ? L M   9 4       ,5),   ,5),   ' A (     9           6

           (  6

cid:claimImage

            *  %(6

"     ,5),            89   #  5        %                    A  -         ,5),            9     3A ,5),3 9    

Anonymous Attachments

"                  !"#$      3  3      3W  X3       A              /#    9 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.5 ATTACHMENTS/INLINE FILES 89

Inline files

         3 3     9        4       MBD   (D           33       C   6 ? D      cid:somename          3  3          8,5), (    C D      file:filepath                            MB  (  A (     9           6

           (  6

file:c:\data\mydata.zip

5 6Y  Y  0              ( 

Attachment Caching

!                                 7  &  '    7   1          

Multipart Attachments

A   ,,2  8  ,5),                    5           ,,2 ,                   %          3  (3 %               89   #    &32  ,   3'       /#                      /#  3W   X W   X3   %         1                 1            

Response Attachments

5                           %  0  # %1           % 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.6.5 ATTACHMENTS/INLINE FILES 90

:(6 A   5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7 SCRIPTING 91

1.7 Scripting ......

soapUI Scripting

   (         =       &              = ! " ' "             6    5 /    = "  5 "                 D     5 /   5 "    0           !      ,1"   0   % ,1"   !     *7    0   % *7       #  "   #  "1     #  " #  "1    A    ,1)     A     ,18    A        "    5 (     &  2(   '                        %          log 7      = $  context 7   (%  * 2(        &  '  (%                  7 

Script Editors

"                  7           %   &    %1  '         4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7 SCRIPTING 92

5  % &  '      %        *   3= #  3      (                "   &        '               (  

def test = context.expand( '${#Project#test}' )

!   *7% 3 3  

                    * %,    4        3  3 &        %(  '                

Groovy Script Library

  *             = /                        0   1          (     4 "          * *   &   W1 X   '   *  1       3=3 (          5    1   & O  '     (     &'     "               1       1  soapui.demo     soapui/demo        5               %            7    8                7       (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7 SCRIPTING 93

Example

5  (          *           =              6

package soapui.demo

class Greet { def name def log

Greet(who, log) { name = who; this.log = log }

def salute() { log.info "Hello $name" }

def static salute( who, log ) { log.info "Hello again $who!" } }

    = "  "  5 /            6

def greet = new soapui.demo.Greet( "Ole", log ) greet.salute()

8      = 2   & '     = 2  6

Wed Jun 27 01:36:14 CEST 2007:INFO:Hello Ole

!            6

soapui.demo.Greet.salute( "Ole", log )

!        6

Wed Jun 27 01:36:14 CEST 2007:INFO:Hello again Ole!

      =                 (    1       1    &    '         6

Wed Jun 27 01:39:20 CEST 2007:INFO:C:\workspace\soapui-pro\scripts\Greet.groovy is new or has changed, reloading...

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7 SCRIPTING 94

             4

Wed Jun 27 01:40:16 CEST 2007:INFO:Hello Ole!

:(6 !1 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7.1 SCRIPT LIBRARY 95

1.7.1 Script Library ......

soapUI Scripting

   (         =       &              = ! " ' "             6    5 /    = "  5 "                 D     5 /   5 "    0           !      ,1"   0   % ,1"   !     *7    0   % *7       #  "   #  "1     #  " #  "1    A    ,1)     A     ,18    A        "    5 (     &  2(   '                        %          log 7      = $  context 7   (%  * 2(        &  '  (%                  7 

Script Editors

"                  7           %   &    %1  '         4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7.1 SCRIPT LIBRARY 96

5  % &  '      %        *   3= #  3      (                "   &        '               (  

def test = context.expand( '${#Project#test}' )

!   *7% 3 3  

                    * %,    4        3  3 &        %(  '                

Groovy Script Library

  *             = /                        0   1          (     4 "          * *   &   W1 X   '   *  1       3=3 (          5    1   & O  '     (     &'     "               1       1  soapui.demo     soapui/demo        5               %            7    8                7       (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7.1 SCRIPT LIBRARY 97

Example

5  (          *           =              6

package soapui.demo

class Greet { def name def log

Greet(who, log) { name = who; this.log = log }

def salute() { log.info "Hello $name" }

def static salute( who, log ) { log.info "Hello again $who!" } }

    = "  "  5 /            6

def greet = new soapui.demo.Greet( "Ole", log ) greet.salute()

8      = 2   & '     = 2  6

Wed Jun 27 01:36:14 CEST 2007:INFO:Hello Ole

!            6

soapui.demo.Greet.salute( "Ole", log )

!        6

Wed Jun 27 01:36:14 CEST 2007:INFO:Hello again Ole!

      =                 (    1       1    &    '         6

Wed Jun 27 01:39:20 CEST 2007:INFO:C:\workspace\soapui-pro\scripts\Greet.groovy is new or has changed, reloading...

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.7.1 SCRIPT LIBRARY 98

             4

Wed Jun 27 01:40:16 CEST 2007:INFO:Hello Ole!

:(6 !1 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8 PROPERTIES 99

1.8 Properties ......

Properties

          3   3         *7  3  3        &         '         = "   *  5    * %2(                    7  4 *7 6    *7%        (      # 5 "  6    5 "            3   3  5 "  5 /  6    5 /            3   3  5 /  *  5 " 6            5 /  $  5 "   6   5 "                   6 #  "   #  "1  8  5 /  ,1" 6    ,1"         ,18   6    ,18        =  *  6    =          (                  7 (     3  3             

Property Editors

*           6

5                 8/         (                       

!                      *  2(    *  5  

Global Properties

=         =  *             %              (    %   %#              

A (       %   3   (3  

test.a.property=hello!

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8 PROPERTIES 100

      ,  7            

set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx256m -Dsoapui.properties=properties.txt

   * %2(    5 89  2 

${test.a.property}

! (                 6

01:20:05,234 INFO [PropertyExpansionRequestFilter] Loaded 52 properties from [C:\workspace\core\project.properties]

5                          7      (               (   

Property Expansion

     (       &3( 3'          5  (   6

${[scope]propertyName[#xpath-expression]}

               6 #Project# %  *7   #TestSuite# %  5 "        5 "  #TestCase# %  5 /        5 /  #MockService# %  ,1"       ,1" #Global# %      &  ' [TestStep name]# %  5 "       5 /  ,            1              P,1"P    5 /          ,1"  

             6 ? /1    ( & (    5 8 /('          C /1        . /1            (        +*  (                       &     +,$'  (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8 PROPERTIES 101

 (     3( 3           6

${Search Request#Response#//ns1:Item[1]/n1:Author[1]/text()}

!       38  3     3"  89  3                    :       (                  (     

              3  3             5 /    5 " 5               7            & (  '  5 /          5 "   *7   4    5 /          * %5    =%                        5 /            5 /           &5 /  "   '    

*  5                   %(   )                   (   9             *  5           9     

Nested Properties

           %(   &   H'  (  6

test = "value" testexp = "${test}"

-> "${testexp}" evaluates to "value"

testexp = "value" exp = "${exp}"

-> "${test${exp}}" evaluates to "value"

testxml = "hello" testxpath = "//value[@id=${id}]/text()" id = "123"

-> "${#testxml#${testxpath}}" evaluates to "hello"

Property-Expansion Points

* %(            6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8 PROPERTIES 102

9     1      &  ,18 /(  8   "  '  " :     +* +N          /  :%/    89           9  1%   E55* E  * %5       +*  (   #  "         &   * ' ,18         &   * ' *  F    #  "1    )   !""%        ",$            (                                   (          1        H

Built-In Properties

5              %(     %   5             :     3* %,3

Request The configures request message Response The last response message (read-only) Endpoint The current endpoint for the request Username The current username for the request Password The current password for the request Domain The current domain for the request Properties

the properties' value GroovyScript Step result the value returned by the script from its last run (read-only) script the script itself Run TestCase Step

the properties' value DataSource Step (soapUI Pro only)

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8 PROPERTIES 103

the properties' value (read-only) DataSink Step (soapUI Pro only)

the properties' value MockResponse Step (soapUI Pro only)

Request The last request message (read-only) Response The configured response message

:(6 $ 5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8.1 PROPERTY EXPANSION 104

1.8.1 Property Expansion ......

Properties

          3   3         *7  3  3        &         '         = "   *  5    * %2(                    7  4 *7 6    *7%        (      # 5 "  6    5 "            3   3  5 "  5 /  6    5 /            3   3  5 /  *  5 " 6            5 /  $  5 "   6   5 "                   6 #  "   #  "1  8  5 /  ,1" 6    ,1"         ,18   6    ,18        =  *  6    =          (                  7 (     3  3             

Property Editors

*           6

5                 8/         (                       

!                      *  2(    *  5  

Global Properties

=         =  *             %              (    %   %#              

A (       %   3   (3  

test.a.property=hello!

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8.1 PROPERTY EXPANSION 105

      ,  7            

set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx256m -Dsoapui.properties=properties.txt

   * %2(    5 89  2 

${test.a.property}

! (                 6

01:20:05,234 INFO [PropertyExpansionRequestFilter] Loaded 52 properties from [C:\workspace\core\project.properties]

5                          7      (               (   

Property Expansion

     (       &3( 3'          5  (   6

${[scope]propertyName[#xpath-expression]}

               6 #Project# %  *7   #TestSuite# %  5 "        5 "  #TestCase# %  5 /        5 /  #MockService# %  ,1"       ,1" #Global# %      &  ' [TestStep name]# %  5 "       5 /  ,            1              P,1"P    5 /          ,1"  

             6 ? /1    ( & (    5 8 /('          C /1        . /1            (        +*  (                       &     +,$'  (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8.1 PROPERTY EXPANSION 106

 (     3( 3           6

${Search Request#Response#//ns1:Item[1]/n1:Author[1]/text()}

!       38  3     3"  89  3                    :       (                  (     

              3  3             5 /    5 " 5               7            & (  '  5 /          5 "   *7   4    5 /          * %5    =%                        5 /            5 /           &5 /  "   '    

*  5                   %(   )                   (   9             *  5           9     

Nested Properties

           %(   &   H'  (  6

test = "value" testexp = "${test}"

-> "${testexp}" evaluates to "value"

testexp = "value" exp = "${exp}"

-> "${test${exp}}" evaluates to "value"

testxml = "hello" testxpath = "//value[@id=${id}]/text()" id = "123"

-> "${#testxml#${testxpath}}" evaluates to "hello"

Property-Expansion Points

* %(            6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8.1 PROPERTY EXPANSION 107

9     1      &  ,18 /(  8   "  '  " :     +* +N          /  :%/    89           9  1%   E55* E  * %5       +*  (   #  "         &   * ' ,18         &   * ' *  F    #  "1    )   !""%        ",$            (                                   (          1        H

Built-In Properties

5              %(     %   5             :     3* %,3

Request The configures request message Response The last response message (read-only) Endpoint The current endpoint for the request Username The current username for the request Password The current password for the request Domain The current domain for the request Properties

the properties' value GroovyScript Step result the value returned by the script from its last run (read-only) script the script itself Run TestCase Step

the properties' value DataSource Step (soapUI Pro only)

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.8.1 PROPERTY EXPANSION 108

the properties' value (read-only) DataSink Step (soapUI Pro only)

the properties' value MockResponse Step (soapUI Pro only)

Request The last request message (read-only) Response The configured response message

:(6 $ 5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9 FUNCTIONAL TESTING 109

1.9 Functional Testing ......

Functional Testing

         ! "   5 /        5 "    (   9  5    (    5 "           5 /      0  5 "                 7

A                   6    6        ! "        /     6       ! "           *   6      9         9     #  #   6          1 9        (    & (          ' :(6 5 " 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.1 GETTING STARTED 110

1.9.1 Getting Started ......

Getting Started with Functional Testing

:         !"#$    9            5 /                  9                &;3    3'      9   9  &;3     3' A        &   = $   '                   (             (  %  

!            3= " 3     7      7      0 ! " 5 (      5 " 5 /     5 " 6

Create a TestCase from some request )     9   1         5 /         "         9     &3  9     % 3'     5 "  5 /     7                    1 3 0 5 " 3  3 0 5 / 3                9      3" ?3 /  5 " 5 /        9      5 %89            9   &     1              9  '   %9  %        9  %           9  4         8     5 "  5 /      = 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.1 GETTING STARTED 111

Add Assertions :           %9              1  "         9     &3      %9  3' "    3" /  3    1               !"#$"  5            9      &    ' *   9      %        9                 %9          1         8          = 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.1 GETTING STARTED 112

Now run your test! )       % 9                5 /  # %1    %                %    8        %      38   5 / 3        %9                    (  8         %           

:(6 = "   $ 5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.2 TESTSUITES 113

1.9.2 TestSuites ......

TestSuites

 5 "            5 /  !   5 "     5 /     (    9        

Generating TestSuites

"  3=  5 " 3               5 "       5         4

   %        (  5 "      

, %   C   6 ? ) 5 /     )   %   5 "    5 /        C "  5 /    89      )   %   7   H

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.2 TESTSUITES 114

3 (  %   C   6 ?   (  89      %   (  9   5 89   C /   2  89   %      9            5 89   "  % "             +    % /    $ 5       5 / 

TestSuite Actions 5         5 "     %   6 "      % )   5 "  8     $ ./.    % #  2   5 "  0  (  %       5 /    5 "  (    %       5 "     5 /  5 "    %           % 5 8   %       5 "   %      5 "    7    5 /       " # % #       (   

TestSuite Details Tab 5 3#  3      %         5 "           0 6        5 " 

TestSuite Runner #  /1 5 "          5 "  8          5 /      *  D         5 /   %1 5 /       5 /    5 /           * 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.2 TESTSUITES 115

D        5 /         5 "  (  5         &   '6  6 8   5 /  (  6 /      0  (  6 *      5 /    5 "    3  6 5    5 /        9     6 5    5 /          (   1 *  ,2 6 2(  E5,$ 8      5 "    &  ' 5    9                5 "               

        $      5 /           5 /  &   '6 #   6         5 "  *  6 5 /    " "  6          5 "     5 # "  6          5 "    5 5 "                  5 "   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.2 TESTSUITES 116

Generating Reports

  *           5 "   5        (  5 /           

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.2 TESTSUITES 117

"  3/  8 3             (         E5,$  6

                      (   6

TestSuite Coverage

5 5 "  /        /         *7 /  *  2  /      5 "               (           /      /  *  "  *7 /      

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.2 TESTSUITES 118

:(6 5 / 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 119

1.9.3 TestCases ......

TestCases

             5 /        5 "    (   9          $ 5        5 /      5 /       

2  5 "  5 /  (                5 "   (   = "        3  3    89   "   1           *  2(       (  

TestStep Types

/           4

Step Type Short Description

Request Sends a SOAP request and allows the response to be validated using a variety of assertions. 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 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 MockResponse Step Waits/Listens for an incoming SOAP Request that can be validated and return a mock response - soapUI pro only

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 120

TestCase Actions 5         5 /     %   6   (    %    5 /  2    $ ./.  (  %      5 /  "  %   5 /  )       )  46 %   5 "   5 /  0   %       $ 5    5 /  (  (  1  . 2 %       5 /       5 "  (   1 *  ,:  . 2 %        5 "       5 "  ( %      5 "   5 /   %       5 /   %      5 /    5 "    %    $        5 / 8    (  * %     5 /       5 /    (  $  %     5 /        5 /  " # % #       (   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 121

TestCase Details Tab 5 3#  3      %         5 /           0 6        5 / 

Clone TestCase

"   5 /    5 /          6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 122

      7        9       7 

Clone TestSteps (soapUI Pro only)

"   5 "   5 /          6

5          % & (     %   '              5 /     5 "            &              '

      7        9       7 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 123

The TestCase Editor

# %1 5 /           "  (          5 /      5 /       %         

5       B  &   '6                %   5 /               5 / 4 5 " %     5 "   5 /  5 /  /  % /  *    5 /  5 /  89  % 89    5 /          5 /  &   '6 #   6         5 /  *  6 5 /    " "  6  =        5 /     5 # "  6  =        5 /   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 124

5 5 /  $   (    6       6 !  5 /         (  5 "     1 )            5 " E   5 /  1

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 125

The main Toolbar

5          &   '   (  %    5 /  &  ' (   (  %     5 /   (  , %     5 /          !   5 /             /  5 /     (  (  %             9     5 /  5                    (   %             9     5 /  5                     5    8$      %9          5          9     5 /   (  "  %    5 /  )       (   1 *  ,2 6 2(  E5,$ 8      5 "    &  ' " # % #       (   

The TestStep List

5 5 "             5 "   5 /  # %1 5 "            8 %1 5 "   %     6 "   %      5 "  &   ' $ ./.   %      5 "  (     46 %         %         %         $  %        (   %        &  '   * %            &        /% '   $  %             &        /%#'

     %        5 "     " # %         )  46 %       5 "     5 /  # %1 5 "        5 "                  5 "     & (    89   8  F '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 126

TestCase Options

" 5 /  )    5 /             5 /  2               6 ! 1          %   &  *  2(   ' 1                6 /  E55* "         9     5 /  "     1        ).   6 /   5 /        5 "      & (      89  "     '   (    6 /   5 /         3A   3        5 /       5 " $  "7   6 $ %                    5 "              /1      1     %    5 "               %  6 5   &   '      9     5 /   (   6 5   &   '           5 / 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 127

Clone TestStep

"   5 "  5 "         6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 128

      7         9       7      

Generating Reports

  *           5 /   5         (  5 /           

"  3/  8 3             (         E5,$  6

                      (   6

TestCase Coverage

5 5 /  /        /         5 "   *7 /  *  2  /      5 /           

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 129

   (           /      /  *  "  *7 /      

TestCase Requirements

5 5 /  89        89  *     *7 F      89          5 / 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 130

  89          5 /     9  5 /  $     0 3$1 5 / 3         89  5   1  5 /   (  89  6

:(6 !1  5 89  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3 TESTCASES 131

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 132

1.9.3.1 Test Requests ......

TestRequests 5 %89   (    9             3  3              9   5 %89           9     3  5  3     5 /  2     3  " %X 5  89  3   &     '        )    9        

                                9  4

5 %89                    5 /     9   5 9            9      9                 4 ;     1 ;    & '      1         9              1        5 89    1 

TestRequest Actions 5          %9      %   6 "   %      5 "  &   ' $ ./.   %      5 "  ( 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 133

   46 %         %         %         $  %        (   %        &  '   * %            &        /% '   $  %             &        /%#' ( ! "  %             5 89   &  '  "  %   5 89        :   ( )   1 *  ,2 %       5 89     5 89   &  ' " # %        

TestRequest Details Tab 5 3#  3      %       5 89                9   &   89   #  5       '     %   6    6          5 89   "  6      )     5 89  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 134

Change Operation

"          5 89         6

5                  7     )       

The TestRequest Editor

# %1 5 89           5 /  2 *     9                89   2    ( 6 5   %  3  5  3       3  3          5 89   5      5 89       9       5 /    9              C   4  3  3     389   $ 3   &   '                 9   

The Assertions Tab

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 135

5                  5 89   # %1                  &   '                                 

   (                      4 ;         & ' ;  1 ;      5             %   6 ) )   %           (! &  ' %            ( &  ' %         %          %       

5         3/   3          5 89   &  '

Clone Assertions

  *    %  %              5 89   5      6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 136

5    %% 6 )   %       !   %   5 89      !  (  %     5 /  !    %     5 "  !  %     *7 "   %  (      &         (    (   " A  " /   '         (       5 " & '      "  %                 89   5 89            %   &        %   ' "        )G    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 137

The Request Log Tab 5 89   $                % 0   5 89   5                      0  

Request Result Viewer

! (  89   "   5 /  &   $ 5 '    9            9          389   8  F3    5 /        $ 5      %1      "8           

5   .   6 3   %  9           9   3  ! %     9        (        ,5),+)*       ! %        

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.1 TEST REQUESTS 138

:(6  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.2 PROPERTY TRANSFERS 139

1.9.3.2 Property Transfers ......

Property Transfers *  5    5 "         *  /        * 5   5 " &    5 /  5 "  *7  =  *  ' 5            3   3              +* +N  (   *  5      " ( +* +N        +* +N   

The PropertyTransfer Editor

5 *  5         %1 * 5             5 /    5 " % 

5                                      +* +N  (      

    %  /D(                       %(          +,$    +*  (                      *   +*  "           (          +*  (           

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.2 PROPERTY TRANSFERS 140

5            ) 6             $  6          (, 6               6            6                    A   1                  & (   5 89     '  ) 6                   A   1                  & (   5 89     ' $  6               +*   :         (     5 89                    (     9  5 89   9                                  " # % #       (     35   $ 3                   * 5                              5 / 5 "    5 5   $     3/ 3         

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.2 PROPERTY TRANSFERS 141

Transfer Execution

  (    5 /           *  5                          +*  (         & '               +*  (  

 +*  (                                 & (      (&'   R  '                

"      +*  (                           9                9            

                    +*  (                      3   3            5 /  (       5 /   3A   3          5 /  ) 

5             6      % A    %        & (        '     !   % )                               % !  +*  (         (              &9    1       ? O' !  ,/ !  % )           7             %      +*  (                                  *  9;, %       +*  (    +N  (             (         7  3  3  

Working with Property Transfers

 *  5         6 ? D       5 "    * 5         C /   * 5                   )   . "        5 "        %( B         +,$         +*  (     $        +*  (                      (    //ns1:SessionId        #              9   &             '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.2 PROPERTY TRANSFERS 142

O 5     & '        1   9                              &   '        M 8    .%O          F  5      *                 8   !0            

PropertyTransfer Example

5             7        6

" C 9      0 ! "   & 6   0 !"2/"!"2/"  '4

- your subscription id here- Books Oxford



- your subscription id here - ? Books

                   9   3  3     author 9        39  3  4

"  +* 6

declare namespace ns='http://webservices.amazon.com/AWSECommerceService/2006-02-15'; (//ns:Author)[1]

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.2 PROPERTY TRANSFERS 143

5   +* 6

declare namespace ns='http://webservices.amazon.com/AWSECommerceService/2006-02-15'; (//ns:Author)[1]

:(6 /  = "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.3 CONDITIONAL GOTOS 144

1.9.3.3 Conditional Gotos ......

Conditional Gotos

/  =           +*      9            5 /  (    5 "                5     5 /  (          9          5 /             5 /  (      = "  

"       6 D          9   8    3 3   &  '      8      1          & (     %  ' /    " ( +*        +*              D         &  (   '

The Conditional Goto Editor

5 / = 2       1 / =             5 /  2   %  % 

5               (              (       5 " /D(     5  (                           &               5 89  '

  *   +*  "         5  /        +*           

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.3 CONDITIONAL GOTOS 145

5            ) 6           (, 6            $  6         6          6                     &               5 89  ' $  6          (    :    (     5 89          &   ' " # % #       (   

Condition Examples

/       D      (     (   1                 0  6

declare namespace SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'; declare namespace ns1='http://webservices.amazon.com/AWSECommerceService/2005-10-05'; declare namespace SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'; count(//ns1:Item)>0

     1      6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.3 CONDITIONAL GOTOS 146

declare namespace SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'; count(//SOAP-ENV:Body)=1

    1       6

declare namespace SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'; count(//SOAP-ENV:Fault)=1

:(6 = "  "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.4 GROOVY SCRIPTS 147

1.9.3.4 Groovy Scripts ......

Groovy Scripts

5 = "          =      (   5 /  5           7           1   (  6 8      (              / 5 /             (    5   (    5 "  5 /  *             (   !       5 "   (    &    '       (                & (   7  '      Y(                            &       I  !"      '

The Groovy Script Editor

5 = "         (%        % %  (     4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.4 GROOVY SCRIPTS 148

5      &   '6 ) . 6      38 3   )    6    (% ) !    6          ( log 7 )   . 6                 (  5                 

Script Execution

!     (    (           6 testRunner 6  5 8       5 /              ! 5 / 8  context 6  5 8 /(      5 /              ! 5 8 /( log 6     B7 Logger 7           !                38 3      C 7     1              5 log 7                    5 /       3   3         

                   2(            &  (   '

Context Properties

5          %  6  %  (           $ 5  5           5 /        :         (           (      (    % &            ' !     $ 5            3@3 ( %       5 /          &   '     $ 5  !     $ 5            3@3    %    $ 5 8      $ 5      <# = )  %  E "       5 /            5 /  )   

Groovy Script Examples

=    =            (       6 ,   89   (6

// get request property def request = testRunner.testCase.getTestStepByName( "Request 1" );

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.4 GROOVY SCRIPTS 149

def property = request.getProperty( "request" );

// parse out textnodes to modify def node = new groovy.util.XmlParser(false,false).parseText(property.value); def textNodes = node["soapenv:Body"]["sam:getContactInfo"]["String_1"][0].children()

// modify textNodes.clear(); textNodes.add( "test" + System.currentTimeMillis() );

// write back to string def writer = new .io.StringWriter(); def printer = new groovy.util.XmlNodePrinter( new PrintWriter( writer )); printer.print( node );

// set property property.setValue( writer.toString() )

8        

// check if time is set startTime = context.getProperty( "startTime" ) if( startTime == null ) { startTime = System.currentTimeMillis() context.setProperty( "startTime", startTime ) } timePassed = System.currentTimeMillis() - startTime if( timePassed < 60000 ) { // countdown and set name context.currentStep.name = "Groovy Step - " + (60000-timePassed) + "ms left" log.info "timePassed = " + timePassed Thread.sleep( 1000 ) testRunner.gotoStep( 0 ) } else { // reset name and pass on context.currentStep.name = "Groovy Step" log.info "timePassed = " + timePassed + ", exiting.." }

8           *  "

// read the file def properties = new java.util.Properties(); properties.load( new java.io.FileInputStream( "testprops.txt" ));

def targetStep = testRunner.testCase.getTestStepByName( "Properties" );

// assign single property targetStep.setPropertyValue( "myproperty", properties.getProperty( "myproperty" ));

// assign all properties def names = properties.propertyNames(); while( names.hasMoreElements() ) { def name = names.nextElement();

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.4 GROOVY SCRIPTS 150

targetStep.setPropertyValue( name, properties.getProperty( name )); }

 5 "   

// add a properties step testRunner.testCase.addTestStep( "properties", "another step" );

A     

// fail randomly if( Math.random() > 0.5 ) throw new Exception( "A random error has occurred!" );

8   1     3,   E55* " 3     5 /  )  #      HttpState 7         5 /      1        5       1      E "         6

def state = context.getProperty( com.eviware.soapui.model.testsuite.TestRunContext.HTTP_STATE_PROPERTY ) assert state != null : "Missing HttpState.."

def cookies = state.cookies assert cookies.length > 0 : "Missing cookies.."

for( c in 0..cookies.length-1 ) log.info cookies[c].name + " = " + cookies[c].value

            1   1 9     6

def state = context.getProperty( com.eviware.soapui.model.testsuite.TestRunContext.HTTP_STATE_PROPERTY ) assert state != null : "Missing HttpState.."

state.addCookie( new org.apache.commons.httpclient.Cookie( "http://www.mydomain.com", "SessionID", "1234" ))

GroovyUtils

5 =          1     =    = "     &,18   "    '  6

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

=       &'  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.4 GROOVY SCRIPTS 151

projectPath 6          7            setPropertyValue( String testStepName, String propertyName, String value ) 6         expand( string ) % (    *  2(    getXmlHolder( String xmlPropertyOrString ) 6 /   XmlHolder 7 &  '          +,$    +*  (   5       5 "     TestStepName#PropertyName      +,$  5   +E 7     6 getNodeValue( String xpath ) 6                 +*  (   &       S( T (     ' getNodeValues( String xpath ) 6   "                 +*  (   getDomNode( String xpath ) 6    #), :           +*  (   getDomNodes( String xpath ) 6   #), :            +*  (   setNodeValue( String xpath, String value ) 6              +*  (         &       S( T ;    (     ' declareNamespace( String prefix, String namespaceURI ) 6                             S (T ;    &  (   ' getNamespaces() %   ,  (     86       +*  (   removeDomNodes( xpath ) %   #),      +*  (   xml 6        (  xmlObject 6        +,$D  +)7   (  prettyXml 6      %    (  updateProperty() 6   +E     5 "                ( &  (   ' updateProperty( boolean prettyPrint ) 6             ( #              +*  (                     declareNamespace        +,$ ,           *  2(  

" (      =  +E6

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) log.info( groovyUtils.projectPath )

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.4 GROOVY SCRIPTS 152

// create holder for last response and log requestId def holder = groovyUtils.getXmlHolder( "Book Author Search#Response" ) log.info( holder.getNodeValue( "//ns1:RequestId" ))

// create holder for request and set id holder = groovyUtils.getXmlHolder( "Book Author Search#Request" ) holder.setNodeValue( "//ns:SubscriptionId", ""+Math.random() )

// update request with updated xml holder.updateProperty()

  +E    ,      (                      6

... log.info( holder["//ns1:RequestId"] )

... holder["//ns:SubscriptionId"] = ""+Math.random()

...

   +*  (                "        6

for( author in holder["//ns1:Author"] ) log.info( author )

         % (           6

def holder = groovyUtils.getXmlHolder( "Book Author Search#Response" ) holder.namespaces["abc"] = "http://webservices.amazon.com/AWSECommerceService/2006-11-14" log.info( holder["//abc:RequestId"] )

:(6 *  "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.5 PROPERTIES STEP 153

1.9.3.5 Properties Step ......

Properties Step

5 *  "                    * 5    ="   5               %  (   (            (  &      '               

Properties Editor

5 *  " 2     6

5          &   '6 )  , 6          , 6           6       8$  %              5  8$                                                     8$      9           6                5                          *  " &                '   6         %                 5                                                       9         ! 6                5                           

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.5 PROPERTIES STEP 154

             

Details Tab 5 *  " #  5  & '     6 06 5     *   $   6         *   (   !   %                   .  %    (                    

Step Execution

! *  "  (    5 /       16 5                &   3"   $ 3  ' 5                 &   3"   $ 3  ' 5           5 8 /(          *  2(   :(6 #  5 "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.6 DELAY STEP 155

1.9.3.6 Delay Step ......

Delay Steps #  5  "           5 /     (    5 /         )               %1         $,              &   ?@@@ '

:(6 ,18   "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.7 RUN TESTCASE 156

1.9.3.7 Run TestCase ......

Run TestCase Step

5 8  5 /         5 /              5 /         5 /  5        1   ( 5 /                 5 / 

   38  5 / 3       5 "        6

"    5 "   5 /      ( 5 38  *  3      5 /           5 /                  1   8  5 /    ( 

The Run TestCase Editor

)    8  5 /         &  '                    5 /               5 /  )   %     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.7 RUN TESTCASE 157

 5 /  $             

Execution

!    5 "      6 ? 5           1  %           5 /  C 5    5 /     . 5    1         1      5 /    8  5 /   B      5 /       8  5 /   5       ?  .                5 /             5        #  "   (    5 /           

     5 /                  5 /        5 / 6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.7 RUN TESTCASE 158

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.8 MOCK RESPONSE 159

1.9.3.8 Mock Response ......

soapUI Pro MockResponse Step

  *   ,18           ")* 89              5  9         7       5 89   "       

      5 "   (  6 /   %     9              Q    5      %  (      1  7     89  "          

Creating MockResponse Steps

,18          3  3     5 / 5 "      4

5         6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.8 MOCK RESPONSE 160

:  % 5        )   % "       1   % "      1                    /  8   %    ,18             * %       *  %                 )G           

)      ,18   " 6 A  )   :   %1     ,18       )  

A 89   :   %1     ,18       89           ,18    &   '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.8 MOCK RESPONSE 161

A ,18   :   %1      5 /    (  ,18    &   '

The MockResponse Step Editor

5 ,18   "            ,18                  5 89        (%   0    )  2      *  5  

                        (  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.8 MOCK RESPONSE 162

      ,18    5         (    ,18            7    5 89                (   ")*%A %          9    

MockResponse Step Execution

!  (   5 /    ,18   "            ,1"     9                 ) 9                    7  1    ,18       ,18      ,1"       (      (    5 / 

*  5        ,18   " 7   5 89                9          

    $ 5    ,18     1          $ 5       6  ,1"            ,18    (    9        ,1"                B@B     1

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.8 MOCK RESPONSE 163

            9             9     K /        ,1"            ,18          "  9         3  3

MockResponse Response Scripts

5 (           ,18   8   "    ,18 /(  5 8 /(       (          5 / 

:(6 #  "  "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 164

1.9.3.9 DataSource ......

soapUI Pro DataSource Steps

  *    0 #  "  5 "         1         #  "           5 /    #  "         (          (%     # #  "              +,$ #  "       (      

5  #  "     6 I#D/ #  "  %      I#D/     2( #  "  % (      2( &( '  = #  "  %            +,$ #  "  % (      +,$   A #  "  % (           # #  "  %       = #  "  %     1  #  "      #  " $   9                             

The DataSource Editor

5 #  "      B  4                #  "     (             #  "          #  "  %         5  $                             5 / 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 165

5    *             3(  3   #  "         8     2  #  "                    

5 #  "      #  "      35 3                       #  "  8          5  $    5 3* 3  3" 3        3#  "  2( 3  

DataSource Options

5 #  "  )      6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 166

5      6  %    #  "           $ 5  &  '  %          5 /     , %    #  "           5           %     (    "N$ 9   I#D/       !E282       %(               

  %         #  "    &   ; @'   %         #  "   

DataSource Execution

#         3* 3        #  "    0  (         5 /  &   ;  '        #  "  &   ;   ' #    1  #  "               1             (      +,$ #  "            9                        9     ( 

/           (       5 /  (    #  "     #  " $ " 1   (    

5 3" 3          #  "            $ 5                               

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 167

JDBC DataSource

5 I#D/ #  "        6

5 B          % 6 $ %  I#D/ #        #  "  ,                   (   7(                 9  7   (  ! %  %    ; ;, %  9                           *  $                  

   %    "N$       

Excel DataSource

5 2( #  "        6

5 .          % 6  %  (         &%   1           

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 168

  ( %   %       (   

Grid DataSource

5 = #  "        6

5                        2                (   2( 5                     5             6 $   %           %               ( ( %        

XML DataSource

5 +,$ #  "        6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 169

5      6 "  " %  5 "    +,$       &    #  " ' "  *  %  *     +,$   8 +*  %  +*  (        38 3     /  +*  %  +*  (      #  "        8 +*  #  (   8 +*                             &      '

File DataSource

5 A #  "        6

A  (          & (    %   '                        5      6 A %      "   %             5 F   %         

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.9 DATASOURCE 170

Directory DataSource

5 # #  "        6

5  #  "   C   6 # 6  #      A  A 6    A:              #  "  "  # #  "                    1 5        9       #  " "     +,$ #  "   (        

Groovy DataSource

5 = #  "        6

5    1  #  "       #  "  " 5                3 3 7 & " 5" , '    (    6 3 3 %        3(3 %    5 8 /(   (%     3 8 3 %    5 8  7 :(6 #  " $ "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.10 DATASOURCE LOOP 171

1.9.3.10 DataSource Loop ......

soapUI Pro DataSourceLoop Step

5 #  " $ "       #  "  "    9         (                   #  "          %1   3/ 3              6

5     C   6 #  "  " %   #  "  "  1     5   " %   "            A (    #  "            (       9         #  "  $       9     #  "  "   89         &    1   9          '

:(6 *  2(  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.11 DATASINK 172

1.9.3.11 DataSink ......

soapUI Pro DataSink Step

  *    0 #  "1 5 "         1             (    5  #  "1    6 I#D/ #  "1 %     I#D/     2( #  "1 %      2( &( '  A #  "1 %           = #  "1 %   = "        

The DataSink Editor

5 #  "1     B  4                             #  "1         #  "1 %         #  $               #  "1

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.11 DATASINK 173

5    *                   #  1      8     5 #  "1     #  "1  

DataSink Options

5 #  "1 )      6

5      6  %    #  "1          $ 5  &  '

DataSink Execution

2   5 /  (     #  "1 "        #  "1          F                  %          * 2(    (           :      *             * 2(               (       4    * 2(      

5 3" 3          #  "1           $ 5             & 0'    #  "1          

JDBC DataSink

5 I#D/ #  "1       6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.11 DATASINK 174

5 B          % 6 $ %  I#D/ #        #  "1 ,                   (   7(                 9  7   (  ! %  %    ; *  %               *  "   ( & K       '

   %    "N$       

Excel DataSink

5 2( #  "1       6

5 B          % 6  %    (          

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.11 DATASINK 175

"  %     (                 &%   1          

  ( %   %         

File DataSink

5 A #  "1       6

A                5      6 A %      "   %             5 F   %           F   %         (             5 /   

Groovy DataSink

5 = #  "1       6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.9.3.11 DATASINK 176

5    1  #  "1      #  "1 "    (    6 3(3 %    5 8 /(   (%     3   3 % ,           3 8 3 %    5 8  7 3 3 %     :(6 $  5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10 LOAD TESTING 177

1.10 Load Testing ......

Load Testing

   (   %           6 A   $ 5  6              5 /   D   $ 5  6  0                  *  $ 5  6   (                 (  89  %# $ 5  6    9           %       $ 5        5 /  &   5 /  3: $ 5 3  % '                 5 /    5 "        

5      %             6 5     1                   $ 5  2 /   6        2(  6    (   $ 5    6      $ 5        #   6            $ 5  I, /   6         I, 

Requirements-Driven Load Testing

)      7    %            39 %3     %  A     %  &   ( '     3  3                     &     '               3   3           0                 3   3                   %%                 

D               $ 5               $ 5          3 9 3  (           9                   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10 LOAD TESTING 178

 )        (%    5*" 

5           3     3     $ 5                    & (    ")      *'     9           "   " 

The LoadTest Editor

5 $ 5  2        $ 5         6

5        & %' 5 $ 5            5  $    $ 5  5 $  "           $  "   5 "   5   %%         $ 5   5  *       6 3$ 5  $ 3%    %     $ 5   3$ 5    3%       $ 5      

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10 LOAD TESTING 179

The LoadTest Toolbar

5          &   '6  6 "   $ 5     $ 5  2(  (  6 /     $ 5 

   + 6 "  "   =    $ 5 

   # , + 6 "  "   E  =    $ 5       6 8          $ 5      6 *   (     $ 5  "     %     "  6 "  $ 5  )      ! 6 "     $ 5      2(    5       *  D        & '     $ 5  (  5 $ "          2(   

LoadTest Options

5 $ 5  )         6    $, 6 "           &   '   @                 4  ! 6                    " & (  '                       3 3        %                        (    /8 .        6 D   5*" &5    '       & &?@@@  'U   '  /     5*"D*" !  5 /      "  $ "                        9     &     ' "         5*"  &% '      3        6 !                     E55* 9               89      "         3  3 9      &  ( 9          '            6 !        E55*                89                   E55*       &                  ' (  (     3 6 "         G % /                       ! "     6 "   %    $ 5  "     &   '  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10 LOAD TESTING 180

 CO@ $ . # , 6 #            &         % %    '  )    ! 6 #     , 2(        $ 5        #       ( 3S  T3         $ 5  $                 (  ! 6 /              5          $ 5                  &   1    '            I, /    

5 3"   $ 3          (  $ 5           (   $ 5  5   6 $ A %         %           5 "      5 /  $   %   &   '             

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10 LOAD TESTING 181

$  5 /     %                    

The Statistics Table

5                5 "    5 /     5 /   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10 LOAD TESTING 182

5 "              $ 5  2(   

# %1 5 "          5 "   

8 %1  5 "   %  5 "       $ 5       5 "    $ 5   

The LoadTest Log

5 $ 5  $    (            $ 5    # %1           &   '  (          9          

5         &%% '6   6      $ 5  $  6    (     $ 5      ,   6                      6             5       1   %                              

:(6 $ 5  /  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.1 GETTING STARTED 183

1.10.1 Getting Started ......

Getting Started with Load Testing

  ? O       $ 5       6 F   ! "     $    ,   A            3 13    8     %              E       A   5 /       3= " 3   "     $ 5      5 /    3: $ 5 3     5   $ 5  2     1   &           5 / '6

5 $ 5         M@  &  '  O     "  $ "   ,        &     $ 5  /   '       -                   M@     

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.1 GETTING STARTED 184

  $ 5   &     $ 5  2(  '6

Add Assertions

      $ 5     $ 5  7   A   5 " !   $ 5        5 " "         5 " , (           5 /   (   (  

"  3$ 5    3        $ 5  2       3  3   "  3" , ( 3              6 5 " , (   1     (%   (     0 %              3 %                (      !      ?@ 5 /       %   (         O@@    %   (            $ 5     O 3  3   O@@    $ 5        %        !   9      5 / 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.1 GETTING STARTED 185

Run again!

:    $ 5        1     5 /  O  (    O@@     $ 5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.1 GETTING STARTED 186

-    %1              9            9        # %1         6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.1 GETTING STARTED 187

Now What?

5        $ 5  "    #    

:(6 = "   ,1

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.2 LIMIT & STRATEGIES 188

1.10.2 Limit & Strategies ......

LoadTest Configuration

5   (   $ 5         6 5 $ 5  $    $ 5      5 $ 5  "     5 /        &      '

LoadTest Limit

5 $ 5  $          $ 5  2        6  6      5 /       $ 5       , 6      $ 5 4       $ 5              5 /            *      35  8  3 $ 5             4   (     $  ?@@@    O           (  C@@ 9   &   (   '

"  $  @   $ 5      $ 5      %              $ 5   

LoadTest Strategies

 $ 5                   5 /   (         %          5 /            5             "                 "             %   (   $ 5   

5  $ 5  "        6 "  6 5 /  (        F   6 5 /  (            D   6 5 /  (   3   3 5  6 5 /  (   (  %    "    $ 5                (      $ 5     3 3     "       $ 5    D  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.2 LIMIT & STRATEGIES 189

                $ 5             % "  5 "  "       6

 $, 6       5 /     6           0           A (         ?@@@@ O        5 /  (   O@@  ?@@@  "     @               

          5*"             3/    5*"     3       $ 5  )    F   5           6

  6               5  6       %                                5              %       V & U  '      % & U  '     1      % 

A (      %   C@     BJ@      @ O         C@  .@       C       ?@     ( B        1      C@     C   D   5 D          6

8 $, 6           8 $  6                     3  3     (            33 

A (              M@@   %   .@       O@         ?@    .@    O@       ?@      ?@   5  5 5  "       6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.2 LIMIT & STRATEGIES 190

  6              6                                        $ 5  5    (          %       5*"  

A (              M@@       ?      .@           ?  .@  ?@  

:(6 $ 5  2( 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.3 EXECUTION 191

1.10.3 Execution ......

LoadTest Execution

!   $ 5               5 /          5 /             #                      $ 5           6                   3/ 3     $ 5          $ 5       (              #  (                 "   5 6 min %         1 max %          1 avg %          last %          cnt %            (  tps %                 /     5*"D*"  bytes %             bps %            err %            /            &        5 /  (  '                  

5           5 /   

Step Time calculation

      System.nanoTime()         1   %  5                    5 "   6

Step Type Duration

Request Step The request duration is calculated depending on the settings in the LoadTest Options dialog (as described there).

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.3 EXECUTION 192

Step Type Duration

Groovy Script The actual script evaluation Properties Step The time to load/save the properties (if configured) Delay Step The steps delay Property Transfer The time it took to transfer all properties Goto Step The time it took to evaluate the goto-conditions

LoadTest Assertions

!   $ 5                   6

       %1          5 "         A (         89        6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.3 EXECUTION 193

Calculation of TPS/BPS

#       3/    5*" 3     $ 5  )     5*"  D*"       6 :)5        & '6 5*" 6 &?@@@  'U    (    ; ?@@        5*"  ?@@ D*" 6 & ' U 5*"           9   U 5*" A (           ?@@@@@@  ?@@ 9    5*"  ?@@    &?@@@@@?@@ U ?@@' ; ?@@@@@@ D*" D      6 5*" 6 5   5 /   /:5  ?@@@   5 /        ?@      ?@@ 9     5*"  ?@ D*" 6 D  5   ?@@@   5 /        ?@     ?@@@@@    D*"  ?@@@@ *    %            5 /         5     5*"D*"    9      5 "    1       5 /     5                  5 /      "  $ "                        9     &     ' "         5*"  &% '   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.3 EXECUTION 194

:(6 $ 5   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.4 ASSERTIONS 195

1.10.4 Assertions ......

LoadTest Assertions

             $ 5     $ 5     $ 5  "   * ,    3$ 5    3        $ 5  6

5               &%% '6 ) )   %         $ 5     )   %          )   "  %           D                    6 0 6        

 6         $  6                         

          6

Type Short Description

Step Maximum Asserts a steps max time Step Status Asserts a steps status Step TPS Asserts a steps TPS Max Errors Asserts the total number of errors Step Average Asserts a steps average

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.4 ASSERTIONS 196

Step Maximum Assertion 5 " , (   1     (%   (          6 0 %        3 %                (                  $ 5    %   (         (         $ 5     %   (            $ 5    %        " 3%  %3       3% 5  %3        1    5 /   

Step Status Assertion 5 " "    1            (   89     =         6 0 %      

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.4 ASSERTIONS 197

 3 %                (                  $ 5    %   (            $ 5    %        " 3%  %3    

Step TPS Assertion 5 " 5*"   1    5*"              6 0 %        3 %                (                  $ 5    %    9  5*"     5*"           $ 5     %   (            $ 5    %        " 3%  %3       3% 5  %3      5*"    5 /   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.4 ASSERTIONS 198

Max Errors Assertion 5 , ( 2   1            5 "   (          6 0 %        ).    %      (          5 "     %     (          5 "   (   @ C        C@Z        5 "        %        " 3%  %3       3% 5  %3             5 /   

Step Average Assertion 5 "     1                   6 0 %        3 %                (                  $ 5   )! %   (                      $ 5     %   (            $ 5     %        %        " 3%  %3       3% 5  %3           5 /   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.4 ASSERTIONS 199

:(6 $ 5  #  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.5 DIAGRAMS 200

1.10.5 Diagrams ......

Diagrams

   C            $ 5  "     &   (       ' 5  6               5 "     # ,      "     5 " D      38  3               5       3#  3       6 $  %                 $ 5  "              3"    3    $ 5  )    5                  5 /    &        "       $ 5      %  5 /                  9                999 %                 +++        "          D                                         $ 5       5       1         $ 5 

The Statistics Diagram

5                5 "   5 /  5  5        %(                   (           %    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.5 DIAGRAMS 201

The Statistics History Diagram

5                5 "   5 /  5        %(                     (             %    

:(6 I, /  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.6 JMETER COMPARISON 202

1.10.6 JMeter comparison ......

JMeter Comparison

5                   I,                              C    11                               6%'

                            I,       %     & E55* I#D/ I,"  '        %      ,                 I,    I,   3 3             3 3   &      '    )               I,        & (          '

         $ %     (                 4 1    %     7   D    I,   33                (             &  5 /      '

Comparison Setup

5          9                 ID B @ ."*?         ! "   7  B @ .      9       O@@@   B    4 ?   O    ?@    CO                5 /  )         9                     9  

5   I,    9     5 =     %               4 ?O@@@ O?@@@ ?@O@@  COC@@ 5 3!"&")*' 89  3           3   8 3          

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.6 JMETER COMPARISON 203

,      !+* "*C  *  , ? J  ?=  8, I82 ? O @[@M      ID  I,   

Results

5                 5*"    &U'          

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

5      6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.6 JMETER COMPARISON 204

                     5*"      I, (             5               E /   IF,          (  

5                %        % 5  (                          %        

)             9     3  3                   (        !       ")     1                       

$1    I,       I,  E55* ? @             ! " 9       System.currentTimeMillis()            System.nanoTime()        I  ? O     

Further Analysis

"                    $ 5       35  3             ?  CO    CO@           5        6

A       &1      % 0'6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.6 JMETER COMPARISON 205

5      4 5*"                    9    3 1 3      

      &1      % 0'6

5         4      5*"           M                  9              5*"     1     3 1 3       7        

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.10.6 JMETER COMPARISON 206

Conclusion

5               3 3            )                        1          &       '

D                6 A              ! " 4        7     3  3    A        ! " 6     7     & (   I,'       H

Files

                       % 0 6

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)

-     ID B @ ."*?             B @ B8/C      ID !"  1              &               7   '

:(6 ! " ,1

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11 MOCKING 1

1.11 Mocking ......

Web Service Mocking   ? L         ,1    &  3,1" 3'   ! "   !"#$      ,1"   (            &3 ,1)   3'   !"#$         9  (         & ' &3 ,18   3'                             ,1"                % ,1"8    1    &         ' 

,1  ! "         %   6 /      6   ,1"   (                                  5  #    !"#$   &   ' 6 "    !"#$         &           '    ,1"             5 "                ! "     6 N 1     !"#$            (        *     ,18   5 "           5 /          ")* 9                ! "  

:(6 ,1 "

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11 MOCKING 2

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.1 GETTING STARTED 1

1.11.1 Getting Started ......

Getting Started with Mocking

  ? L         1                        =          %  5             6 8  *   ! " 4       1     !"#$           = /    4   1                    &           %  ' /            33  8        0    +*  (     9   5 %# # 4 /    5 "  5 /    ,1"                  (       1      (      1      =     1      "      7        / /   6  ( / / (K!"#$

Create a MockService

                 9   8 %1       3=  ,1"3   6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.1 GETTING STARTED 2

5                     &            '4

I                 !  ,1"         %                 5 ,1"   ,1)                          ,18           #  1   ,1"  38   ?3               0             6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.1 GETTING STARTED 3

5 ,1"  & '                9          9            ,1"

5 ,18               89    &         4%'   3 3        %             1       5 3 89  3        9        &         '       % 

Invoke the MockService from within soapUI

                          $    7  1  1       6 ? /1        ,1"                        &           ' C   ,18      %                  (  9             7 !    9                          ,1"

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.1 GETTING STARTED 4

. "     9  H              ,18     9       6

"  1   ,18       3 89  3           9          ,1"        ,1)  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.1 GETTING STARTED 5

/     H E               ,1"    A       ,18        9                   &       ,1"'

Customize the MockResponse

$     1    1         =   "   38   " 3     ,18        6

=  1   ,1 8              

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.1 GETTING STARTED 6

:   9     ,18                                 4

)G             1        6         ,1)   &   %   ' /          ,1)   )             &            '              =  %                 ,1"              &            '  :(6     = 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 7

1.11.2 Mock Services ......

Mock Services

,1"              7  5            4 ? A  *7     3: ,1"3  /     ,1"      C A  (  9      3/  ,18  3           ,1"     9            ,18   . A        3=  ,1"3  5     6

              ,1"  ,1)                2  ,1)            ,18            !"#$"               9  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 8

)         ,1)        ,1"    9                          1 I  1         9 

MockService Actions 8 %1 ,1"              6   %     %    ,1" 2  

 ' %   0  ,1"      ,1"

 %   ,1" 0  %"  %       ,1)     ,1" (  %   %    ,1" )      %      ,1"            7 5                 ,1" 2  %       ,1"  %      ,1" " # %        (   

MockService Details Tab 5        ,1"        6 0 6      ,1" $   6         ,1"       ,1"     :    %    ,1"    &  '  %    ,1"    &  '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 9

3 ") 5  %    9        ")* F     ,1)    ,1" 3 ") )  %    9   ")*      ")*    ,1)    ,1"  ! & %   !""          9   5                        $ " !! & %    )   !""        ,18   /       ,18    5 5  *              ,1"

The MockService Editor # %1 ,1"         ,1"       A          6  5       6  % "   ,1"           9   &  '

 % "   ,1" "    % )   E5,$   1       !"#$    &  ' "  % )   ,1" )    &  ' # % )      

5    ,1)         ,1" 8 %1   ,1)         %1    ,1)   

      9           6 . % 2   ,1" 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 10

( % /       "  % *     (           G        1       &     0     '

# %1              (      9    6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 11

MockService Inspectors

D     ,1)     B      &   '6 #   6             ,1" *  6          ,1" "  "  6  = "             ,1"     0    " "  6  = "          ,1"           

MockService Options

5 ,1" )         6 *  %         * %       E  %  (  *       &   !"#$ *   ' E  ) %      *      *

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 12

MockService execution

!    ,1"   8              &        ,1"'     ,1" )    5        %  6

")* 89                  3 3 ! "   9           ,1"  ,1)            89   #  !  ,1"            ,1)    ,18     5                     ,1"     9       ,1"            

       9     ")* A       (        9                       ,1" ,1)  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 13

WSDL Publishing

!   ,1"    !"#$     &!"#$  +"# '                                       ,1"

5     ,12          ,1" 6

" ,1"       1  6

"               6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2 MOCK SERVICES 14

           6

5  !"#$  &           '          

:(6 ,1 )  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.2.1 COVERAGE 15

1.11.2.1 Coverage ......

MockService Coverage

!   /   ,1"             0 1 9             /  *  5    C   6 / /  6      !"#$            ,1 /  6          ,1    1 !     ,1"  /  *      %     /  5     ,1"   ,1)   4    ,1)      (      

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.3 MOCK OPERATIONS 16

1.11.3 Mock Operations ......

Mock Operations

 ,1)                7        9           ")*      ,1)           ,18                     #   9     ,18               

MockOperation Actions 8 %1 ,1)          ,1"         6 "  %"    %    ,1)   2   " 3 %       (  9         1        ,1"   5       9 1   ,1"       ,1"     0  %   %      ,18     ,1)   ( ! "  %          )   1   ,1)   &  '  %       ,1)    %      ,1)   " # %        (   

MockOperation Details Tab

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.3 MOCK OPERATIONS 17

5        ,1)          6 0 6      ,1)   $   6         ,1)          ,1)       :   & $ "  %     )       1 $  , %    9     ,1)     

Change Operation

5         )   1   ,1)        6

5       6 0 %         ,1)      %            1 "  %       1       %    ,18       ,1)          (  "  %            

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.3 MOCK OPERATIONS 18

7  ! %   1 (              &  1               

The MockOperation Editor

# %1 ,1)           ,1)      A          6

 5       6 )  %   % *     ,18     ,1)   " 3 %       (  9         1       % 5           1 "  % 5      1 # % )      

5    ,18         ,1)   8 %1   ,18          %1    ,18   

 #  5                   &  '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.3 MOCK OPERATIONS 19

Request Dispatching

 9    ,1)           B        (6 3  %           9                 %      (  ,18   9 %       +*  (               ,18         %  =             D  +*   "                             +*     (   !  +*   "               +*  (    =          !     *  +*           +*  "

Groovy Script Dispatching

  =          (      ,1)   5           6

5        7 6 log %     B7 $           =  context %      ,18 /(         %   5 (           ,1)   ,18    ,1"     "  7    Map          =Q  %   &  (     ' requestContext %      ,18 /(         %   5 (  9               9         ,1)                    ,18   "  7    Map          =Q  %   &  (     ' MockRequest %      ! ,189       9  %  7      E "89  E "8   7 MockOperation %      ! ,1)          ,1)   7 5            ,18                       ,18     38   ?3

:(6 ,1 8  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.4 MOCK RESPONSES 20

1.11.4 Mock Responses ......

Mock Responses

 ,18              ,1)   5                              & (               (   '

,18      ,1)          89       3  ,1"3  

MockResponse Actions 8 %1 ,18            ,1)           6 "  %     %    ,18   2   )   (  %       ,18   "  5 /  " 3 %          (  9     ,18   ,1)          ( %      ,18    %       ,18    %      ,18   " # %        (   

MockResponse Details Tab 5        ,18          6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.4 MOCK RESPONSES 21

0 %      ,18   $   %         ,18    ! ' %   0           &    '  ! %          ,18     .  "/ %   ,5),    ,18             89        " %     ,5), 1           ,5),       .   %              ,       )   6 5                !"#$    ( %      MD   (D 

 &     6 "              (   9       , (  6 8                 $, 6 !               

The MockResponse Editor

# %1 ,18         ,1)       ,18     6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.4 MOCK RESPONSES 22

5             9           %        ,18      5    9         9       ,18      E55* E    

5 8        +,$ "    E55* E           89   2 &     '   38   " 3                          (            &   '

MockResponse Editor Toolbar

5        ,18         &   '6 " 3 % )  (  9            ,1)     ,1"      9                      % *                !"#$"  (   ,    % *        ")*      (  ")  % *        ")* A        1                        4 !! , %                2 $   " # %       (   

Response Scripts

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.4 MOCK RESPONSES 23

5 38   " 3                (                                              

5        7 6 log %     B7 $             context %      ,18 /(         %   5 (           ,1)   ,18    ,1"     "  7    Map          =  %   &  (     ' requestContext %      ,18 /(         %   5 (  9               9         ,1)                    ,18   "  7    Map          =Q  %   MockRequest %      ! ,189       9  %  7      E "89  E "8   7 MockResponse %      ! ,18          ,18   7 & (             ' 5 8                     (         ( &  ,1"    '      5 ,189            9      

*     (            (         (      6

context.randomValue = Math.random()

  3 F  3        3 3        6

${randomValue}

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.11.4 MOCK RESPONSES 24

:(6   " 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.12 SOAP MONITORING 25

1.12 SOAP Monitoring ......

SOAP Monitor

  C @    ")* ,   &  '         0   ")*%    (     5              5 /   ,1"     *  &( ' /           0     !"#$  & '

"   ")* ,   *7     3$  ")* ,3 6

"                   6 *( 6      E55* *( !           6   (         5  6     5/*%5          6     &      8$   5 3  3                  7      9      5   89  8   !""        !""                          

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.12 SOAP MONITORING 26

     

Main Window

5 ")* ,           &  '6 5              %   ")* , 5       &35  $ 3  3/ 3    *'   %        9        1                9          5  %             3,  /3                         9             

)                          89         )          7               %          ,  /  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.12 SOAP MONITORING 27

D      1  ?@@           7    ")* ,            

Using Captured Messages

5 . %       %                 6 /  89   6   9              9        /  5 /  6      5 /  &    (  '    5 89          9        /  ,1" 6      ,1" &    (  '    ,1)   ,18          9        5       C                           

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.12.1 COVERAGE 28

1.12.1 Coverage ......

SOAP Monitor Coverage

!   /   ")* ,             0  9          /  *  5            (  6                               ")* ,   0             0            !     ")* ,  /  *       %     /  5   5 "  5 /           4

:(6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13 USAGE SCENARIOS 29

1.13 Usage Scenarios ......

Usage Scenarios

5      3 3             6

Scenario Description

Data-Driven Testing Shows how to use a combination of TestSteps and/or Groovy Scripts to allow test-data (query parameters, username/password, etc) to be provided from an external source Template-Driven 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.

        9          1H

:(6 #  %# 5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.1 DATA-DRIVEN TESTING 30

1.13.1 Data-Driven Testing ......

Data-Driven Testing

#  %#                   (     (            5              (  

      #  %# 5   5 /     6 /   89    & '      3  %3 /  *  "            (    /  *  5   "                :            (              3*  " 3             (        = "                  *  " D         D    (         0 "  "         (   1   -     7      0 !"#$ & 6   0 !"2/"!"2/"  '    

Create The TestCase and TestRequest

/   5 /     89   "     9  6

? Books ?

 3" /  3            3")* A 3      (  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.1 DATA-DRIVEN TESTING 31

Create Properties and Property Transfer

  3*  " 3   C     3"   #3  3 3               3*  5  3    C                   9   -       1    6

    38 3     *  5   2     89        9        1   6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.1 DATA-DRIVEN TESTING 32

&                  9  '

Reading the properties from an external properties file

                          *  " 2       (                 6

SubscriptionID=.. your subscription id .. Author=Douglas Coupland

"    3 %    3         *  " 26

-   H )   5 /       5 /      89   2   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.1 DATA-DRIVEN TESTING 33

  6

Setting the properties with Groovy

                    3   3  (        5 = "      (            7    = "   3  3          

D     = "         5 /      = "  2 2    6

// init properties def props = new Properties(); props.load( new FileInputStream( "test-input.properties" ));

// get target step def step = testRunner.testCase.getTestStepByName( "Properties" );

// assign all properties def names = props.propertyNames(); while( names.hasMoreElements() ) { def name = names.nextElement(); step.setPropertyValue( name, props.getProperty( name )); }

5                       3*  3 " !         (     6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.1 DATA-DRIVEN TESTING 34

:(6 5  %# 5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.2 TEMPLATE-DRIVEN TESTING 35

1.13.2 Template-Driven Testing ......

Template-Driven Testing

5  %#     (   #  %#      5 /                     (    5 (     (  #  %# 5  (            (    1  (       5 /              1  

5       (  #  %# (    6 /     =       (            5 8 /(     (         /                *  "    5 /    /         5 /    1         1                 E  H

Read external values

5  (           3   (3        5 8 /( 2                       (   3G C.@3

def list = [] new File( "testdata.txt" ).eachLine { line -> list.add( line ) }

log.info( "Read " + list.size() + " test values.." )

context.setProperty( "values", list ) context.setProperty( "index", 0 )

              5 8 /(     (   33     

Init properties with test values

5                  *  " 3 3  

def values = context.getProperty( "values" ) def index = context.getProperty( "index" );

def str = values[index]

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.2 TEMPLATE-DRIVEN TESTING 36

def ix = str.indexOf( "," ) def author = str.substring( 0, ix )

def props = testRunner.testCase.getTestStepByName( "Properties" ) props.setPropertyValue( "Author", author )

log.info( "set author to [" + author + "]" )

         *  5    89       6 5                   9   5 9     1   5              38 / 3  

Validate and move to next

5  1          (                )          (   (     1     ( 

def values = context.getProperty( "values" ) def index = context.getProperty( "index" );

def str = values[index] def ix = str.indexOf( "," )

def props = testRunner.testCase.getTestStepByName( "Properties" ) def resultCount = props.getPropertyValue( "ResultCount" ) def count = str.substring( ix+1 ) def author = props.getPropertyValue( "Author" )

if( count > resultCount ) { throw new Exception( "not enough hits for author [" + author + "], expected " + count + ", got " + resultCount ) } else { log.info "got " + resultCount + " hits for [" + author + "], required " + count if( ++index < values.size() ) { context.setProperty( "index", index ) testRunner.gotoStepByName( "Init Run" ) } else { log.info "Finished TestCase, tested " + values.size() + " values" } }

Running the TestCase

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.2 TEMPLATE-DRIVEN TESTING 37

      

   (

coupland,150 king,150 shakespeare,150

         6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.2 TEMPLATE-DRIVEN TESTING 38

5       $ 5      5 /  O                ?O               

:(6   5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.2 TEMPLATE-DRIVEN TESTING 39

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.3 INTERACTIVE TESTING 40

1.13.3 Interactive Testing ......

Interactive Testing

   = 5 "                            (       1            %              7   5 /  3   3            (       5 /       0 D1               !    5 " 6  *  "        = "         *  5                  9    89   "        *  5               = "       

Properties 5      6 )  6        .  $ 6    0       ( 6          

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.3 INTERACTIVE TESTING 41

Groovy Input

5        1         6

// create dialog def dialog = com.eviware.soapui.support.UISupport.createConfigurationDialog( "Amazon Query" ); dialog.addTextField( "Author", "The Author to search on" );

// init values and show def map = new java.util.HashMap(); map.put( "Author", "" );

if( dialog.show( map )) { // get target step def step = testRunner.testCase.getTestStepByName( "Properties" );

// assign step.setPropertyValue( "Author", map.get( "Author" )); } else testRunner.cancel( "No author to search on!" );

!                          =  *  "

Search Args Transfer

5 "   5     C          "   #         2        =  *     "  89     +*  (   A  "   #   6

declare namespace ns='http://webservices.amazon.com/AWSECommerceService/2006-03-08'; //ns:SubscriptionId/text()

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.3 INTERACTIVE TESTING 42

      

declare namespace ns='http://webservices.amazon.com/AWSECommerceService/2006-03-08'; //ns:Author/text()

&"   89   "       +,$'

Using Property Replacement

    ? M         ${propertyName}  (       *  2(              3"   5  3         9  6

${SubscriptionId} Books ${Author}

5          "            9   7      &            9      '

Search Request

5    9     6

?

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.3 INTERACTIVE TESTING 43

Books ?

Result Transfer

5  (                  =  *  38 / 3      +*  (  6

declare namespace ns1='http://webservices.amazon.com/AWSECommerceService/2006-03-08'; //ns1:TotalResults/text()

Groovy Display Result

5             6

// get target step def step = testRunner.testCase.getTestStepByName( "Properties" ); com.eviware.soapui.support.UISupport.showInfoMessage( "Got " + step.getPropertyValue( "ResultCount" ) + " hits for author [" + step.getPropertyValue( "Author" ) + "]" );

Running the TestCase

8   5 /          6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.3 INTERACTIVE TESTING 44

     6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.3 INTERACTIVE TESTING 45

Summary

5 (                   (            9        &K' D*2$            D      1      4%'

:(6 "   5 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 46

1.13.4 Surveillance Testing ......

Surveillance Testing

"                              1                      (        %   3  3                                     

Creating the tests 5                  ID !" & ID %   1' 5    6  3 / 3 5 /                              1 5            C       $ 5    $ 5 ++  ++                 5*"       ?@@ 5 $ 5    "  "            O@@@ 9   5              

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 47

Running from the command-line

D                7  1      1      !     %     (             5 /          7    6

testrunner.bat "C:\Documents and Settings\ole.matzura\My Documents\jbossws-soapui-project.xml" -s"Organization Tests" -c"getContactInfo Test" -r

5       6

SoapUI SNAPSHOT TestCase Runner 10:47:36,703 INFO [SoapUITestCaseRunner] setting projectFile to [C:\Documents and Settings\ole.matzura\My Documents\jbossws-soapui-project.xml] 10:47:36,703 INFO [SoapUITestCaseRunner] setting testSuite to [Organization Tests] 10:47:36,703 INFO [SoapUITestCaseRunner] setting testCase to [getContactInfo Test] 10:47:37,284 INFO [WsdlProject] Loaded project from [C:\Documents and Settings\ole.matzura\My Documents\jbossws-soapui-project.xml] 10:47:38,616 INFO [SoapUITestCaseRunner] Running soapui tests in project [jbossws] 10:47:38,616 INFO [SoapUITestCaseRunner] Running soapui suite [Organization Tests], runType = SEQUENTIAL 10:47:38,626 INFO [SoapUITestCaseRunner] Running soapui testcase [getContactInfo Test] 10:47:38,636 INFO [SoapUITestCaseRunner] runing step [Groovy Script - init boss]

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 48

10:47:39,176 INFO [SoapUITestCaseRunner] runing step [Properties] 10:47:39,176 INFO [SoapUITestCaseRunner] runing step [Transfer Values - set boss] 10:47:39,557 INFO [SoapUITestCaseRunner] runing step [request step] Retrieving document at 'http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl'. 10:47:40,398 INFO [SchemaUtils] Loading schema types from [http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl] 10:47:40,398 INFO [SchemaUtils] Getting schema http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl 10:47:40,568 INFO [SoapUITestCaseRunner] Assertion [Schema Compliance] has status VALID 10:47:40,568 INFO [SoapUITestCaseRunner] runing step [Groovy Script] 10:47:40,689 INFO [log] boss name matched [testsd1143708459106] 10:47:40,689 INFO [SoapUITestCaseRunner] Finished running soapui testcase [getContactInfo Test], time taken: 1065ms, status: FINISHED 10:47:40,689 INFO [SoapUITestCaseRunner] Skipping testcase [getContactInfo LoadTests], filter is [getContactInfo Test] 10:47:40,689 INFO [SoapUITestCaseRunner] soapui suite [Organization Tests] finished in 2073ms

SoapUI SNAPSHOT TestCaseRunner Summary ------Time Taken: 2070ms Total TestSuites: 1 Total TestCases: 1 Total TestSteps: 5 Total Request Assertions: 1 Total Failed Assertions: 0 Total Exported Results: 0

$1     $ 5     6

loadtestrunner.bat "C:\Documents and Settings\ole.matzura\My Documents\jbossws-soapui-project.xml" -s"Organization Tests" -c"getContactInfo LoadTests" -r

*    6

SoapUI 1.5beta2 LoadTestRunner 21:16:07,912 INFO [SoapUILoadTestRunner] setting projectFile to [C:\Documents and Settings\ole.matzura\My Documents\j.. 21:16:07,932 INFO [SoapUILoadTestRunner] setting testSuite to [Organization Tests] 21:16:07,942 INFO [SoapUILoadTestRunner] setting testCase to [getContactInfo LoadTests] 21:16:09,134 INFO [WsdlProject] Loaded project from [C:\Documents and Settings\ole.matzura\My Documents\jbossws-soapu 21:16:11,458 INFO [SoapUILoadTestRunner] Skipping testcase [getContactInfo Test], filter is [getContactInfo LoadTests 21:16:11,458 INFO [SoapUILoadTestRunner] Running LoadTest [LoadTest10] 21:16:11,848 INFO [SoapUILoadTestRunner] LoadTest [LoadTest10] progress: 0.0 21:16:12,850 INFO [SoapUILoadTestRunner] LoadTest [LoadTest10] progress: 0.0144 .. etc .. 21:16:54,399 INFO [SoapUILoadTestRunner] LoadTest [LoadTest10] progress: 0.9452 21:16:55,391 INFO [SoapUILoadTestRunner] LoadTest [LoadTest10] progress: 0.9744 21:16:56,392 INFO [SoapUILoadTestRunner] LoadTest [LoadTest10] finished with status FINISHED 21:16:56,392 INFO [SoapUILoadTestRunner] Exporting log and statistics for LoadTest

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 49

[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

Setting up the Luntbuild Project

#           " A   )     3   3        6

$          76

/     F/" A "    &       7           (                 %  '6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 50

/         8            %          8  (  3 ( /3 8         

/               &  (                         '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 51

Run the Tests..

=  1              &               3" 3        '6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 52

/1     $   D     5 "  &     %            5 "        '6

5               3   3 1     6

=  1              1   $   D               6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.13.4 SURVEILLANCE TESTING 53

/1             6

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

5   &  9 1'      3/  5  3             ! "                             

:(6 5   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14 TOOL INTEGRATIONS 54

1.14 Tool Integrations ......

Tool Integrations

            %     1      4 ? ( +         %     (  !"#$     7 C & 4     !"% D  *        . )  4  5/*%          1        &I+ *E*  ' Q      1         %       1     (              

Configuration

D                        &       '         3   5 3        6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14 TOOL INTEGRATIONS 55

&                 '

:(6 / =  5

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.1 CODE GENERATION 56

1.14.1 Code Generation ......

Code Generation Tools 5                       5        %   6 ID !"    ID !"     I+%8*/  I+%!"  ( ? +  ( C  /+A C +  +A ? +  )    +D  C +  I+D C +  =" C +  :25 C @ 2                         %       1              %     &!"#$  :     '           1                    (   & '  !"#$& '

  !"#$                         !"#$   33 !"#$        !"#$      (   !"#$            !"#$ 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.1 CODE GENERATION 57

Custom Arguments

      3/   3              1 & '  (                  &    6%' 5      +A          7     ! =   6

Running a tool

)      9       3= 3                  1   #    (  3/ 3                               5                       &      ' 5                  I!"#*    6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.1 CODE GENERATION 58

JBossWS wstools

Tool Version(s) Documentation Installation / Usage

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 wsconsume

Tool Version(s) Documentation Installation / Usage

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

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.1 CODE GENERATION 59

Tool Version(s) Documentation Installation / Usage

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

Tool Version(s) Documentation Installation / Usage

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

Tool Version(s) Documentation Installation / Usage

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

Tool Version(s) Documentation Installation / Usage

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.X

Tool Version(s) Documentation Installation / Usage

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

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.1 CODE GENERATION 60

Tool Version(s) Documentation Installation / Usage

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

Tool Version(s) Documentation Installation / Usage

Oracle wsa.jar tested with latest JDeveloper Oracle Web Services (PDF) Install JDeveloper and specify release /webservices/lib in soapUI Tool Integrations settings

XMLBeans 2.x

Tool Version(s) Documentation Installation / Usage

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

Tool Version(s) Documentation Installation / Usage

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

Tool Version(s) Documentation Installation / Usage

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

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.1 CODE GENERATION 61

Tool Version(s) Documentation Installation / Usage

.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

:(6   5/*%,

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.2 APACHE TCP-MON 62

1.14.2 Apache Tcp-Mon ......

Apache Tcp-Mon Integration

5   5 %,       3  3    %        ")* 9       #      5 ,                     5 "

   C          6 ? A    5    7    5 ,      C A    ,           (        5       6

5         6  %         5 ,   1    %        5 ,      )    %               5 , ( $         5 ,    6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.2 APACHE TCP-MON 63

                     1 5 ,        &         '6

         ")* 9    3 (3   5 ,      6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.14.2 APACHE TCP-MON 64

:(6 / %$ 5

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15 COMMANDLINE TOOLS 65

1.15 CommandLine Tools ......

soapUI CommandLine tools

              5 /   $ 5 

Tool Description

SoapUITestCaseRunner Runs specified TestCases and reports/exports results as configured SoapUILoadTestRunner Runs specified LoadTests and reports/exports results as configured SoapUIMockServiceRunner Runs specified MockServices SoapUIToolRunner Runs any of the configured Code Generation tools for specified project and interface soapUI Maven 1.X/2.X plug-ins Allows execution of the above two from within a Maven 1.X/2.X build environment

:(6 " 5 / 8 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 66

1.15.1 TestCaseRunner ......

SoapUITestCaseRunner

5       com.eviware.soapui.tools.SoapUITestCaseRunner    1       7             6

switch description

e The endpoint to use when invoking test-requests, overrides the endpoint set in the project file h The host:port to use when invoking test-requests, overrides only the host part of the endpoint set in the project file s The TestSuite to run, used to narrow down the tests to run c The TestCase to run, used to narrow down the tests to run u The username to use in any authentications, overrides any username set for any TestRequests p The password to use in any authentications, overrides any password set for any TestRequests w Sets the WSS password type, either 'Text' or 'Digest' d The domain to use in any authentications, overrides any domain set for any TestRequests r Turns on printing of a small summary report (see below) f Specifies the root folder to which test results should be exported (see below) j Turns on exporting of JUnit-compatible reports, see below a Turns on exporting of all test results, not only errors o Opens the generated report in a browser (soapUI Pro only) i Enables soapUI UI-related components.

5                       (  4

testrunner.bat -hlocalhost:8080 -a -fresults c:\projects\my-soapui-project.xml

          %  % 7 (         (         3  3  &        '

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 67

Launch Dialog

A       %        3$  $ 5 8 3      *75 " 5 /    6

5                       7           &         '  !               %           6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 68

5          %                    (   

JUnit Integration

       1         I%  4

public void testRunner() throws Exception { SoapUITestCaseRunner runner = new SoapUITestCaseRunner(); runner.setProjectFile( "src/dist/sample-soapui-project.xml" ); runner.run(); }

5 runner.run()      (                    %    5 /        6

public void testTestCaseRunner() throws Exception { WsdlProject project = new WsdlProject( "src/dist/sample-soapui-project.xml" ); TestSuite testSuite = project.getTestSuiteByName( "Test Suite" );

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 69

TestCase testCase = testSuite.getTestCaseByName( "Test Conversions" );

// create empty properties and run synchronously TestRunner runner = testCase.run( new PropertiesMap(), false ); assertEquals( Status.FINISHED, runner.getStatus() ); }

Reporting and Exporting

5 " 5 / 8                   I%  (%    %7        (           %        6

testrunner.bat jbossws-soapui-project.xml -stest -ctesting -r -a -fmyresults

      6

SoapUI 1.5beta2 TestCase Runner 12:33:10,042 INFO [SoapUITestCaseRunner] setting projectFile to [jbossws-soapui-project.xml] 12:33:10,042 INFO [SoapUITestCaseRunner] setting testSuite to [test] 12:33:10,042 INFO [SoapUITestCaseRunner] setting testCase to [testing] 12:33:10,583 INFO [WsdlProject] Loaded project from [jbossws-soapui-project.xml] 12:33:11,915 INFO [SoapUITestCaseRunner] Running soapui tests in project [jbossws] 12:33:11,915 INFO [SoapUITestCaseRunner] Running soapui suite [test], runType = SEQUENTIAL 12:33:11,925 INFO [SoapUITestCaseRunner] Running soapui testcase [testing] 12:33:11,935 INFO [SoapUITestCaseRunner] runing step [Groovy Script - init boss] 12:33:12,335 INFO [SoapUITestCaseRunner] runing step [Properties] 12:33:12,335 INFO [SoapUITestCaseRunner] runing step [Transfer Values - set boss] 12:33:12,716 ERROR [SoapUITestCaseRunner] Transfer Values - set boss failed, exporting to [myresults\test\testing\Transfer-FAILED.txt] 12:33:12,716 INFO [SoapUITestCaseRunner] runing step [request step] Retrieving document at 'http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl'. 12:33:13,407 INFO [SchemaUtils] Loading schema types from [http://lpt-olma:8080/ws4ee-samples-server-ejb /Organization?wsdl] 12:33:13,407 INFO [SchemaUtils] Getting schema http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl 12:33:13,787 INFO [SoapUITestCaseRunner] Assertion [Schema Compliance] has status VALID 12:33:13,807 INFO [SoapUITestCaseRunner] Finished running soapui testcase [testing], time taken = 1882ms 12:33:13,807 INFO [SoapUITestCaseRunner] Skipping testcase [testcase2], filter is [testing] 12:33:13,807 INFO [SoapUITestCaseRunner] Skipping testcase [Copy of testing], filter is [testing] 12:33:13,807 INFO [SoapUITestCaseRunner] Skipping testcase [Copy of Copy of testing], filter is [testing] 12:33:13,807 INFO [SoapUITestCaseRunner] soapui suite [test] finished in 1892ms

SoapUI 1.5beta2 TestCaseRunner Summary ------

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 70

Time Taken: 1895ms Total TestSuites: 1 Total TestCases: 1 Total TestSteps: 4 Total Request Assertions: 1 Total Failed Assertions: 0 Total Exported Results: 4

D       (        (   -a    (        A (      89   5 "    &     '6

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 ------ testsd1141581163341 ------Response ------ The 'testsd1141581163341' boss is currently out of office, please call again.

2(         W5 " X%W5 / X%W5 " : X%W/ X%W"  X (         (      35 "  ?%5 /  ?%89   " ?%@%)G (3 &      5 "    1         5 / '     ? L O         (    W5 " X%W5 / X%W5 " : X%W/ X%  %W / X W2( X   (         %     &      '

JUnit Reports

  %7    (%          (    I   1

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 71

  (%    /     5 "    % 1   5 /     5 /  A (       6

testrunner.bat -j -ftestresults sample-soapui-project.xml

  352"5%5  "  (3          5              7    16

!        6

2    6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.1 TESTCASERUNNER 72

!     %    .C     6

:(6 " $ 5 8 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.2 LOADTESTRUNNER 73

1.15.2 LoadTestRunner ......

SoapUILoadTestRunner

5 " $ 5 8         $ 5                   (0     5         $ 5             $ 5       

5       com.eviware.soapui.tools.SoapUILoadTestRunner    1       7     $ 5           6

switch description

e The endpoint to use when invoking test-requests, overrides the endpoint set in the project file h The host:port to use when invoking test-requests, overrides only the host part of the endpoint set in the project file s The TestSuite to run, used to narrow down the tests to run c The TestCase to run, used to narrow down the tests to run l The LoadTest to run, used to narrow down which LoadTests to run m Overrides the limit value set for the specified LoadTest(s) n Overrides the thread-count value set for the specified LoadTest(s) u The username to use in any authentications, overrides any username set for any TestRequests p The password to use in any authentications, overrides any password set for any TestRequests d The domain to use in any authentications, overrides any domain set for any TestRequests r Turns on exporting of a LoadTest statistics summary report (see below) f Specifies the root folder to which test results should be exported (see below)

5                         (  4

loadtestrunner.bat -ehttp://localhost:8080/services/MyService c:\projects\my-soapui-project.xml

     $ 5     %  % 7 (      % 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.2 LOADTESTRUNNER 74

Launch Dialog

A       % $ 5 8      3$  #  3      *7$ 5    6

5                       7           &         '  !     $ 5 8         %           6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.2 LOADTESTRUNNER 75

5          %                    (   

Reporting and Exporting

5 " $ 5 8              (              %      $ 5      $ 5  $    (  2 8    $ 5  $   (  1         5 /   

loadtestrunner -stest -ctestcase4 -l"LoadTest 1" -r "C:\Documents and Settings\ole.matzura\My Documents\jbossws-soapui-project.xml"

      6

SoapUI 1.5beta2 LoadTestRunner 15:31:50,397 INFO [SoapUILoadTestRunner] setting projectFile to [C:\Documents and Settings\ole.matzura\ My Documents\jbossws-soapui-project.xml] 15:31:50,517 INFO [SoapUILoadTestRunner] setting testSuite to [test] 15:31:50,517 INFO [SoapUILoadTestRunner] setting testCase to [testcase3] 15:31:52,901 INFO [WsdlProject] Loaded project from [C:\Documents and Settings\ole.matzura\My Documents\ jbossws-soapui-project.xml] 15:31:59,941 INFO [SoapUILoadTestRunner] Skipping testcase [testing], filter is [testcase3] 15:31:59,941 INFO [SoapUILoadTestRunner] Skipping testcase [testcase2], filter is [testcase3] 15:31:59,941 INFO [SoapUILoadTestRunner] Running LoadTest [LoadTest1]

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.2 LOADTESTRUNNER 76

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

5 (         (     $ 5  2  1  6

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

:(6 " ,18 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.3 MOCKSERVICERUNNER 77

1.15.3 MockServiceRunner ......

SoapUIMockServiceRunner

5       com.eviware.soapui.tools.SoapUIMockServiceRunner    1       7     ,1"       6

switch description

m The name of the MockService to run p The local port to listen on, overrides the port configured for the MockService a The local path to listen on, overrides the path configured for the MockService s The soapui-settings.xml file to use

5      1          ,1"      (  4

mockservicerunner.bat -m"IOrderService MockService" "C:\Documents and Settings\Ole Matzura\My Documents\demo2-soapui-project.xml"

     ,1"  6

SoapUI SNAPSHOT MockService Runner 15:08:15,515 INFO [SoapUI] Added [file:/C:/workspace/core/ext/mysql-connector-java-5.0.4-bin.jar] to classpath 15:08:16,375 INFO [SoapUI] initialized soapui-settings from [soapui-settings.xml] 15:08:16,406 INFO [WsdlProject] Loaded project from [C:\Documents and Settings\Ole Matzura\My Documents\demo2-soapui-project.xml] 15:08:17,609 INFO [SoapUIMockServiceRunner] Running MockService [IOrderService MockService] in project [demo] 15:08:17,609 INFO [SoapUIMockServiceRunner] Press any key to terminate 15:08:17,953 INFO [MockEngine] Started mockService [IOrderService MockService] on port [8081] at path [/mockIOrderService] 15:08:17,953 INFO [SoapUIMockServiceRunner] MockService started on port 8081 at path [/mockIOrderService] Progress: 1 - Loading definition from cache 15:09:18,625 DEBUG [WsdlContext] Loading definition from cache 15:09:18,640 DEBUG [WsdlLoader] Returning baseInputSource [http://evitop:8080/OrderServiceImpl?wsdl] 15:09:18,687 DEBUG [WsdlLoader] Returning baseURI [http://evitop:8080/OrderServiceImpl?wsdl] Retrieving document at 'http://evitop:8080/OrderServiceImpl?wsdl'. 15:09:18,796 DEBUG [WsdlContext] Loaded definition: ok 15:09:18,812 INFO [SchemaUtils] Added default schema from

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.3 MOCKSERVICERUNNER 78

/C:/workspace/core/target/classes/xop.xsd with targetNamespace http://www.w3.org/2004/08/xop/include 15:09:18,890 INFO [SchemaUtils] Added default schema from /C:/workspace/core/target/classes/XMLSchema.xsd with targetNamespace http://www.w3.org/2001/XMLSchema 15:09:18,890 INFO [SchemaUtils] Added default schema from /C:/workspace/core/target/classes/xml.xsd with targetNamespace http://www.w3.org/XML/1998/namespace 15:09:18,890 INFO [SchemaUtils] Added default schema from /C:/workspace/core/target/classes/swaref.xsd with targetNamespace http://ws-i.org/profiles/basic/1.1/xsd 15:09:18,890 INFO [SchemaUtils] Added default schema from /C:/workspace/core/target/classes/xmime200505.xsd with targetNamespace http://www.w3.org/2005/05/xmlmime 15:09:18,890 INFO [SchemaUtils] Added default schema from /C:/workspace/core/target/classes/xmime200411.xsd with targetNamespace http://www.w3.org/2004/11/xmlmime 15:09:18,890 WARN [SchemaUtils] Failed to open schemaDirectory [C:\workspace\soapui-pro\schemas] 15:09:18,890 INFO [SchemaUtils] Loading schema types from [http://evitop:8080/OrderServiceImpl?wsdl] 15:09:18,890 INFO [SchemaUtils] Getting schema http://evitop:8080/OrderServiceImpl?wsdl 15:09:18,906 INFO [SchemaUtils] schema for [http://www.example.org/OrderService/] contained [{}] namespaces 15:09:19,359 INFO [SoapUIMockServiceRunner] Handled request 1; [purchase] with [MockResponse 1] in [9ms] at [2007-04-03 15:09:17.968] 15:09:20,734 INFO [SoapUIMockServiceRunner] Handled request 2; [purchase] with [MockResponse 2] in [0ms] at [2007-04-03 15:09:20.734] 15:09:21,296 INFO [SoapUIMockServiceRunner] Handled request 3; [purchase] with [MockResponse 1] in [0ms] at [2007-04-03 15:09:21.296] 15:09:21,937 INFO [SoapUIMockServiceRunner] Handled request 4; [purchase] with [MockResponse 2] in [0ms] at [2007-04-03 15:09:21.937] 15:09:22,343 INFO [SoapUIMockServiceRunner] Handled request 5; [purchase] with [MockResponse 1] in [0ms] at [2007-04-03 15:09:22.343]

!     1        5           1          6

15:20:30,703 INFO [MockEngine] Stopping connector on port 8081 15:20:30,703 INFO [MockEngine] No more connectors.. stopping server 15:20:30,703 INFO [SoapUIMockServiceRunner] MockService stopped, handled 7 requests 15:20:30,703 INFO [SoapUIMockServiceRunner] time taken: 733117ms

:(6 " 58 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.4 TOOLRUNNER 79

1.15.4 ToolRunner ......

SoapUIToolRunner

5 " 58             / =      %         

5       com.eviware.soapui.tools.SoapUIToolRunner    1       7        %            6

switch description

i the interface for which the tool should be run t the tool(s) to run, a comma-separated list with the following tokens; axis1, axis2, dotnet, gsoap, jaxb, wstools, wsconsume, ora, wsi, wscompile, wsimport, cxf, xfire or xmlbeans s the soapui-settings.xml file to use (usually the one in the soapUI bin directory)

5                      (  4

toolrunner.bat -iAWSECommerceServicePortType -taxis1 G:\test\Amazon-soapui-project.xml

     ( ? + %                6

SoapUI 1.6 beta1 Tool Runner 02:27:02,386 DEBUG [SoapUI] initialized soapui-settings from [soapui-settings.xml] 02:27:02,506 INFO [WsdlProject] Loaded project from [G:\test\Amazon-soapui-project.xml] 02:27:08,765 INFO [SoapUIToolRunner] Running tools for project [Amazon] directory: C:\java\axis-1_4\lib command: java -cp activation.jar;axis-ant.jar;axis.jar;bsf.jar;castor-0.9.5.2.jar;commons-codec-1.2.jar; commons-discovery-0.2.jar;commons-httpclient-3.0-rc2.jar;commons-logging-1.0.4.jar;commons-net-1.0.0-dev.jar; httpunit.jar;ibmjsse.jar;javax.jms.jar;jaxrpc.jar;JimiProClasses.jar;junit-3.8.1.jar;log4j-1.2.8.jar; 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

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.15.4 TOOLRUNNER 80

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

5  ( ? +              6

:(6 G   

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.16 KEYBOARD SHORTCUTS 81

1.16 Keyboard shortcuts ......

Keyboard Shortcuts

      1        1     

Global Actions

5              6

Keyboard Shortcut Functionality

F1 Shows online help. Delete Deletes the selected item. F2 Renames the selected item. F9 Copies/Clones the selected item. Enter Show the associated editor.

Main Menu Actions

5          %  4

Keyboard Shortcut Functionality

Ctrl N Creates a new soapUI project in the workspace. Ctrl I Imports an existing project into the workspace. Ctrl Tab Select next. Selects next window in the soapUI desktop. Ctrl Alt P Preferences. Ctrl Q Saves the entire workspace and exits soapUI. Ctrl Alt Q Exits soapUI without saving anything.

Desktop Actions

5         1      1 4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.16 KEYBOARD SHORTCUTS 82

Keyboard Shortcut Functionality

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

5         *7      :  

Keyboard Shortcut Functionality

Ctrl U Adds a new WSDL from an URL Ctrl F Adds a new WSDL from a local File Ctrl T Creates a new TestSuite Ctrl S Saves the project Ctrl Shift S Prompts to save the project to a new file

Interface Actions

5                :  

Keyboard Shortcut Functionality

Ctrl E Shows the Interface Endpoints dialog. Ctrl W Validate the interface with the WS-I validation tools Ctrl P Saves the entire WSDL and included/imported files to a local directory F5 Reloads the definition for this interface and its operations

Operation Actions

5         )        :  

Keyboard Shortcut Functionality

Ctrl N Creates a new request for the Operation.

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.16 KEYBOARD SHORTCUTS 83

Request Actions

5         89        :  

Keyboard Shortcut Functionality

Ctrl Alt A Adds the request to a TestCase

Working with Requests and Responses

5          1   89   24

Keyboard Shortcut Functionality

Alt Enter Submits the request to the specified endpoint. Alt X Cancels a running submit. Alt left/right arrow Move between element values Alt O Changes the orientation of the request/response splitter Ctrl Alt Tab Shift focus between request/response area. Alt V Validate the contained messages' XML and against its operations message definition. Alt W (in the response editor) Validate the current request/response messages against the WS-I Basic Profile (requires a response). Ctrl D Delete line. Deletes the current Line in the XML Editor. F3 Shows the Find/Replace Dialog. Alt F Pretty-Prints the current XML Ctrl S Prompts to save the contents of the editor to a file.

TestSuite Actions

5        5 "       :  

Keyboard Shortcut Functionality

Ctrl N Creates a new TestCase.

TestCase Actions

5        5 /       :  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.16 KEYBOARD SHORTCUTS 84

Keyboard Shortcut Functionality

Ctrl N Creates a new LoadTest. Ctrl Shift O Shows the LoadTest Options.

Working with TestCases

5          1   5 /  24

Keyboard Shortcut Functionality

Ctrl Up/Down Move a TestCase up or down in the TestCase Editor.

Working with Groovy Scripts

5          1   = 24

Keyboard Shortcut Functionality

Ctrl Enter Executes the current groovy script.

D 1   )

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17 IDE/TOOL PLUGINS 85

1.17 IDE/Tool Plugins ......

IDE / Tool Plugins

     %      #2

Tool/IDE Functionality

Maven 1.X/2.X Provides goals/properties corresponding to each of the soapUI command-line tools and its arguments NetBeans 5.5/6.0 Provides full soapUI functionality from within the NetBeans IDE IntelliJ IDEA 6+ Provides full soapUI functionality from within IntelliJ IDEA Eclipse 3.2+ Provides full soapUI functionality from within Eclipse plus a soapUI Project Nature for integrated browsing/viewing of eclipse/soapUI projects in the Project Explorer. JBossWS/JBossIDE 2.0.0+ Provides the same functionality as the standard Eclipse plug-in plus a number of JBossWS-related wizards/dialogs/actions.

"  #2       1           *   "      

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1 MAVEN PLUGINS 86

1.17.1 Maven Plugins ......

soapUI maven plugins

          ? (    C (      5 "   5 /   $ 5                     1    %           (   (   

8  6   ? +     C +   :(6   ? +  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.1 MAVEN 1.X PLUGIN 87

1.17.1.1 Maven 1.X Plugin ......

soapUI maven 1.X plugin

Download

*                                

#                         %6

maven plugin:download -DgroupId=eviware -DartifactId=maven-soapui-plugin -Dversion=1.6 -Dmaven.repo.remote=http://www.soapui.org/repository

            7 (4

eviware maven-soapui-plugin 1.7.6 plugin

                        7   4

maven.repo.remote=http://www.ibiblio.org/maven,http://www.soapui.org/repository

Usage

#          D       1    7    ${pom.artifactId}-soapui-project.xml          maven.soapui.project  

8       

maven soapui:test

     

maven soapui:loadtest

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.1 MAVEN 1.X PLUGIN 88

5        7      5 /       5 "           5 "  5 /  $ 5       maven.soapui.test.testsuite maven.soapui.test.testcase  maven.soapui.test.loadtest        

                       5 89     (  5 /         maven.soapui.test.XX     (  

maven soapui:test -Dmaven.soapui.test.endpoint=http://somehost.com:8080/services/MyService

D             5 89   (           5 /            5 /       

A (       C 5 "             7         4

maven soapui:test -Dmaven.soapui.test.testsuite=TestSuite1 -Dmaven.soapui.test.endpoint=http://somehost.com:8080/services/MyService1

 

maven soapui:test -Dmaven.soapui.test.testsuite=TestSuite2 -Dmaven.soapui.test.endpoint=http://someotherhost.com:8080/services/MyService2

5                 " 5 / 8   " 5 / 8      maven.soapui.report.XX  

Sample Outputs

E   (                           7        6

maven soapui:test -Dmaven.soapui.project=sample-soapui-project.xml __ __ | \/ |__ _Apache__ ___ | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~ |_| |_\__,_|\_/\___|_||_| v. 1.0.2

build:start:

soapui:test: [echo] Running soapUI project sample-soapui-project.xml with endpoint [] [java] SoapUI 1.6 TestRunner [java] 23:57:56,258 INFO [SoapUITestCaseRunner] setting projectFile to [sample-soapui-project.xml] [java] 23:57:56,838 INFO [WsdlProject] Loaded project from [sample-soapui-project.xml] [java] 23:57:57,219 INFO [SoapUITestCaseRunner] Running soapui tests in project

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.1 MAVEN 1.X PLUGIN 89

[Sample Project] [java] 23:57:57,219 INFO [SoapUITestCaseRunner] Running soapui suite [Test Suite] [java] 23:57:57,219 INFO [SoapUITestCaseRunner] Running soapui testcase [Test Conversions] [java] 23:57:57,219 INFO [SoapUITestCaseRunner] runing step [SEK to USD Test] [java] Retrieving document at 'http://www.webservicex.net/CurrencyConvertor.asmx?WSDL'. [java] 23:57:59,893 INFO [SchemaUtils] Loading schema types from [http://www.webservicex.net/CurrencyConvertor.asmx?WSDL] [java] 23:57:59,893 INFO [SchemaUtils] loading schema types from http://www.webservicex.net/CurrencyConvertor.asmx?WSDL [java] Assertion [Schema Compliance] has status VALID [java] Assertion [XPath Match - check for less than 0.2] has status VALID [java] Assertion [XPath Match - check for more than 0.1] has status VALID [java] Assertion [SOAP Fault Assertion] has status VALID [java] 23:58:01,025 INFO [SoapUITestCaseRunner] runing step [USD to SEK Test] [java] Assertion [Schema Compliance] has status VALID [java] Assertion [XPath Match - check for less than 8] has status VALID [java] Assertion [XPath Match - check for more than 7] has status VALID [java] Assertion [SOAP Fault Assertion] has status VALID [java] 23:58:01,495 INFO [SoapUITestCaseRunner] Finished running soapui testcase [Test Conversions], time taken = 4276ms [java] 23:58:01,505 INFO [SoapUITestCaseRunner] Running soapui testcase [Test XMethods Query] [java] 23:58:01,505 INFO [SoapUITestCaseRunner] runing step [Test getAllServiceNames] [java] Assertion [XPath Match - check for Anagram Service] has status VALID [java] 23:58:03,488 INFO [SoapUITestCaseRunner] runing step [Transfer values] [java] 23:58:03,688 INFO [SoapUITestCaseRunner] runing step [Test getServiceDetail] [java] Assertion [XPath Match] has status VALID [java] 23:58:03,949 INFO [SoapUITestCaseRunner] Finished running soapui testcase [Test XMethods Query], time taken = 2444ms [java] 23:58:03,959 INFO [SoapUITestCaseRunner] soapui suite [Test Suite] finished in 6740ms BUILD SUCCESSFUL Total time: 10 seconds Finished at: Sun Oct 02 23:58:04 CEST 2005

        6

maven soapui:loadtest -Dmaven.soapui.test.loadtest=LoadTest1 -Dmaven.soapui.report.folder=results __ __ | \/ |__ _Apache__ ___ | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~ |_| |_\__,_|\_/\___|_||_| v. 1.0.2

Attempting to download swingx-SNAPSHOT.jar. build:start:

soapui:loadtest: [echo] Running soapui project jbossws-soapui-project.xml with endpoint [] [java] SoapUI 1.6 LoadTestRunner [java] 22:48:13,116 INFO [SoapUILoadTestRunner] setting projectFile to [jbossws-soapui-project.xml] [java] 22:48:13,116 INFO [SoapUILoadTestRunner] setting testSuite to [test] [java] 22:48:13,116 INFO [SoapUILoadTestRunner] setting testCase to [testcase3]

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.1 MAVEN 1.X PLUGIN 90

[java] 22:48:13,647 INFO [WsdlProject] Loaded project from [jbossws-soapui-project.xml] [java] 22:48:14,818 INFO [SoapUILoadTestRunner] Skipping testcase [testing], filter is [testcase3] [java] 22:48:14,818 INFO [SoapUILoadTestRunner] Skipping testcase [testcase2], filter is [testcase3] [java] 22:48:14,818 INFO [SoapUILoadTestRunner] Running LoadTest [LoadTest1] [java] 22:48:14,878 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.0 [java] 22:48:15,870 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.038 [java] 22:48:16,871 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.102 [java] 22:48:17,873 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.14 [java] 22:48:18,884 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.204 [java] 22:48:19,876 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.274 [java] 22:48:20,887 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.35 [java] 22:48:21,889 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.424 [java] 22:48:22,890 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.488 [java] 22:48:23,891 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.564 [java] 22:48:24,893 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] progress: 0.642 [java] 22:48:25,894 INFO [SoapUILoadTestRunner] LoadTest [LoadTest1] finished with status FAILED [java] 22:48:25,894 INFO [SoapUILoadTestRunner] Exporting log and statistics for LoadTest [LoadTest1] [java] 22:48:25,944 INFO [SoapUILoadTestRunner] Exported 36 log items to [results\LoadTest1-log.txt] [java] 22:48:26,265 INFO [SoapUILoadTestRunner] Exported 33 error results [java] 22:48:26,265 INFO [SoapUILoadTestRunner] Exported 3 statistics to [results\LoadTest1-statistics.txt] [java] 22:48:26,265 INFO [SoapUILoadTestRunner] Skipping testcase [testcase4], filter is [testcase3] [java] 22:48:26,265 INFO [SoapUILoadTestRunner] soapui suite [test] finished in 11447ms [java] 22:48:26,265 INFO [SoapUILoadTestRunner] 1 load tests failed: [java] 22:48:26,265 INFO [SoapUILoadTestRunner] LoadTest1: Maximum number of errors [30] exceeded for step [Groovy Script] [java] 22:48:26,265 ERROR [SoapUILoadTestRunner] com.eviware.soapui.support.SoapUIException: LoadTests failed

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

:(6   ? +    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.1 MAVEN 1.X PLUGIN 91

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.2 MAVEN 2.X PLUGIN 92

1.17.1.2 Maven 2.X Plugin ......

soapUI maven 2.X plugin

Usage

*            C        7   (4

eviwarePluginRepository http://www.eviware.com/repository/maven2/

5           (

eviware maven-soapui-plugin 1.7.6 sample-soapui-project.xml http://127.0.0.1:8181

8       

mvn eviware:maven-soapui-plugin:test

   

mvn eviware:maven-soapui-plugin:loadtest

 ,1" 

mvn eviware:maven-soapui-plugin:mock

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.1.2 MAVEN 2.X PLUGIN 93

5        7      5 /       5 "           5 "  5 /  $ 5       testSuite testCase  loadTest        

Integrated Tools

          %              7    1  %      

mvn eviware:maven-soapui-plugin:tool

          C        %    6

eviware maven-soapui-plugin 1.7 sample-soapui-project.xml OleTest IOrderService wsi,axis1,axis2 C:\workspace\core\soapui-settings.xml generate-sources generate

"                 (        !"%           ( ?  ( C                    !"% 

:(6   C +    

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2 NETBEANS PLUGIN 94

1.17.2 NetBeans Plugin ......

soapUI NetBeans-Plugin

5   :D  %*     %      :D  O OM @             ! "  7  "   C @   %     7 7     :D  7         3   :  3         7     1   :D  7 E     6

Getting Started

#   :D,  " A     :D  *           " A               "           %        (  = "       :D  *      =  5              # 1        :D       

Creating a soapUI Project

     7        :D  7 5      7   : *7 %X ") %X ! " 5  *7  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2 NETBEANS PLUGIN 95

  3:(3          7      6 "     !"#$    =  5 "   ,1"    !"#$ "   (    *7        

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2 NETBEANS PLUGIN 96

#                     9       )  7               :D  3*7 3               :              6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2 NETBEANS PLUGIN 97

Log and Property Views

5      $          !Y   $                  :D   1 6

5 %         %                   :D  *  !   ! 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2 NETBEANS PLUGIN 98

Demonstration Movies

  :D  M @ ,<  ) 2"D C @    :D         ) 2"D %       6 %   7  #  [) 2"D[ [:DM  5                       1  :D  6 , ?        !"#$        !"#$  D*2$                  , C        !"#$   ,1       !"#$         7          ,1             !"#$  D*2$  , .        I+%!" ! "            :(6      :D  * 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2 NETBEANS PLUGIN 99

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2.1 INSTALLATION 100

1.17.2.1 Installation ......

Installing the NetBeans-Plugin in NetBeans 6.0

E   1%           *   :D  M @4 "           " A       D     (                 A         1        (   "  :D     35  *  3   "   3# 3      3 *  3           

)      :D           6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2.1 INSTALLATION 101

:   3  3      :D                            I   3/ 3        6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2.1 INSTALLATION 102

5  %              3  3  6

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2.1 INSTALLATION 103

  )G                       5     4               16

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.2.1 INSTALLATION 104

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.3 INTELLIJ PLUGIN 105

1.17.3 IntelliJ Plugin ......

soapUI IntelliJ-Plugin

5   I%*     %      I #2             ! "  I  2(     1            5! 6  3   :  3 5!       !1  :    #  5   3   $ 3 5!        $ 5        # 1 *            #2        E     6

/         3%?3       33 1         I 

Installation

5        " A     I  %             I *=     9       4       (           (  6

-Xms128m -Xmx512m -XX:MaxPermSize=128m -ea

Getting Started

5 (  = "       I *      =  5              # 1        I      

:(6 !1  :D 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4 ECLIPSE PLUGIN 106

1.17.4 Eclipse Plugin ......

soapUI eclipse-plugin

5                      3   3   ? L             7                            5    1    "!5[!5                                          1 )G & 1  '

/    %         " A             6        &  '

*              

Update Site

             6         (      % %       6 ? " 3E 33"     33A     3 C "  3"          3   . *  3: 8 "3                 B " A                  8   = "        =     H

The soapUI Perspective )         *        !)  * )

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4 ECLIPSE PLUGIN 107

/    3  3     5      C  4  3   :  3         :    #             3   $ 3                    :    1                     1     1   

)                  !" F) /            

soapUI Preferences

,    "          !*       4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4 ECLIPSE PLUGIN 108

:(6   :  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4.1 SOAPUI NATURE 109

1.17.4.1 soapUI Nature ......

soapUI Nature

5   :           %      I  % 7                     1  %     7

5  (    1   3 %3  6

Step 1: Enable soapUI Nature

"        I  7       :     7   6

        3   ! " 3    76

!    2  *7 2(  F     1      7    %1%   3  3    7  6

Step 2: Create or Import a WSDL -         !"#$    7 &   (      ! 5 *7 !"#$ 2'  7        7        3 !"#$  3 

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4.1 SOAPUI NATURE 110

!    !"#$    7   1   !"#$    3   %X     *73

)    !"#$   3   3        3   ! " 3 6

Step 3: Generate Code

:          3=  %X ( ? +   3                 

"              I        7

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4.1 SOAPUI NATURE 111

"  3= 3     1 ( &    3* %X   %X    5 3'           6

5           I     &   H'

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.17.4.1 SOAPUI NATURE 112

&5     1     ( %      7   5                '

Step 4: Implement, Deploy and Test

        ! "                9   3 3   1H

:(6 !1  ID !"

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.18 KEYBOARD SHORTCUTS 113

1.18 Keyboard shortcuts ......

Keyboard Shortcuts

      1        1     

Global Actions

5              6

Keyboard Shortcut Functionality

F1 Shows online help. Delete Deletes the selected item. F2 Renames the selected item. F9 Copies/Clones the selected item. Enter Show the associated editor.

Main Menu Actions

5          %  4

Keyboard Shortcut Functionality

Ctrl N Creates a new soapUI project in the workspace. Ctrl I Imports an existing project into the workspace. Ctrl Tab Select next. Selects next window in the soapUI desktop. Ctrl Alt P Preferences. Ctrl Q Saves the entire workspace and exits soapUI. Ctrl Alt Q Exits soapUI without saving anything.

Desktop Actions

5         1      1 4

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.18 KEYBOARD SHORTCUTS 114

Keyboard Shortcut Functionality

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

5         *7      :  

Keyboard Shortcut Functionality

Ctrl U Adds a new WSDL from an URL Ctrl F Adds a new WSDL from a local File Ctrl T Creates a new TestSuite Ctrl S Saves the project Ctrl Shift S Prompts to save the project to a new file

Interface Actions

5                :  

Keyboard Shortcut Functionality

Ctrl E Shows the Interface Endpoints dialog. Ctrl W Validate the interface with the WS-I validation tools Ctrl P Saves the entire WSDL and included/imported files to a local directory F5 Reloads the definition for this interface and its operations

Operation Actions

5         )        :  

Keyboard Shortcut Functionality

Ctrl N Creates a new request for the Operation.

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.18 KEYBOARD SHORTCUTS 115

Request Actions

5         89        :  

Keyboard Shortcut Functionality

Ctrl Alt A Adds the request to a TestCase

Working with Requests and Responses

5          1   89   24

Keyboard Shortcut Functionality

Alt Enter Submits the request to the specified endpoint. Alt X Cancels a running submit. Alt left/right arrow Move between element values Alt O Changes the orientation of the request/response splitter Ctrl Alt Tab Shift focus between request/response area. Alt V Validate the contained messages' XML and against its operations message definition. Alt W (in the response editor) Validate the current request/response messages against the WS-I Basic Profile (requires a response). Ctrl D Delete line. Deletes the current Line in the XML Editor. F3 Shows the Find/Replace Dialog. Alt F Pretty-Prints the current XML Ctrl S Prompts to save the contents of the editor to a file.

TestSuite Actions

5        5 "       :  

Keyboard Shortcut Functionality

Ctrl N Creates a new TestCase.

TestCase Actions

5        5 /       :  

©2005 EVIWARE.COM • ALL RIGHTS RESERVED 1.18 KEYBOARD SHORTCUTS 116

Keyboard Shortcut Functionality

Ctrl N Creates a new LoadTest. Ctrl Shift O Shows the LoadTest Options.

Working with TestCases

5          1   5 /  24

Keyboard Shortcut Functionality

Ctrl Up/Down Move a TestCase up or down in the TestCase Editor.

Working with Groovy Scripts

5          1   = 24

Keyboard Shortcut Functionality

Ctrl Enter Executes the current groovy script.

D 1   )

©2005 EVIWARE.COM • ALL RIGHTS RESERVED