我想从空手道功能中访问加特林会话。这可能吗?
例如,我要使用的加特林会话中有一个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,
答案 0 :(得分:0)
我在理解此示例时遇到了一些麻烦。
它的设计方式是假定所有逻辑都在空手道中。因此,只要您可以调用一些可重复使用的脚本并将变量返回到“调用”脚本中,您就应该拥有所需的所有信息。
我希望您能说出一个顶级user-flow.feature
,它调用一个create-app.feature
,该com.blade.Blade
将创建的应用程序ID返回给调用者-一切正常。
您当然可以提交功能请求-但我确实需要一个简单但独立的示例,以便我可以了解您在加特林会议中变量的含义。