PerformanceMonitorInterceptor : Logging time in ns - spring

I'm using Aspects Pointcut to trace the execution time of my SQL call.
Similar to - no logging for PerformanceMonitorInterceptor.
I'm able to see the trace logs with the respective response time. I see the logged time is in ns unit. Is that the default unit or is there a way we can enforce to print the response time in ms?
Plz assist!

Related

Does the Constant Timer added in my HTTP Request affect the results in the Summary Report?

I have a HTTP Request in my Thread Grpup that takes around 20 to 30 seconds to complete with a single user, so when I added 50 users I get a 500/Internal Server Error or 503/Server has been shutdown sometimes.
I want to add a Constant Timer with 40 seconds (in miliseconds) under the HTTP Request so maybe the application will have some time to process it. I am going to the rigth way?
If I add the Constant Timer will it be calculate as well in the Summary Report?
I need that the Jmeter give the time to the API (My aplication) complete the process (need at least 30 seconds) and it may be or not affetct my Summary Report
PreProcessors, Post-Processors and Timers are not counted in the Elapsed time. so response time will not be impacted.
However Throughout (the number of requests for the test duration) will be lower.
See JMeter Glossary for more information on the above metrics.
With regards to "right way" - real users don't "hammer" application non-stop, they need some time to "think" between operations so if you're simulating a real user you should have non-zero think time, however 40 seconds it kind of too much for me. Take a look at How to make JMeter behave more like a real browser article for more tips on properly configuring your JMeter test.

Concurrent Thread and Ultimate Thread Group and Performance Bench mark

While understanding concept of Concurrent thread and ultimate thread group, i am confused to understand result of summary/aggregate report while running concurrent thread or ultimate thread group .For example if i have 200 user and ramp up time 60 sec then i didn't see all sampler request as 200 sample after completing execution successfully but only few sampler request have 200 sample. when i use normal thread group then i always got thread count same for each sampler request after completing execution .
for realistic load testing with more user , could you please suggest me which thread group should prefer.
Could you please provide valuable guidance with some valuable link/book and also share me standard performance bench mark criteria or key parameter detail while doing load testing.(if any bench load parameter value does not meet standard then we can say that there is a performance issue)
Thanks for giving valuable time in advance.
Thanks
amit
This is due to the fact that:
Your application response time is too high
Your test duration is too low
For example I can see response times > 80 seconds:
it means that if a single virtual user has cumulative response time for 2 samplers > 160 seconds and the test duration is 120 seconds it will not be able to execute all the requests. Just increase your test duration to be i.e. 10 minutes and you should see more virtual users capable of executing all the Samplers you defined in the test plan.
Also given first user is capable of executing all the requests successfully and in time it looks like that your application gets overloaded hence cannot respond fast enough when the number of concurrent users reaches some "critical threshold", you can add listeners like Active Threads Over Time and Response Times vs Threads, this way you will be able to correlate increasing load with the increasing response time.
If also makes sense to collect:
Baseline health metrics of your application (CPU, RAM, Network, Disk usage, etc.), it can be done using JMeter PerfMon Plugin.
Lower level details like slowest methods, largest objects, heaviest database queries, etc. This form of information can be obtained using profiling tools specific to your application programming language(s).

JMeter shows result but the result is not visible in log (Debug)

I just finished a test case in JMeter and the result is fine; however, I somehow want to see the result reflecting also in the log view.
For some reason, the Sample time (ms) is not reflecting on the log view (Log level: Debug)
Does someone have an idea on how to display that too?
Add listeners to your test plan. Aggregate report and Tree view result, for example.
But use them only for debugging your tests.
I don't think JMeter will report response times in the log file even given you set the most verbose logging level, if you want to have this data in log - I would recommend going for JSR223 Listener instead.
Add JSR223 Listener to your test plan at the same level as all your Samplers live (or according to JMeter Scoping Rules if you want limited samplers to be affected)
Put the following code into "Script" area:
log.info(prev.getSampleLabel(true) + ' response time: ' + prev.getTime())
That's it, now you will be able to see the response times in the jmeter.log file

response time values in aggregate report does not make sense in jmeter

I did a run with 400 Vus with following settings:
-> A Transaction controller as "Launch" with 1 request under it.The option to include timer & pre-post processor was disabled.
The 90%tile response time in aggregate report shows 8.9 sec for the request and 65 sec for the Launch transaction.
So,I am not getting as how the complete transaction takes 65 sec while the request takes around 9 secs
Putting just 1 request under Transaction Controller does no make any sense as the values from the request and from Transaction Controller will be the same.
The whole idea of the Transaction Controller is getting view of how long request sequence took, i.e. if you have end-to-end scenario consisting from several individual requests you might be interested in how long did it take to execute them all.
See Using JMeter's Transaction Controller guide for more details on Transaction Controller use cases and clarification on configuration options.
If you have only one request under Transaction Controller and still obtain different results for the request itself and for the transaction it may indicate resource lack on JMeter side, i.e. load generator machine is short on RAM or CPU or you have memory-intensive listener enabled. See JMeter Performance and Tuning Tips for a checklist and configure your JMeter accordingly.

Jmeter- how to find the time taken for the report to generate

how to check the time taken for some report to generate using jmeter
In my application we need to submit report and check for the time taken for the report to be completed. it usually takes about 15-20 minutes. How to check that using jmeter.
I checked in Listener- View results in table , aggregate report - it doesn't have that info. Kindly help
In Jmeter you can use below logic to check for completion time of report generation activity.
and your report generation activity has columns similar to,
Which has start time and end time (from which you can get approx time for your report generation activity, this raises question if you see this through UI why are you saying, you cant find out execution time for report.)
If you want it in Jmeter load testing then probably you have a custom code(beanshell postprocessor) extracting both values from result and logging it into log file.
status check workflow would be somewhat like,
While controller ------- to loop continuously till our condition satisfied (my mistake, value should be status!=complete)
http request ---- Refresh reqeust
Constant time ---- delay of 2 seconds

Resources