AntyaDev on dev
version 3.0.1-rc (compare)
AntyaDev on dev
version 3.0.0-rc (compare)
AntyaDev on dev
version 3.0.0-beta.11 (compare)
AntyaDev on dev
added "cluster_id" tag added "c… (compare)
AntyaDev on dev
version: 3.0.0-beta.10 (compare)
AntyaDev on dev
version: 3.0.0-beta.10 (compare)
AntyaDev on dev
version: 3.0.0-beta9 (compare)
AntyaDev on dev
version: 3.0.0-beta9 (compare)
AntyaDev on dev
version 3.0.0-beta7 (compare)
AntyaDev on dev
version: 3.0.0-beta7 (compare)
AntyaDev on dev
version 3.0.0-beta6 (compare)
AntyaDev on dev
version 3.0.0-beta6 (compare)
AntyaDev on dev
replaced task on native backgro… (compare)
AntyaDev on dev
version: 3.0.0-beta5 (compare)
AntyaDev on dev
added ability to set Connection… version: 3.0.0-beta5 (compare)
AntyaDev on dev
version: 3.0.0-beta5 added ability to set Connection… (compare)
AntyaDev on dev
version: 3.0.0-beta2 updated F# Core (compare)
AntyaDev on dev
version 3.0.0-beta2 (compare)
AntyaDev on dev
version 3.0.0 (compare)
Hey everyone,
I wanted to check if anyone else is having an issue with getting the reporting sinks to work for NBomber 3.x? I am having an issue saying that method "withReportingSinks" on NBomberContext is not valid as no definition found. This is both for the C# and F# contracts
Having a look through the repo, this method was available in 2.x but was removed from 3? This is using the standard NBomber nuget package.
I checked the the contracts in the repo, and you can see this is present for tag 2.1.2 - https://github.com/PragmaticFlow/NBomber/blob/v2.1.2/src/NBomber/Api/FSharp.fs
But not from 3 and up as it seems to have been replaced with ReportingContext, but there is no method to set the ReportSinks for the context.
All the docs and examples in the repo point to using this? Hope someone can shed some light
Hey,
Is there a way to run scenarios one after the other rather than all in parallel? I want to test the same scenario with different load simulations. I created 2 scenarios and duplicated the step code, one scenario is a constant simulation, the other is ramp per sec.
var stats = NBomberRunner
.RegisterScenarios(constant,ramp)
.WithReportFormats(ReportFormat.Html)
.WithReportFolder(Path.Combine(parentDir!, ".buildartifacts", "loadtest"))
.Run();
I'd like to run the first scenario, then the second. Is this possible?
Thanks
I have the following code
var scenario = Scenario.Create("LotsOfConnections", async context =>
{
Response<string> step1 = await Step.Run("ConnectReceive", context, async () =>
{
var reportTest = new ReportTest();
await reportTest.Start();
return Response.Ok(payload: "ConnectReceive response", sizeBytes: 10);
});
return Response.Ok();
})
.WithoutWarmUp()
.WithLoadSimulations(Simulation.KeepConstant(copies: 20, during: TimeSpan.FromMinutes(10)));
NBomberRunner.RegisterScenarios(scenario).Run();
each reportTest.Start()
creates one single connection to signalR. Based on the above it should open 20 connections but this is not the case. I use perf counters for signalr and I can see that it opens over 100 and sometimes even more than 1000
FeedData
and HttpClientFactory
. Am I missing something, or are they now a part of a separate nuget? Also, are there any restrictions to add Data
property to IScenarioInitContext
? In my case that would be very helpful. Instead of storing data as a mutable binding right above the scenario, we would be able to set data immediately to context (like OAuth Bearer prior to main flow) or cleanup data with withClean
. For now, as a workaround it looks like thislet mutable customSettings = ValueNone
let mutable bearerToken = ValueNone
let basicScenario =
Scenario.create("basic_scenario", (fun ctx -> task {
use httpClient = new HttpClient()
ctx.Data.Add("Host", customSettings.Value.BaseUri)
httpClient.BaseAddress <- ctx.Data["Host"] |> string |> Uri
ctx.Data.Add("BearerToken", bearerToken.Value)
ctx.Logger.Information("Starting {ctx.ScenarioInfo.ScenarioName}")
return Response.ok()
}))
|> Scenario.withInit (fun ctx -> task {
let! settings = InitClean.withCustomSettings ctx
customSettings <- ValueSome settings
let! token = InitClean.createBearerToken settings ctx
bearerToken <- ValueSome token })