c#线程安全随机长在Visual Studio负载测试中使用

本文关键字:测试 负载 Studio Visual 安全 线程 随机 | 更新日期: 2023-09-27 18:16:34

我使用Visual Studio Load Test (Enterprise)通过REST调用执行API负载测试。我正在测试的一个端点需要在100000000000000到999999999999999范围内为每个POST提供唯一的长值。

作为Visual Studio Load Test线程请求,使用基于系统时钟种子的随机生成器会导致大量重复(对于60秒内的4000个随机数,我看到了数百个重复)。

有谁知道我如何实现一个随机生成器线程安全的使用在Visual Studio负载测试?

c#线程安全随机长在Visual Studio负载测试中使用

您可以使用静态变量,并为每个请求增加其值。

不是随机的,如果您需要的只是不同的数字,那么您可以使用上下文值$WebTestIteration。如果使用多个代理,则可以使用$WebTestIteration * numberOfAgents + $AgentId之类的代理。当然,第二,这些值在上下文中所以表达式更像是

int.Parse(e.WebTest.Context["$WebTestIteration"]) * numberOfAgents
    + int.Parse(e.WebTest.Context["$AgentId")

Try with Interlocked:

Interlocked.Increment(ref longCount);