Доступ к состоянию сеанса гатлинга в каратэ - PullRequest
0 голосов
/ 17 октября 2018

Я хотел бы получить доступ к сеансу гатлинга из каратэ.Возможно ли это?

Например, в сеансе гатлинга присутствует поле 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}, каким пользователем это было.

1 Ответ

0 голосов
/ 17 октября 2018

У меня небольшие проблемы с пониманием этого примера.

То, как он спроектирован, предполагает, что вся логика в каратэ.Так что, пока вы, возможно, вызываете некоторые повторно используемые сценарии и возвращаете переменные обратно в «вызывающий» сценарий, у вас должна быть вся необходимая информация.

То, что я ожидал, - это то, что вы говорите верх-level user-flow.feature, который вызывает create-app.feature, который возвращает созданный идентификатор приложения вызывающей стороне - и все просто работает.

Вы, безусловно, можете отправить запрос на добавление функции, но мне действительно нужно простоено самодостаточный пример, чтобы я мог понять, что вы подразумеваете под переменной в сеансе Гатлинга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...