Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
8 views

Basics of Groovy Script

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Basics of Groovy Script

Copyright
© © All Rights Reserved
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