Upload
qualitest-group
View
234
Download
0
Embed Size (px)
DESCRIPTION
Lesson 4 & 5 http://www.qualitestgroup.com/
Citation preview
ANY QUESTIONS??
Introduction to SOAPUI
1
MORE ABOUT ASSERTIONS
Introduction to SOAPUI
2
3
Xpath Functions
4
Adding Assertions
• CONTAINS/NOT CONTAINS
• SOAP/Non SOAP Reqest
• SOAP fault/non-SOAP fault
• Response SLA
• Xpath/Xquery match
• Script
• Security status
• JMS status and timeouts
5
CONTAINS/Not CONTAINS
• Contains checks for the existence of some text in the received response or request message
• Not Contains - Searches for the non-existence of a string token in the property value, supports regular expressions. Applicable to any property.
6
7
Adding Assertions to Test Step
• In the response, we want to verify a successful response
8
Automatically Populates
9
Can also select for Content matching RegEx
10
Exists
11
Prepopulates XPath
12
SOAP/non SOAP response
13
SOAP fault/non-SOAP fault
14
Response SLA
15
XPath/XQuery match
16
Prepopulates
17
Script
18
Security Status
19
What information is sensitive?
20
Global Tokens
21
WS Addressing/Status
22
JMS status & Timeouts• Similar to the SLA Assertions
23
Multiple Content Assertions
24
Lots of Assertions!
• Just for the first step:
What if we wanted to repeat these for multiple steps?
25
Assertions at the Test Case Level
26
Grouping Assertions• Assertions in a Test Step can be grouped
27
AND: all Assertions valid = PASS
OR: at least one valid Assertion = PASS
Web Services with Attachments
• Often times web services have attachments associated with them
– Files (images)
– cookies
28
Send in Form
29
For the TMNG_CMS project
30
Run Test Case Test Step
31
Let’s Get Groovy
• Groovy Programming Language
• Exercise – writing groovy scripts
• Refactoring
• Exercise – refactoring wsdl
• Web Services with attachments
• Exercise – configure and test web service with attachment
Groovy Programming Language
• Language Overview
• Flow control
• SoapUI object model
• Dynamic test management
• Writing logic to verify scripts
Language Overview
• Groovy is the scripting language used in SoapUI for controlling tests
• Groovy is also a programming language that can run stand-alone in a java environment
– Contains some data structures similar to java
• Lists (like java arrays)
• Maps
34
Control structures
• Logic branches
• Looping
• If else
35
Groovy Script Usage
• Groovy Script TestStep in a TestCase
• Before and after running a TestCase or TestSuite to initialize or cleanup
• Starting/Stopping MockService
• Initialize/Cleanup Project level
• Dynamic DataSource or DataSync
• Creating dynamic MockResponse content
• Adding Script Assertions
36
Script Editors - Tabs
37
Script Editor – Test Suite
38
Script Editor - TestCase
39
Script Editor – Test Step
40
Get & Set Properties
• // get properties from testCase, testSuite and project
• def testCaseProperty = testRunner.testCase.getPropertyValue( "MyProp" )
• def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("MyProp" )
• def projectProperty = testRunner.testCase.testSuite.project.getPropertyValue( "MyProp" )
• def globalProperty = com.eviware.soapui.SoapUI.globalProperties.getPropertyValue( "MyProp" )
• // setting values
• testRunner.testCase.setPropertyValue("MyProp", someValue ) testRunner.testCase.testSuite.setPropertyValue( "MyProp", someValue ) testRunner.testCase.testSuite.project.setPropertyValue( "MyProp", someValue ) com.eviware.soapui.SoapUI.globalProperties.setPropertyValue( "MyProp", someValue )
41
Get & Set Settings
• import com.eviware.soapui.settings.SSLSettings
• import com.eviware.soapui.SoapUI
• // set SoapUI.settings.setString( SSLSettings.KEYSTORE, pathToKeystore ) SoapUI.settings.setString( SSLSettings.KEYSTORE_PASSWORD, keystorePassword )
• // get SoapUI.settings.getString( SSLSettings.KEYSTORE, "value to return if there is no such setting set" )
42
Useful info
• Access project name
• testRunner.testCase.testSuite.project.name
• Access test step name
• context.getCurrentStep().getLabel()
43
Data Source
44
Data Sync
45
Saving Test Step Results
46
Groovy Step
47
You can add a Groovy step by right clicking on a test step and selecting “Insert Step” followed by “Groovy Script” or by opening the TestCase and clicking on the star icon.
Incrementing a Property
48
Here’s how to increment a property called PatentNum.
• Get the TestCase Property (as a “BigDecimal”)
• Increment the value
• Set the value back into the property
def old = context.testCase.getPropertyValue(“PatentNum") as BigDecimal;
def new = (old+ 1) as String;
context.testCase.setPropertyValue( “PatentNum", new );
Notice how the setPropertyValue differs from the getPropertyValue
Groovy Exercise
49
In this exercise we will:
• Set up a Test Case property
• Read a number in from a text file
• Transfer the number to a property
• Execute a request using the property
• Increment the property
• Store the property back to the text file
Assertion with Script
50
Auto-Generates Script
51
Change to get all nodes
52
GroovyUtils
53
xmlHolder Methods
54
XQuery
55
Navigation
• // means keep going down levels
• / means go down one level
56
Max or Min
57
Count
58
ANDs/ORs
59
Useful XPath Functions
60
WSDL Refactoring
61
Connect Old & New
• Sometimes the operation names change
62
Map Nodes per Operation
• You also have the chance to manually edit
63
XPath Mapping
64
Organizing your projects• Setting up a workspace
65
Import Projects
• Import projects into the Workspace
• Easily Switch between
workspaces
66
Workspaces
• Can only have one workspace open at a time
• Same project can be in two workspaces
• Can have multiple projects loaded into workspace
• Can’t have separate projects and workspaces loaded at the same time
67
Environments
• Another way to help manage your projects is to set up environments on the Project level
68
Organizing your projects• Setting up a workspace
69
Import Projects
• Import projects into the Workspace
• Easily Switch between
workspaces
70
Workspaces
• Can only have one workspace open at a time
• Same project can be in two workspaces
• Can have multiple projects loaded into workspace
• Can’t have separate projects and workspaces loaded at the same time
71
Environments
• Another way to help manage your projects is to set up environments on the Project level
72
Add Name
73
Change environment specifics
74