Hi, I’ve had exposure to automation and Katalon for a month now and tried to figure this out, but after numerous tries, I am still struggling and would appreciate your advice regarding reading the content for the endPoint column. I’ve tried escaping the special characters where required, but still struggling. Thank you
The current state is as follows without escaping:
1. Data in my Excel file:
2. Test case Script:
//Get companies
def method1 = “GET”
def endPoint1 = “companies”
def body1 = ‘’
def status1 = 200
def returnString1 = WS.callTestCase(findTestCase(‘Test Cases/1_Reusable_UDF_Scripts/RequestBuilder’),
[body:body1, method:method1, status:status1, endPoint:endPoint1], FailureHandling.STOP_ON_FAILURE)
println returnString1
//Retrieve first company details
def valueId = returnString1.items[0].id
def valueName = returnString1.items[0].name
println(‘…Id extracted is : ’ +valueId)
println(’…Name extracted is : ’ +valueName)
GlobalVariable.companyId = valueId
def CompanyId = valueId
def CompanyName = valueName
//Create a new GET object using builder and process the data file
def fileName = GlobalVariable.GetFile
for (def row=1; row<=findTestData(fileName).getRowNumbers(); row++) {
String columnD = findTestData(fileName).getValue('method', row)
**String columnE = findTestData(fileName).getValue('endPoint', row)**
String columnF = findTestData(fileName).getValue('body', row)
String columnG = findTestData(fileName).getValue('status', row)
String columnH = findTestData(fileName).getValue('id', row)
String columnI = findTestData(fileName).getValue('parameters', row)
String columnJ = findTestData(fileName).getValue('testing', row)
def method = columnD
**def endPoint = URLEncoder.encode(columnE, "UTF-8")**
//If I use def endPoint = “companies/”+CompanyId it works
def body = columnF
def status = columnG
def id = columnH
def parameters = columnI
def testing = columnJ
if (columnD.equals("GET")) {
if (columnJ.equals("test")) {
// if (columnE.equals(“companies/+${CompanyId}”)) {
if (columnH.equals(“yes”)) {
def returnString = WS.callTestCase(findTestCase(‘Test Cases/1_Reusable_UDF_Scripts/RequestBuilder’),
[method:method, body:body, status:status, endPoint:endPoint, fileName:fileName],
FailureHandling.STOP_ON_FAILURE)
println returnString
3. Script in called test case: (Test Cases/1_Reusable_UDF_Scripts/RequestBuilder)
def builder = new RestRequestObjectBuilder()
def requestObject = builder
.withRestRequestMethod(method)
.withRestUrl(“${GlobalVariable.RestURL}”+endPoint)
.withHttpHeaders([
new TestObjectProperty(“Content-Type”, ConditionType.EQUALS, “application/json”),
new TestObjectProperty(“Authorization”, ConditionType.EQUALS, GlobalVariable.token)
])
.withTextBodyContent(body)
.build()
//‘Send the request’
def response = WS.sendRequest(requestObject)
//Verify status code
WS.verifyResponseStatusCode(response, ((status) as int))
//Write response details to the Console
KeywordUtil.logInfo(response.responseBodyContent)
//Parse response
def jsonSlurper = new JsonSlurper()
def testString = jsonSlurper.parseText(response.getResponseBodyContent())
return testString
}
}
}
}
- HAR: