Hi guys,
How do I store a bearer token value retrieved (value withing the red box in the image) from a POST response in WS?
I would like to store the value in a Global variable. This value will be used in other test cases
Hi guys,
How do I store a bearer token value retrieved (value withing the red box in the image) from a POST response in WS?
I would like to store the value in a Global variable. This value will be used in other test cases
Hello,
use JSON slurper to parse getResponseText() from there you can access and store value as you wish.
If you use only TestObject storage i think verify scripts can be utilized for what you want achieve.
Hi @Andrej_Podhajsky, How would one do this? Could you possibly provide a code snippet example?
Regards
hello, so to get and store secure part of cookie i created custom keyword:
package com.swre
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
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 com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.checkpoint.Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords
import com.kms.katalon.core.model.FailureHandling
import com.kms.katalon.core.testcase.TestCase
import com.kms.katalon.core.testcase.TestCaseFactory
import com.kms.katalon.core.testdata.TestData
import com.kms.katalon.core.testdata.TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository
import com.kms.katalon.core.testobject.TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords
import internal.GlobalVariable
import org.openqa.selenium.WebElement
import org.openqa.selenium.WebDriver
import org.openqa.selenium.By
import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory
import com.kms.katalon.core.webui.driver.DriverFactory
import com.kms.katalon.core.testobject.RequestObject
import com.kms.katalon.core.testobject.ResponseObject
import com.kms.katalon.core.testobject.ConditionType
import com.kms.katalon.core.testobject.TestObjectProperty
import com.kms.katalon.core.mobile.helper.MobileElementCommonHelper
import com.kms.katalon.core.util.KeywordUtil
import com.kms.katalon.core.webui.exception.WebElementNotFoundException
import org.openqa.selenium.Cookie
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
class cookie {
@Keyword
def setRRCookie() {
WebUI.navigateToUrl('https://serviceToGrabCookieFrom/')
//in my case LtpaToken2
def myCookie = DriverFactory.getWebDriver().manage().getCookieNamed("LtpaToken2")
GlobalVariable.rrCookie = myCookie
}
}
definition of global variable is here:
<GlobalVariableEntity>
<description></description>
<initValue>null</initValue>
<name>rrCookie</name>
</GlobalVariableEntity>
and use in script is like this:
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.logging.KeywordLogger
import com.kms.katalon.core.util.KeywordUtil as KU
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import internal.GlobalVariable
def slurper = new groovy.json.JsonSlurper()
CustomKeywords.'com.swre.cookie.setRRCookie'()
def rsp01 = WS.sendRequest(findTestObject('Object Repository/IRAMP-RR/RR_REST/GetCreatedCalcs',[('RRID'): this.RRID]))
assert rsp01.getStatusCode() == 200
KU.logInfo("*** text of rsp01.getResponseText \n${rsp01.getResponseText()}")
def calcsOfRR = slurper.parseText(rsp01.getResponseText())
object definition:
Many thanks @Andrej_Podhajsky for the comprehensive explanation
Very much appreciated