【问题标题】:How to set up the JWT token before the VS loadtest如何在 VS loadtest 之前设置 JWT 令牌
【发布时间】:2018-09-23 01:12:24
【问题描述】:

我正在尝试运行 Visual Studio 负载测试,但在它运行之前,我必须调用登录 webAPI 以生成 JWT 令牌,然后在所有 webAPI Web 测试中使用此令牌。

我只需要调用一次登录来生成令牌。我在所有其他 webAPI 调用中都使用了相同的令牌值。在真正触发负载测试之前,如何将此步骤放入负载测试中?

【问题讨论】:

  • 我已经编辑了这个问题,我希望它现在更清楚了。如果我误解了您的要求,请edit纠正它。

标签: visual-studio performance-testing load-testing msloadtest


【解决方案1】:

负载测试的“测试组合”部分可以指定可以进行登录和收集令牌的“初始化”测试。负载测试的上下文参数 (CP) 之一是 $LoadTestUserContext。这旨在保存为同一虚拟用户 (VU) 执行的测试之间的值。登录测试可以将令牌保存到$LoadTestUserContext 中,其他测试可以从那里访问它。

请注意,每个 VU 都有自己的$LoadTestUserContext。如果场景中的“新用户百分比”很高,则新 VU 的初始化测试(即登录测试)将执行多次。

如果所有 VU 都应该使用相同的令牌值,那么另一种可能性是创建一个执行登录测试一次的场景,方法是将该场景的迭代属性设置为 1;还设置了1 的恒定负载。该测试可能有一个PostRequestPostWebTest 插件,将令牌值保存到某个类的static 变量中。第二个场景然后运行所有真实负载测试用例,它的“延迟开始时间”属性可能是几秒钟,足够长的时间来运行登录测试。这些测试的插件可以将static 值写入测试的CP。

【讨论】:

  • 感谢您的回答。对于第二种方式,您的意思是我需要编写一个请求后插件来将令牌分配给静态变量吗?
  • 当我使用本地设置和任意数量的线程运行负载测试时,这种方式适用于我的测试。但是当我从遥控器和代理运行测试时。如果我在负载测试中有多个线程用于 Web 请求,则令牌值并不总是正确分配。一些请求很好,大多数请求由于“401 Missing Jwt Token”而失败。你知道有什么问题吗?谢谢
  • @Geri,有多少台代理计算机?可能每个代理都获得了不同的令牌值。测试套件被复制到每台代理计算机,并且每种“类型”都独立于其他运行测试。上面的“线程”是什么意思?
  • 是的,你是对的,我为每个代理生成令牌,它工作正常。再次感谢。
猜你喜欢
  • 2020-11-09
  • 2017-05-20
  • 2017-08-15
  • 2017-11-04
  • 1970-01-01
  • 2021-08-24
  • 2020-03-23
  • 2021-07-12
  • 2021-11-02
相关资源
最近更新 更多