Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JMeter test equivalent in NBomber #642

Closed
botondberes opened this issue Dec 13, 2023 · 8 comments
Closed

JMeter test equivalent in NBomber #642

botondberes opened this issue Dec 13, 2023 · 8 comments

Comments

@botondberes
Copy link

I'm trying to make a case for NBomber over JMeter but I have trouble getting my scenario to behave as the test in JMeter.

Can someone please help me figure out what this JMeter configuration translates to in NBomber?:

image

My assumption was that this would translate into these calls:

            .WithoutWarmUp()
            .WithLoadSimulations(
                Simulation.RampingInject(rate: 100,
                                        interval: TimeSpan.FromSeconds(1),
                                        during: TimeSpan.FromSeconds(10))

But that doesn't seem to be it because after running this, JMeter shows over 54k requests at over 5k RPS as you can see below, whereas NBomber shows 450 at 45 RPS:

image

image

Any help is appreciated!

@AntyaDev
Copy link
Contributor

Hi @botondberes ,

Can you please try

Simulation.KeepConstant(copies: 100, during: TimeSpan.FromSeconds(10))

and also

Simulation.Inject(rate: 100, interval: TimeSpan.FromSeconds(1), during: TimeSpan.FromSeconds(10))

@AntyaDev
Copy link
Contributor

@botondberes
By looking at your Jemeter I think you shouldn't use RampingInject since it will inject users slowly (over 10 sec) in your case.
https://nbomber.com/docs/nbomber/load-simulation#ramping-inject

@botondberes
Copy link
Author

@AntyaDev Thank you very much for your quick response. KeepConstant seems to be the closest. I assume it kicks off with 100 copies immediatelly instead of ramping them up over a second compared to JMeter but it's close enough. To be fair, ramping up to 100 over a second doesn't really seem realistic anyway. Running JMeter with 0 seconds ramp-up is essentially the same as KeepConstant and shows that NBomber is about 9.5k requests faster than JMeter.

Could you answer one more question for me?
If I have two scenarios registered in NBomberRunner, is there a flag to make those run sequentially instead of parallel or do I have to create two runners and feed each it's own scenario instead?

@AntyaDev
Copy link
Contributor

Unfortunately, there is no such flag to run them sequentially.
Do you want to run them sequentially and get a single HTML report containing both of them?

@botondberes
Copy link
Author

botondberes commented Dec 14, 2023

Yes, ideally it would be one report containing them both. The idea here is that if both scenarios target the same host, it might not be beneficial to have them run in parallel. For example if the tests are not for load or spike testing but functionality validation and testing how long it takes for requests to be processed under normal circumstances (get a baseline).

@AntyaDev
Copy link
Contributor

Hi @botondberes
Sure, it sounds reasonable.
I would suggest submitting a dedicated task for this feature.
Also, if your company has a license for NBomber then such tasks usually get higher priority.

@botondberes
Copy link
Author

I think the sequential feature request already exists here: #494

Thanks for your quick responses. We're in the process of deciding which way to go. I'll keep you posted!

@AntyaDev
Copy link
Contributor

Hi @botondberes
thank, I have added a task for this: #643

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants