How do I store a bearer token value within a WS

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