如何在多个场景中共享身份验证令牌?

时间:2014-11-26 17:44:27

标签: session-variables gatling

我正在使用gatling 2.0.3,我正在寻找执行单链并在运行某些复杂场景之前存储身份验证令牌。但我无法找到一种方法来跨场景共享令牌,而不是首先执行auth链并将其写入文件,由馈送器拾取。有没有正确的方法来做到这一点?

before{
    scenario_get_auth.inject(
        //make auth call and save to file for feeder
    )
}.protocols(default_http)

setUp{
    scenario_load_one.inject(
       constantUsersPerSec(10).during(test_duration_secs)
    )
    scenario_load_two.inject(
       constantUsersPerSec(1-).during(test_duration_secs)
    )
}.protocols(default_http)

2 个答案:

答案 0 :(得分:3)

最近在our mailing list上回答了类似的问题。

基本上,您必须使用全局ConcurrentHashMap。

答案 1 :(得分:0)

我正在寻找类似的东西,但无法使用 @Stephane 建议的 Concurrent HashMap,因为我的访问令牌在一个小时后到期。

这是一个 gist 的代码片段,我在 Guava Cache 之上创建了一个包装器,依赖于 ScalaCache

这允许我们在实际令牌过期之前使缓存条目过期。因此,我们不需要在模拟中添加额外的 401 状态代码处理。