Есть ли способ получить sessionStorage с использованием карате DSL? - PullRequest
2 голосов
/ 15 января 2020

Мне нужно получить токен аутентификации, который хранится под ключом sessionStorage, и использовать его для других вызовов API. Я использую автоматизацию пользовательского интерфейса Karate для доступа к браузеру и доступа к странице, но я не смог получить доступ к sessionStorage. Я также думал об использовании некоторого JS, чтобы получить его, но я не уверен, будет ли работать. У кого-нибудь есть идеи?

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Должно быть легко с помощью script(). Я только что попробовал эти 2 утверждения в тесте, и он работал нормально:

* 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

0 голосов
/ 15 января 2020

Я предполагаю, что у вас есть вызов API, который регистрирует вас и получает ключ sessionStorage? Вы можете создать файл объектов, который отправляет данные для входа в систему, а затем записывает ключ sessionStorage, который вы получаете из ответа.

например, Background:

* 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, который вы можете вызвать этот файл функции.

...