[WS] Verify Element Text

Description

Verify an element with expected text appeared in the returned data from a web service call.

Parameters 

Parameter Parameter Type Mandatory Description
response  ResponseObject  Required Represent an HTTP Response, the user can get responded content type, data, header properties (sometimes the user may want to get cookies from response header)
locator  String  Required The element locator that Katalon uses to look for the expected data. To learn more about element locators, you can refer to this document: Handle Response messages.
text  String  Required The expected text of element you want to verify in the responded data (usually is JSON/XML)
flowControl  FailureHandling  Optional Specify failure handling schema to determine whether the execution should be allowed to continue or stop. To learn more about failure handling settings, you can refer to this document: Failure handling.

Returns

  • true, if your element text is found, otherwise; false.

Example

Given the following sample SOAP_TransactionResult SOAP object:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <ns:PreAuthorizeResponse xmlns:ns="beep" xmlns:ns2="bop" xmlns:ns1="foo" >
      <ns:Receipt>
        <ns1:DataKey>123</ns1:DataKey>
        <ns1:CustomerId>12345</ns1:CustomerId>
        <ns1:PaymentId>123456</ns1:PaymentId>
        <ns1:TransactionResult>Approved</ns1:TransactionResult>

We want to verify the TransactionResult element in the SOAP response after sending the request. You can use the WS.verifyElementText() keyword as below:

import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import internal.GlobalVariable as GlobalVariable
import com.kms.katalon.core.testobject.ConditionType as ConditionType
import com.kms.katalon.core.testobject.RequestObject as RequestObject
import com.kms.katalon.core.testobject.TestObjectProperty as TestObjectProperty
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WebAPI
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint

'Send a SOAP request and returns its response'
def response = WS.sendRequest(findTestObject('SOAP_TransactionResult'))

'Verify the selected element in the response'
WS.verifyElementText(response, 'PreAuthorizeResponse.Receipt.TransactionResult', 'Approved')

Notices:

Katalon checks if the XML element content text is strictly equal to the expected value. For example, if there is whitespace after the Approved value, you need to add it to the third arguement as below:

WS.verifyElementText(response, 'PreAuthorizeResponse.Receipt.TransactionResult', 'Approved ')

See also

Feedback