TOP 15 Reasons why you can use jmeter for performance testing

 

  1. Jmeter is an open source tool.
  2. There seem to be more cost saving for MQ ,SOAP,FTP protocols when considering other proprietary tools in the market.
  3. Customized/Specialized reports are given in proprietary tools to attract the end users. Jmeter has simple reports and it will be helpful to analyse the server logs and get into the root cause of the performance issue. So if you do not want Grand UI reports , Jmeter will save more money from you pocket.
  4. User friendly UI.
  5. All the components are pre-built and readily available for use. Even the person who is not much comfortable with coding can understand and script in jmeter.
  6. Test can be executed in NON-GUI mode to save the machine resources.
  7. You can extend or write the new samplers in java and it can be included in jmeter.
  8. You can send the files with the request using simple configuration.
  9. It is easy to run multiple users (1000 User logins in ~2GB system) without worrying license cost.
  10.  Simple and effective session correlation for a web application.
  11. You can run multiple scripts consecutively(One at a time) , also all at a time (concurrently)
  12.  Response time results can be exported to CSV.
  13. Assertions will help to validate the response from the server easily.
  14. You can send JSON string and test JSON response for HTTP request.
  15. Various timers are there to introduce the delay concept

Posted on

Finding the number of lines of unique string in a file for specific duration- Linux

One day , I gone though a scenario where I have to count the number of lines of error string in a file for specific duration in the linux server using single command. I require it as I will be repeating it for multiple iterations of testing cycle.
As I did not have much experience in linux commands , I spent more time in browsing various web pages and finally I was able to join the commands in order to get one line command.

sample

 

 

 

 

 

 

I think this might be useful to many testers like me

Linux command for finding number of lines of unique string in a file for specific duration:
sed -n ‘/2013-12-24 20:20:00/,/2013-12-24 23:59:59 /p’ logfile.log | grep ‘error’ | wc -l

Or you can use this as well for quick view,
grep -i ‘error’ filename.log

Here You can update any string that has to be searched in grep ‘error’

Posted on

Performance – Profiling Java Application

 

screenshot

 

 

 

 

 

 

 

These are the steps for profiling java application.

1) Take heap dump
For taking heap dump without using a profiler refere the below link
https://www.technix.in/taking-java-heap-dump/
2) Analyze the live objects list and find out the leaking objects .
3) If the objects are found that to be leaked , delete those leaked objects and retest the scenario.
4) If there are no objects leaking found, then take thread dump and continue the analysis.
5) Find out whether thread creation is increasing over time.
6) If threads are more in number , it will consume more memory , server resources and also source of deadlock , hence use Thread Profiling for the services and make it under control


If the slowness is due to neither threads nor heap objects, then what should be done?

Solution: Enable DB slow query log , dead lock traces and monitor Database server.

Is there any other tip to ensure that application issue is caused by DB server Query Execution other than finding from logs?
Solution: Yes, Monitor the CPU consumption , It will go to Peak when the issue is due to Query Execution.

Is there any open source profilers?
Yes, there are plenty of tools available for profiling. You can use Jconsole, JvisualVM,Netbeans profiler etc..

Posted on

JMAP for Java Heap Dump

 

logo

 

 

 

 

There may be some scenarios where you need to take java heap dumps without connecting to a profiler, or there may be chances that you want to see only live heap objects or you may be asked to find out the live java heap objects which causes application slow down/out of memory at run time. For all of these , there is a solution lies with in JAVA JDK – JMAP .

Details:

JMAP – Prints Heap memory details of the debug server

Steps:

Open Terminal in the debug server

Find out the process id of the java application for which the heap dump should be taken
ps -aef | grep java

Go to bin directory of your java and give the following command
jmap -dump:live,format=b,file=<filenmae.bin> <pid>

Live option displays only live objects present at the moment.

Posted on

GPerftool2.1 is Released

 

images

GPerftools” is a profiler which is used by developers to build application with early findings of performance issue such as CPU usage and memory leaks and other performance issues.It is also used by Google.


This product is available under BSD licence.This is especially for multi threaded application in C++ with templates. It has CMalloc, Heap-Checker, Heap-Profiler and CPU-Profiler.

The following link shows ,how google uses gperftools as a profiler

http://gperftools.googlecode.com/svn/trunk/doc/cpuprofile.html

For GPerfTools Download and Documentation:
http://code.google.com/p/gperftools/

 

Posted on

Google’s Offline Disk Import under release

Disk

 

 

Do you face network slowness and stumbled upon data storage in
Google cloud storage?

Google releases offline Disk import in limited preview. Currently It is experimental release.Using this feature you can upload data into Google cloud storage inoffline just by sending Google physical Hard Disk.

How to import data in offline by sending Google physical Hard Disk?
You have to write the data in HDDs and send it to the Googles import center.

Is it for Free?
No, Its not free of cost and pricing is based on number of HDDs those need to be sent. Currently they are charging  $80 per HDD.

For more Information please visit
https://developers.google.com/storage/docs/early-access

 

 

Posted on

Build your Mobile App with Google Cloud Storage

Mobile-Apps

 

 

 

 

 

 

 

 

When I was at office, Bored with usual work, Just done bit of searching for technews.Happy to see that google offers Google Cloud Storage for storing and accessing your data on Google’s infrastructure, with High performance and security.

Do you want to know more…
Refer the below link…https://developers.google.com/mobile/build

Posted on

Node JS and the website performance

Node JS

Recently I got opportunity to test node server application web performance.
I really wonder how fast it is when compared to typical JS or PHP applications. I noticed that CPU and memory utilization for node server was very low and efficient . In an enterprise application, that I worked on, Max CPU utilization for Node web server was 0-0.5% and Memory utilization was between 0% and 0.2%. When the client accessed the website through browser , the application made user to feel light and average page load time was between less than a second to max of ~5 seconds.

NodeJs

What makes Node JS fast?

One is that it uses Google’s V8 Java script Engine. V8 is famous for its speed when
compared to other versions of javascript engines.
Another reason is connection handling mechanismin node js. Most web servers make a new thread for
each incoming request , which means that to process 100 requests,100 threads will be created and CPU will start falling-out. In case of node server, it uses evented framework, node js uses single thread for 100 incoming requests and it ignores the connection no longer needed and results in saving CPU time. Hence CPU stays free and focused handling web site traffic
efficiently.

Node JS documentation is available in http://nodejs.org/

http://howtonode.org/ is a community blog which has many writers and followers.

Posted on

A Glimpse on JAVA Memory

javaheap

I just want to share my experience in performance issues that occurred due to Java heap memory.
Before that a few points to recollect about Java memory.
Heap memory is where java run time objects are getting allocated.
Non-Heap is the place of loaded classes and other meta data.

1) What will be the impact of loaded java heap memory? Continue reading “A Glimpse on JAVA Memory”

Posted on

Jmeter Problems and Solutions

Performance

1) How to handle sessions in Jmeter?

Add->Pre-Processors->HTTP URL Re-writting Modifier for the sampler where your session variable is present
Then add your variable in session argument name and check chache session id.
Please see the Image below:

Jmeter_SessionHandling

2) How to customize the user data/ how to run the script for multiple users in Jmeter?

i) Add Thread Group->Config Element-> CSV Data config Element
ii) Give user variables for the csv file column.
iii) Place the csv in the same folder where you kept the jmeter script or give full file path in filename

See the images below:

Jmeter_CSV1

 

 

 

 

 

 

Jmeter_CSV

 

 

 

 

 

 

 

 

3) How to run the Jmeter for more than 300 users?

i) Run in Non GUI distributed mode to run for more than 300 users. It depends on RAM size. For the system with 3.2 GB, you can run up-to 1000 users.

Step1:
Configure Jmeter for Distributed testing

Step2:
Place your script and csv in /bin folder of the jmeter.

Step3:
Open command prompt , go to jmeter bin directory and give the following command

jmeter -n -t testplan.jmx -R ip1,ip2 -l resultfilename

4) How to record Jmeter script?
you can capture headers and parameters of the request by Fiddler or HTTPWATCH and write the script manually, or configure proxy and use Recording controller.

Detailed manual is available in Apache Site:
http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf

5) How to extract the data using regex in Jmeter?

There is an element called preprocessor->regularexpression.

Add it under the request you want and then follow the below steps:

i) Give reference name (any name , that will be substituted in the place of actual parameter value in the request)

ii) Give the regular expression , for example if the text to be extracted is ‘world’ from text=’world’, then the regex will be like this text='(.+?)’

iii) Give template as $1$

iv) Match No would be which row of the value from the web page , it may be 1, 2,3 etc. If you want random row then give ‘0’

v)Default value is a string that will be sent to the server when it fails to extract the data. it can be anything for Ex: Loginid_Failed

Please see the Image below:

Jmeter_Regex

 

 

 

 

 

 

6) what are the charcters used in regex?

Regular Expressions use certain characters and those have special meaning. Following are the list of such characters.
( ) : grouping
[ ] : character classes
{ } : repetition
* + ? : repetition
. : wild-card character
: escape character
| : alternatives
^ $ : start and end of string or line

7) How can i use special charcters with actual meaning in regex?

Add backslash to the special character to mean it as it is, for example (),$,^.

8)  Mention example for regular expression to extract string with whitespace

Regular Expression : <url.values+(.+?)=”(.+?)”

Explanation:

<url.value    : Extract the string <url.value

<url.values  : Extract the string <url.value followed by white space

<url.values+Extract the string <url.value followed by white space and

<url.values+(.+?) : Extract the string <url.value followed by white space and any character with 1 or more match

<url.values+(.+?) =  : Extract the string <url.value followed by white space and any character with 1 or more match with equals symbol 

<url.values+(.+?) =”(.+?)” : Extract the string <url.value followed by white space and any character with 1 or more match with equals symbol  and any charcter with 1 or more matches inside double quotes.

So the final string returned from above condition may be like this:

<url.value groupid=”1234trurbd93737″

9) How to use java program inside Jmeter?

Java program can be called inside jmeter by using BeanShell Pre/Post Processor.

10) How to send file with Jmeter script?

There is a column in http request as ‘ Send Files with the Request’

Give the filepath,parameter name and MIME type.

For sending different files , give it in CSV file and add the variable in CSVconfig Element. (Any question related this, you can post your questions)

11) How to capture Jmeter results?

There are lot of graphs/listeners available for jmeter. Or if the purpose is to find response time for the request, use ‘Aggregate Report’ and take min, max, avg timings(in milliseconds) . That will help a lot.
Or you can download plugin for colorful graphs.

http://code.google.com/p/jmeter-plugins/

Jmeter_AggregateReport

12) How to View the results of JTL file created in NON-GUI mode?
Open any Jmeter script, go to Aggregate report listener, Browse the file and Open it. After that you can Save it as CSV file.

13) How to test ‘HTTPS’ applications using Jmeter?
In HTTP Request default, mention the protocol as ‘https

14) How to rectify Jmeter out of memory error-heap space when opening Jmeter?
Right Click and Edit Jmeter.bat file , increase Xmx value and check.

15) Where to Download Jmeter latest version?
https://jmeter.apache.org/download_jmeter.cgi

16) How to execute ssh command or shell script on remote server using Jmeter?
Using SSH sampler it can be done. For detailed explanation see here
https://www.technix.in/execute-linux-command-shell-script-apache-jmeter/

17) How to run endurance test using Jmeter for more than 8 hours?

Using Timers , it is possible to run endurance test using jmeter, please look at this

https://www.technix.in/run-overnight-endurance-test-consecutively-using-jmeter/

 

Posted on