空手道功能中的访问加特林会话状态

时间:2018-10-17 11:02:13

标签: gatling karate

我想从空手道功能中访问加特林会话。这可能吗?

例如,我要使用的加特林会话中有一个userId字段。

我的用例: 我有一个功能,可以创建一个所谓的应用程序,每个应用程序都需要一个唯一的appId,因此我想在应用程序名称后附加userId变量,以有效地为每个虚拟用户提供自己的appId。 / p>

Feature: Run an app

  Background:
    # userId is taken from gatling session
    * def appId = 'run_perf' + userId

如果空手道允许像其他变量一样使用加特林会话变量,那将很酷。 因此,如果我访问foo变量,则空手道将首先检查此变量是否定义为“常规”空手道变量,如果找不到,则可以检查是否在加特林会话中定义了该变量。 / p>

编辑:

val runApp = scenario("runApp").exec(karateFeature("classpath:performance/createAndRunApp.feature"))

  setUp(
    runApp.inject(atOnceUsers(50)).protocols(protocol)
  )

如果createAndRunApp.feature使用常数appId(例如:myId)并且我使用50个虚拟用户运行此功能,则他们所有人都将尝试使用ID { {1}}和49将失败,因为具有该ID的应用程序已经存在。 我想要的是用户1使用appId myId,用户2使用myId1,依此类推。这可以通过将来自myId2的{​​{1}}字段的值附加到常量appId来实现,或者也可以通过附加一些随机ID(例如userId)来实现,在报告中很难看到我从Session得知哪个用户发出了请求cos,

1 个答案:

答案 0 :(得分:0)

我在理解此示例时遇到了一些麻烦。

它的设计方式是假定所有逻辑都在空手道中。因此,只要您可以调用一些可重复使用的脚本并将变量返回到“调用”脚本中,您就应该拥有所需的所有信息。

我希望您能说出一个顶级user-flow.feature,它调用一个create-app.feature,该com.blade.Blade将创建的应用程序ID返回给调用者-一切正常。

您当然可以提交功能请求-但我确实需要一个简单但独立的示例,以便我可以了解您在加特林会议中变量的含义。