【发布时间】:2020-01-14 23:11:33
【问题描述】:
我目前需要获取一个在 sessionStorage 密钥下保存的身份验证令牌,并将其用于其他 API 调用。我正在使用空手道 UI 自动化来访问浏览器并访问页面,但我无法访问 sessionStorage。我也想过用一些 JS 来获取它,但我不确定是否可以。有人有什么想法吗?
【问题讨论】:
标签: javascript java karate session-storage
我目前需要获取一个在 sessionStorage 密钥下保存的身份验证令牌,并将其用于其他 API 调用。我正在使用空手道 UI 自动化来访问浏览器并访问页面,但我无法访问 sessionStorage。我也想过用一些 JS 来获取它,但我不确定是否可以。有人有什么想法吗?
【问题讨论】:
标签: javascript java karate session-storage
使用script() 应该很容易。我刚刚在测试中尝试了这两个语句,它运行良好:
* script("sessionStorage.setItem('foo', 'bar')")
* match script("sessionStorage.getItem('foo')") == 'bar'
我使用的是 0.9.5.RC5 版本,文档在这里:https://github.com/intuit/karate/tree/develop/karate-core#script
【讨论】:
我假设您有一个 API 调用可以让您登录并获取 sessionStorage 密钥? 您可以创建一个功能文件,发送详细信息以登录,然后记录您从响应中返回的 sessionStorage 密钥。
例如 背景:
* def userData = read('classpath:userData.json')
Scenario: Login user and get session token for subsequent tests
Given baseUrl 'www.yoursite.com/LoginRequest'
And request userData
When method POST
Then status 200
And def r = response
* def token = r.Key1
* header Authorization = token
那么任何时候您需要获取 sessionStorage 密钥,您都可以调用该功能文件。
【讨论】: