Я хотел бы получить доступ к сеансу гатлинга из каратэ.Возможно ли это?
Например, в сеансе гатлинга присутствует поле userId
, которое я хочу использовать.
Мой вариант использования: у меня есть функция, в которой я создаюназывается app, и каждому приложению нужен уникальный appId, поэтому я хочу использовать добавление переменной userId
к имени приложения, фактически давая каждому виртуальному пользователю свой собственный appId.
Feature: Run an app
Background:
# userId is taken from gatling session
* def appId = 'run_perf' + userId
Это было бы крутоЕсли каратэ позволяет использовать переменные сеанса Гатлинга, как и любые другие переменные.Поэтому, если я получу доступ к переменной foo
, каратэ сначала проверит, определена ли эта переменная как «нормальная» переменная каратэ, и если она не найдет ее, она может проверить, определена ли такая переменная в сеансе gatling.
edit:
val runApp = scenario("runApp").exec(karateFeature("classpath:performance/createAndRunApp.feature"))
setUp(
runApp.inject(atOnceUsers(50)).protocols(protocol)
)
Если createAndRunApp.feature
использует константу appId
(например: myId
), и я запускаю эту функцию с 50 виртуальными пользователями, все из них попытаются создатьприложение с идентификатором myId
и 49 завершится ошибкой, поскольку приложение с таким идентификатором уже существует.Я хочу, чтобы пользователь 1 использовал appId myId1
, пользователь 2 использовал myId2
и так далее.Это может быть достигнуто путем добавления значения поля userId
из gatling Session
к константе appId, или это также может быть достигнуто путем добавления некоторого случайного идентификатора, такого как UUID
, но его труднее увидеть в отчетах.какой пользователь сделал запрос, потому что я не могу знать от appId{Some-UUID}
, каким пользователем это было.