Soap UI - Lesson45

Post on 03-Jul-2015

234 views 0 download

description

Lesson 4 & 5 http://www.qualitestgroup.com/

Transcript of Soap UI - Lesson45

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