Login/Logout is required in each scenario for performance testing? - jmeter-5.0

I have 10 scenarios. Each scenario needs to be run with different-different threads. Login/logout is required for functional testing but in performance testing . Is it required ?.If yes. Is there any way to do this ?

Well, Yes login / logout is also the part of application functionality and ideally it also requires a performance test.
You can use an if controller in jmeter for your test plan to test the login/logout of your application.
https://octoperf.com/blog/2019/03/28/jmeter-if-controller/

Related

Can we user selenium UI Regression Scripts to do performant testing

I need some input from loadrunner/jmeter experts.
I'm having automation scripts which is written in selenium+ java .
Can i use same scripts to do performance testing using loadrunner/jemeter.?
why i want do like this : to maintain single code base. if any changes happen so i will able to correct at one place and use it for UI Automation and performance testing.
Any help appreciate.
Selenium automates browsers that it!
Jmeter is specifically to use for Performance test. to be more specific either stress testing or load testing.
JMeter and Selenium can be used together for load testing of a website. Selenium is used to perform load testing and JMeter is used to measure the performance of the same. One can measure how fast HTML pages take to load, and also check javascript and CSS performances. This is done using a combination of the graphical JMeter interface and some scripting to invoke Selenium code.
Please read more about it here
JMeter and Selenium are both used for web application testing. But the main difference is that JMeter is mostly used to test the performance of web applications under load and stress. On the other hand, Selenium is best suited for automation and cross browser testing of a website. Based on what type of testing is necessary for the project, one can choose JMeter or Selenium or integrate both if that serves their purpose.
Theoretically yes, it is possible, but it is not recommended even by Selenium developers, be informed of the following additional constraints:
Browsers are quite resource intensive, for example Firefox 94 needs 1 CPU core and 2 GB of RAM per instance so you can calculate how much RAM you will need to simulate, say, 100 users.
You won't get metrics and KPIs normally available as the result of a performance test run

Trying to Performance test an application developed in OJET technology. Which tool/protocol should I use for scripting?

Trying to Performance test an application developed in OJET technology. Which tool/protocol should I use for scripting? I tried HTTP/Web protocol with Jmeter and Load Runner. But that doesn't capture all the requests and responses at the javascript/browser level. Hence I am facing issues in correlating the dynamic values during test design. Hence, scripts fail during the replay. Currently trying to do it with Truclient Web protocol as an alternative. But I need to know which tool/protocol should I use for scripting?
According to OJET looks like this is a web app generator.
If you choose to start with JMeter use post-processor such as regex to catch and save every value that is needed for as arg in the next request.
Don't be afraid of these dynamic values. Try to follow next articles to get the idea.
None of tools will provide you automatic correlation without issue. Nor LoadRunner, nor Jmeter. It is always tricky.
Ask more specific questions when you start facing issue.
Jmeter catch correlations
You need to implement real user using your application with 100% accuracy in terms of network footprint
Both JMeter and/or LoadRunner are not capable of executing client-side JavaScript, the options are in:
Implement these JavaScript-driven network calls using scripting (in JMeter it will be JSR223 Test Elements)
Use a real browser, LoadRunner's Truclient protocol is basically a headless web browser, in JMeter can be integrated with Selenium browser automation framework via WebDriver Sampler
With regards to "which protocol/tool" to use:
Implementing JavaScript calls manually will take extra effort, however your test will consume less resources (CPU, RAM, etc.)
Using real browsers will take less efforts, but the test will consume much more resources (something like 1 CPU core and 2 GB of RAM per user/ browser instance) and you won't have metrics like Connect Time, Latency, etc.
LoadRunner TruClient. This will handle all of the Javascript executions and dynamic elements related to session, state, date/time, object identifiers, ... You will still need to appropriately handle user input items.

Using Jmeter for load test:why "Record and Replay" method?

I am a beginner working on jmeter. I am confused between the "Record and replay" method & the basic load test method (giving the url in the path and executing the test). Need help to distinguish between both - if possible with a good tutorial suggestion. Also how to do a "stress test" in the simplest way ?
The main idea behind web applications load testing is: your test must represent real user activities as close as possible.
How you implement it - it's up to you.
If you know exactly which requests you need to mimic - you're more than welcome to develop your test by manually adding HTTP Request samplers.
For those who are not very familiar with HTTP protocol it might be easier to go "record and replay" way. But remember, the chance that you will be able to successfully replay recorded test scenario is minimal, most probably your will have to perform correlation - handling dynamic request parameters.
With regards to tutorials, normally you should start with JMeter User Manual, especially pay attention to the following chapters:
Building a Web Test Plan
Building an Advanced Web Test Plan
You can also consider JMeter Academy - probably the fastest way of ramping up on JMeter

100k HTTP Requests simultaneously

I have to test my rest API such that 100k API calls are made simultaneously(within 500ms).Any Idea how to simulate it?Utility to use?
I would suggest to use JMeter too, it enable your test to create multiple concurrent jmeter server. Just to be clear you can control multiple remote JMeter engines from a single JMeter client and replicate a test across many computers and thus simulate a larger load on the target server.
To be honest, your target is quite high (100k API calls simultaneously within 500ms), i.e. you'll need a lot of jmeter servers. When you create stress tests, there are not magical recipes, guides or manuals. Trial and error is a fundamental method of solving this kind of problems.
In my experience, I first try with few concurrent users and see how the server react. Then increase the number of concurrent users till to reach an intolerable performance decrease or, worst, a bottleneck .
http://jmeter.apache.org/usermanual/remote-test.html
You will obviously need a load testing tool which can be run in a distributed mode, i.e. 1 controller and X load generators executing the same test.
Grinder - scripts are written in some Python dialect
Apache JMeter - this guy doesn't require any specific knowledge, you can create tests using simple GUI
Tsung - is written in Erlang, known for capability to produce high loads even on low-end hardware.
See Open Source Load Testing Tools: Which One Should You Use? article for more information on above tools.
JMeter
The Apache JMeter™ application is open source software, a 100% pure
Java application designed to load test functional behavior and measure
performance. It was originally designed for testing Web Applications
but has since expanded to other test functions.

Simple tool for web server benchmarking?

I want to make some simple load tests for a web application.
I remember one of the tools I have seen in a stage and I liked a lot was Selenium, but it is intended for developing use cases for testing user interface of web application.
My needs are simpler, simulate concurrent users. I have seen Apache Benchmark 'ab' but one thing I would like to do is simulate a scenario where we begin with 5 users and make increments of 10, 15 ... until we reach 50 users (increments each 10 seconds, by example).
Do you recommend a simple tool for this use case?
Regards
I have chosen JMeter. It is not as simple as ab from Apache or httperf, but it isn't a complicated tool.
In the JMeter docs we can see a simple tutorial for doing web load tests. For the scenario for incrementing user number there is the configuration Ramp-Up Period which tells JMeter how long to delay between starting each user.
you may like curl-loader which supports customed number of users per-second and test different URLs.
there's another tool named siege, which is quite similar to ab(apache benchmark), have a try.

Resources