.net nBomber运行数百次,即使我们指定副本:1

ukqbszuj  于 2023-02-06  发布在  .NET
关注(0)|答案(1)|浏览(110)

我偶然发现了这个非常好的.NET负载测试工具,并编写了我的第一个代码:

var connectStep = Step.Create("ConnectReceive", async context =>
{
    Console.WriteLine("Step was executed.");

    return Response.Ok();
});

var scenario = ScenarioBuilder.CreateScenario("LotsOfConnections", connectStep)
    .WithLoadSimulations(Simulation.KeepConstant(copies: 1, during: TimeSpan.FromSeconds(10)));

NBomberRunner.RegisterScenarios(scenario).Run();

但是,当我运行这个程序时,我在控制台屏幕上看到Step was executed数百次。我指定了copies: 1, during: TimeSpan.FromSeconds(10),所以根据我的理解,它应该在10秒内只运行一次。为什么它会运行很多次

jv4diomz

jv4diomz1#

  • 为什么它会运行无数次 *

根据此负载模拟简介示例,"KeepConstant运行固定数量的方案副本(线程),并在指定的时间内执行尽可能多的迭代。"
现在还不清楚你想要什么样的场景。

  • 您希望它只运行一次,但需要10秒吗?如果是这样,您可以向场景添加一个步骤,在连接步骤之后休眠10秒,并从场景中删除.WithLoadSimulations
  • 是否希望方案运行多次,但每10秒仅运行一次?如果是,可以向方案添加一个步骤,使其在连接步骤之后休眠10秒,然后向负载模拟添加更长的持续时间:

例如:

var connectStep = Step.Create("ConnectReceive", async context =>
{
    Console.WriteLine("Step was executed.");    
    return Response.Ok();
});

var sleepStep = Step.Create("Sleep", async context =>
{
    await Task.Delay(TimeSpan.FromSeconds(10));
    return Response.Ok();
});

// Connect to our system once every 10 seconds for a minute
var scenario = ScenarioBuilder
    .CreateScenario("ManyConnections", connectStep, sleepStep);
    .WithLoadSimulations(Simulation.KeepConstant(copies: 1, 
        during: TimeSpan.FromMinutes(1)));

相关问题