0% found this document useful (0 votes)
10 views

Basics of Groovy Script

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Basics of Groovy Script

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Basics of Groovy Script

1. To Print in the console


log.info(“Print Groovy”)

OutPut :- Print Groovy

2. To get Test Case Name


Type 1 - log.info(testRunner.testCase.name)
Type 2 - log.info(context.getTestCase().name)
Type 3 - log.info(context.testCase.name)

OutPut :- Test Case 1

3. To get Test Suite Name


Type 1 - log.info(context.testCase.testSuite.name)
Type 2 -log.info(context.getTestCase().getTestSuite().name)
Type 3 - log.info(testRunner.testCase.testSuite.name)

OutPut :- Test Suite 1

4. To get Project Name


Type 1 - log.info(context.testCase.project.name)
Type 2 -log.info(context.testCase.testSuite.project.name)
Type 3 -log.info(context.getTestCase().getProject().name)
Type 4 -log.info(context.getTestCase().getTestSuite().getProject().name)
Type 5 - log.info(testRunner.testCase.project.name)
Type 6 -log.info(testRunner.getTestCase().getProject().name)
Type 7 -log.info(testRunner.testCase.testSuite.project.name)
Type 8 -log.info(testRunner.getTestCase().getTestSuite().getProject().name)

OutPut :- tempconvert (P.S. Same output for all above query)

5. To get Test Case Count and Test Case Name


def testCases = context.testCase.testSuite.getTestCaseList()
log.info("Number Test Cases Present :- "+testCases.size())

www.pavanonlinetrainings.com
testCases.each {
log.info("Test Cases Name :- "+it.name)
}

OutPut :- Number Test Cases Present :- 2


Test Cases Name :- TestCase 1
Test Cases Name :- TestCase 2

6. To get Test Suite Count and Test Suite Name


def testSuites = context.testCase.project.getTestSuiteList()
log.info("Number Test Suites Present :- "+testSuites.size())
testSuites.each {
log.info("Test Suite Name :- "+it.name)
}

OutPut :- Number Test Suites Present :- 2


Test Suite Name :- TestSuite 1
Test Suite Name :- TestSuite 2

7. To get Project Count and Project Name


def getProjectsList =
testRunner.testCase.testSuite.project.workspace.getProjectList()
log.info("Number of Projects :- " +getProjectsList.size)
for(i in 0..getProjectsList.size-1 ){
log.info("Project name :- "+getProjectsList.getAt(i).name)
}

OutPut :- Number of Projects :- 5


Project name :- Project1
Project name :- Project2
Project name :- Project3
Project name :- Project4
Project name :- Project5

8. To get count of blank spaces

www.pavanonlinetrainings.com
def val = "Groovy Scripting Language is used for SOAPUI"
def sval = val.replaceAll(" ","")
def sCount = val.size() - sval.size()
log.info("Count of Blank (' ') spaces is = $sCount")

OutPut :- Count of Blank(‘ ‘) spaces is = 6

9. To get count of SAME Char repeated


def val = "Groovy"
def sval = val.replaceAll("o","")
def sCount = val.size() - sval.size()
log.info("The Char 'o' Repeats = $sCount Times")

OutPut :- The Char 'o' Repeats = 2 Times

10. To set project property values

testRunner.testCase.testSuite.project.setPropertyValue("ProjectProp","
ProjectProp Value")
context.getTestCase().getTestSuite().getProject().setPropertyValue("ProjectProp
", " ProjectProp Value")

11. To get project property values

def projPropValue =
testRunner.testCase.testSuite.project.getPropertyValue("ProjectProp")
log.info(projPropValue)

def projPropValue1 =
context.getTestCase().getTestSuite().getProject().getPropertyValue("ProjectProp")
log.info(projPropValue1)

OutPut :- ProjectProp Value 1


ProjectProp Value 2

www.pavanonlinetrainings.com
12. To set TestSuite property values

testRunner.testCase.testSuite.setPropertyValue("TestSuiteProp","TestSuite Property
Value")
context.getTestCase().getTestSuite().setPropertyValue("TestSuiteProp","TestSuite
Property Value")

13. To get TestSuite property values

def testSuitePropValue =
testRunner.testCase.testSuite.getPropertyValue("TestSuiteProp")
log.info(testSuitePropValue)

def testSuitePropValue1 =
context.getTestCase().getTestSuite().getPropertyValue("TestSuiteProp")
log.info(testSuitePropValue)

OutPut :- TestSuite Property Value


TestSuite Property Value

14. To set TestCase property values

testRunner.testCase.setPropertyValue("TestCaseProp", "TestCase Property Value")


context.getTestCase().setPropertyValue("TestCaseProp", "TestCase Property
Value")

15. To get TestCase property values

def testCasePropValue =
testRunner.testCase.getPropertyValue("TestCaseProp")
log.info(testCasePropValue)

def testCasePropValue2 =
context.getTestCase().getPropertyValue("TestCaseProp")
log.info(testCasePropValue2)

www.pavanonlinetrainings.com
OutPut :- TestCase Property Value
TestCase Property Value

******************* Sample Request XML **************************


Note :- Here I have taken sample request xml from “SendSMSToIndia” service
(http://www.webservicex.net/SendSMS.asmx)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:web="http://www.webserviceX.NET">
<soapenv:Header/>
<soapenv:Body>
<web:SendSMSToIndia>
<web:MobileNumber>9879879785465</web:MobileNumber>
<web:FromEmailAddress>mail@email.com</web:FromEmailAddress>
<web:Message>Hi Hello!!!!!</web:Message>
</web:SendSMSToIndia>
</soapenv:Body>
</soapenv:Envelope>
******************************************************************
******

16. To get Request Content


def groovyUtils = new
com.eviware.soapui.support.GroovyUtils(context)
def reqHolder = groovyUtils.getXmlHolder("OperationName#Request")

reqHolder holds all the request XML content.

Note :- “reqHolder” we will use same variable in our next scripts.

17. To get or Read request XML tag/Element value

Consider above sample request xml, in that we have three fields 1. MobileNumber,
2. FormEmailAddress and 3. Message.

To get value from each filed use below code.

Syntax :- holder.getNodevalue(“XPATH of xml element name”)

log.info(reqHolder.getNodeValue(“//*:MobileNumber”))

www.pavanonlinetrainings.com
log.info(reqHolder.getNodeValue(“//*:FromEmailAddress”))

log.info(reqHolder.getNodeValue(“//*:Message”))

OutPut :- 9879879785465
mail@email.com
Hi Hello!!!!!

18. To Set values to Request XML tag/element

Syntax :- holder.setNodevalue(“XPATH of xml element name”,”String value”)

reqHolder.setNodeValue(“//*:MobileNumber”, ”2487987646”)

reqHolder.setNodeValue(“//*:FromEmailAddress”, ”email@mailer.com”)

reqHolder.setNodeValue(“//*:Message”, ”Hello World”)

reqHolder.updateProperty () // this line of code will save the request


xml.

19. To Get count of xml tag/element

Syntax :- holder[Count(“xml element xpath”)]

log.info(reqHolder["count(//*:MobileNumber)"])

log.info(reqHolder["count(//*:FromEmailAddress)"])

log.info(reqHolder["count(//*:Message)"])

OutPut :- 1
1
1

20. Reading response


******************* Sample Response XML *************************
Note :- Here I have taken sample response xml from “SendSMSToIndia” service
(http://www.webservicex.net/SendSMS.asmx)

www.pavanonlinetrainings.com
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SendSMSToIndiaResponse xmlns="http://www.webserviceX.NET">
<SendSMSToIndiaResult>
<FromEmailAddress>mail@gmail.com</FromEmailAddress>
<MobileNumber>9879879785465</MobileNumber>
<Provider>Not Covered</Provider>
<State>Not Covered</State>
<Status>Not Covered</Status>
</SendSMSToIndiaResult>
</SendSMSToIndiaResponse>
</soap:Body>
</soap:Envelope>****************************************************
*****

Note :- Here we will use same groovyutills class object as we are already created
(groovyUtils) object above in at section 16.
def resHolder = groovyUtils.getXmlHolder("OperationName#Response")

resHolder holds all the response XML content.

Note :- “resHolder” we will use same variable in our next scripts.

To read or get value from response xml


Syntax :- holder.getNodevalue(“XPATH of xml element name”)

log.info(resHolder.getNodeValue(“//*:FromEmailAddress”))

log.info(resHolder.getNodeValue(“//*:MobileNumber”))

log.info(resHolder.getNodeValue(“//*:Provider”))

log.info(resHolder.getNodeValue(“//*:State”))

log.info(resHolder.getNodeValue(“//*:Status”))

OutPut :- mail@gmail.com
9879879785465
www.pavanonlinetrainings.com
Not Covered
Not Covered
Not Covered

21. If… else condition.

Syntax :- If(condition){
…….
}
else{
…….
}

If(“Groovy”.equals(“Groovy”)){ if(“Groovy”.equals(“Groovi”)){

log.info(“Pass”) log.info(“Pass”)

}else{ }else{

log.info(“Fail”) log.info(“Fail”)

} }

OutPut :- Pass OutPut :- Fail

If(10==10){ if(5==8){

log.info(“Pass”) log.info(“Pass”)

}else{ }else{

log.info(“Fail”) log.info(“Fail”)

} }

OutPut :- Pass OutPut :- Fail

22. If …. else if…else condition

Syntax :- If(condition){
…….
}
else if{
…….
}
else if{
…….
}
else{

www.pavanonlinetrainings.com
…….
}

If(“Groovy”.equals(“Groovy”)){ If(“Groovy”.equals(“Groov”)){

log.info(“Groovy”) log.info(“Groovy”)

}else if(“SoapUI”.equals(“SoapUI”)){ }else if(“SoapUI”.equals(“Soap”)){

log.info(“SoapUI”) log.info(“SoapUI”)

} }

else{ else{

log.info(“Fail”) log.info(“Condition Not Met”)

} }

OutPut :- Groovy or SoapUI OutPut :- Condition Not Met

If(25==25){ If(25==50){

log.info(25) log.info(25)

}else if(48==48){ }else if(48==84){

log.info(48) log.info(48)

} }

else{ else{

log.info(“Fail”) log.info(“Condition Not Met”)

} }

OutPut :- 25 or 48 OutPut :- Condition Not Met

23. For loop


Syntax :- for(initialization ; condition ; statement){
Statement block
}

for(int i = 1; i<=5;i++){
log.info(i)
}

OutPut :- 1
2

www.pavanonlinetrainings.com
3
4
5

24. How to remove attributes present in XMLtag element


For example:- To configure or set values to element or tag which has ‘nil’
attributes.
Follow the below steps to remove the ‘nil’ attribute from xml tag/element and
provide values to it.

Consider sample request xml tag which ‘nil’ attribute as below,


<sendSMSMessage xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

def sendSMSMessageNode = reqHolder.getDomNode("//*:sendSMSMessage


")

sendSMSMessageNode.attributes.removeNamedItem("xsi:nil")

sendSMSMessageNode.attributes.removeNamedItem("xmlns:xsi")

reqHolder.setNodeValue("//*:sendSMSMessage ", “Hi Hello!!!!!!” )

Here sendSMSMessageNode.attributes.removeNamedItem(“….”) removes attributes


present in xml tag.

www.pavanonlinetrainings.com

You might also like