Become a technical tester while learning JMETER

I watched yesterday a few videos about JMETER from this site: http://blazemeter.com/blog/jmeter-tutorial-video-series.

I heard about JMETER before as the free web site load testing tool but never used it.

My experience includes working with Load Runner for a couple of years for performance and load testing so I thought that there is not much to learn from a free tool.

After watching the videos, I am still convinced that the difference between the paid tool (Load Runner) and the free one (JMETER) is big since the sophistication of Load Runner is high.

But, JMETER can work pretty well in many cases too.

I am digressing from what I had in mind .....

After watching the videos, I realized that learning to use JMETER can have a very nice side effect for a tester.

There are many things that have to be mastered before creating and running a successful load test:

- regular expressions: important for finding values in the web page content

- web proxy: a web proxy is being used by JMETER to record a web script

- creating scripts: after the web proxy generates the script, the script needs to be modified so that the script parameters can be "parameterized" (not great English, I know; what i mean is that the script should be able to use multiple values for the same parameter; imagine that a web page has a category parameter; the script should be able to use sports, business, home and decor as possible values for the category parameter); the "parameterization" is done usually through external data files

- find, save and re-use browser session variables: the session variable is generated usually as soon as the user opens the site and all other site pages need it; this uses regular expressions most of the time

- assertions: assertions will verify that the page returned for a web request is actually the correct page; this is done by checking for information in the web page content

- set up load test configuration info: to do this, a basic understanding of HTTP requests, HTTP headers, cookies, cache is important

- listeners: the listeners provide the results for each web script after the script is executed

- results reports: these reports include information like throughput, samples, min, max, average, etc

- server concepts: to run a load test, multiple computers will be needed: some of them will just send the requests to the target system (slaves), then you have the master server which controls the load test and the target system which hosts the application under test

So far, I just summarized some concepts that can be easily found in the JMETER user guide.

Learning JMETER will not be easy or quick especially for a tester that does not have a technical background and has no previous exposure to load tests and load testing tools.

What is the second benefit, however, of learning JMETER?

Learning about all key concepts for JMETER will improve the technical knowledge of the tester a great deal.

Technical knowledge is very handy when deciding to start on test automation or even on security testing.

It also allows the technical tester to do much more than just black-box functional testing.






Chat with a tester on load testing basics


Related articles

Become a technical tester while learning JMETER
Performance Testing Checklist



me

hi utester
how are you?
Are you online?

utester:

Hi Alex,
I'm well. And you?

me:
i am ok
do you have time for a chat?

utester:

Yes

me:

ok
so what exactly are you interested in?
i need to say from the beginning that i did not participate in load testing projects at uTest
but in my mind, they are not exactly load testing
load testing involves using a tool like Load Runner

unless i am mistaken, load testing for uTest means that lots of users use the app in the same time
outside of utest, load testing means something else

utester:

What expected in load testing?

me

in general, lets say that load testing is needed for a site

there are different types of tests that can be done
1. a test that shows you how many concurrent users that site can have before it goes down
2. a test that shows you when the site performance degrades, meaning what is the number of users when the performance of the site goes above 5 seconds, lets say

a load test has multiple components:
- the first one is to know what you want to do
- do you want to simulate users with multiple browsers or not?
- do you want to simulate different internet connection bandwidths?
- how should the users be loaded? should you start with 50 concurrent users from the beginning or start with 5 and add 5 more every few minutes?
- what are the most common scenarios that your users are using on the site?

are you following so far?

utester:

Yes. I see
We don't need report any bugs to customer in load testing, right?

me:

there are no bugs.
there are problems instead like for example:
- when you have 50 users, the time for opening a page is 20 seconds

or 

-when you have 75 concurrent users, the server reboots

load testing is a multi-discipline activity as you have to do multiple things as follows:

- record scripts that will simulate the most important user scenarios for the site; this involves some coding

- prepare data for the scripts parameters

- monitor servers performance counters

- finish your functional testing before the load test as the site must be stable

- run the load test and gather data from the server monitoring

- analyze the load test results and make improvements either on the server side, application side or scripts

- repeat everything from beginning

utester:

can we do all above tasks when using Load Runner tools?

me:

yes

load runner is the tool.

but the server monitoring is done on the server level.

unfortunately, load runner is extremely expensive so only big companies can afford it.

a free tool for load testing web site is http://jmeter.apache.org/.

but it is probably rather limited.

it could be a starting point though.

utester:

Thanks. Is this support web test only?

me

yes, i think so

utester

I checked the battery of some android devices in last month. I run more applications in background, and wait until battery is zero.

Is it also load test?

me

no

a load test assumes that you have multiple concurrent users on the app

that is a battery test :)

utester

Yes. I see. thanks for clarifying.

me

you are welcome

a load test for mobile apps is quite difficult

and it could only test the backend of the app

since everybody is using the mobile app on his own device

if the mobile app is connected to a backend system, having 100 users using the mobile app in the same time might put some load on the backend system

utester

Sure. I also tested using Android Simulators (from SDK). But have not tried connected with 100 users

me

because it is not possible, each user uses 1 device.

was this chat useful for you?

utester

Yes. This is very helpful.

I think I need to practise with JMeter first.

I don't know which site I should try to practice?

me

try http://demo.testfire.net/default.aspx or create a test blog site and practice your load tests on it with a low number of users.

use a low number of users, 2 or 3

2 or 3 users should not be a big deal for a sample load test

utester

ok. thank you so much

me

utester, are you ok with me sharing this chat with the uTest forum after removing your name from it?

there may be other testers with similar questions

utester

OK. No problem

me

great

utester

I'm very happy when sharing with other testers :)

me

if you want to discuss about other topics in the future, let me know :)

utester

Yes Many thank you

me

you are welcome