2013-05-11

Introduction to JMeter Google PlugIn- Sampler

In this article we are going to see what are additional features/items added after installing jmeter plugin (Google Plugin) and what we can do with it. I will discuses about Samplers only. To know about basic of jmeter see my this page. And, the process to install plug in , see this post.

 After installing Google plug in, it installs 11 type of Samplers in Jmeter.To add a sampler to test plan, -Right click a Thread > Listeners > [Name of the Sampler]

1. jp@gc - Dummy Sampler
-This sampler do not provide request to real server, just provide dummy response data. Dummy Sampler used to simulate requests and responses without actual network activity

-We have provide manual request/response data inside this sampler which can be seen from response data on View Result Tree Listener
-Response/request data should be in html format.
-We can define latency time  and response to simulate actual scenario.
-We can make success/fail type of sample.
-This is very useful sampler when we need to verify any post processor script(beanshell/Regular expression etc)
-When we need to simulate false requests for proving the test plan and report , it is very useful.

2. jp@gc - Hadoop Job Tracker Sampler
- This need spatial plugin library to be installed. Download link is here. Keep the files in \apache-jmeter-2.9\lib directory
-We have to put job tracker URL in mapred.job.tricker
-We can get Hadoop JOB counters/JOB state/task level/task state by using JOB id or JOB counter group name.
-We will get response data in XML format 

Note : I have not used that sampler in real project. I can add more comments when I will get a chance to use this.

3.jp@gc - HBase CRUD Sampler
- This need spatial plugin library to be installed. Download link is here. Keep the files in \apache-jmeter-2.9\lib directory
 -It provide the CRUD operation over HBase database. Basically we can perform add/update/delete operation with data
-We need provide hbase.zookeeper.quorum as URL, table, raw key
-We have to set operation mode and operation type with data.

Note : I have not used that sampler in real project. I can add more comments when I will get a chance to use this.

4. jp@gc - HBase Rowkey Sampler
- This need spatial plugin library to be installed. Download link is here. Keep the files in \apache-jmeter-2.9\lib directory
-Rowkey sampler is used to retrieve a specific record with a rowkey of the hbase table
-This need a jp@gc - HBase Connection Config to set the connection.
-We need to add connection name(should exist in config), table name, and RowKey. We can define to retrieve updated data.
-We can create variable from retried data and use in test plan  

Note : I have not used that sampler in real project. I can add more comments when I will get a chance to use this.

5. jp@gc - HBase Scan Sampler
- This need spatial plugin library to be installed. Download link is here. Keep the files in \apache-jmeter-2.9\lib directory
-Scan sampler is used to retrieve single/multiple record with rowkeys or filter from hbase table
-Filter format should be - {column_family}:{qualifier}{= | != | < | > | <= | >=}{value}
Ex-NAME: Entry_Name = Shantonu
-Start and End key are optional.
-Like as Rowkey sampler, it need HBase connection config and table/connection name.
-We can provide limit of data(numeric value)

 Note : I have not used that sampler in real project. I can add more comments when I will get a chance to use this.

6. jp@gc - HDFS Operations Sampler
- This need spatial plugin library to be installed. Download link is here. Keep the files in \apache-jmeter-2.9\lib directory
-This is Hadoop Distributed File System specific sampler used for storing any file or data from local storage to HDFS directory.
-The input destination = local file path with name
-Output destination on HDFS = out put path
-Name code = htfs URL
-Name and location of the file or error message comes as Response of this sampler.

7. jp@gc - HTTP Raw Request
 -This is very handy sampler over default HTTP Request as it sends the raw request. It's a raw version of default http request.
-Like default http request, we need to define all inputs along with request data. We may add data file path. 
-The load generators will need less resource to handle this sampler. So, for handling large files, we will not face un-wanted out of memory exception.
-It supports capturing latency time separately than response time.
-We can limit response data stored in results which cause low memory. We can set this from user.properties file with this .
 kg.apc.jmeter.samplers.ResultDataLimit
Response will get all data(so, test is ok) but not all data will be saved. 
-As it is a implementation of RAW TCP sampler, we can test non-http servers also.
-Default buffer length is 4k, to change this set this in bytes at user.properties file kg.apc.jmeter.samplers.ReceiveBufferSize
Draw back- In GUI mode, it is not possible to add raw data, but, if we can use Raw data source pre processor and define a raw data stored file,the limitation is easily overcome.

My opinion, you should use this in large scale application testing. And, you can specify response time and latency time related problems very specifically.

8.jp@gc - JSON to XML Converter
- This need spatial plugin library to be installed. Download link is here. Keep the files in \apache-jmeter-2.9\lib directory
-This is a spatial sampler that converts a JSON text to XML along with XML format post processor.
-We get a XML as response data of that JSON text.
-It is used in case we need our custom JSON to be processed in to XML and use it as variable.

9.jp@gc - OAuth Sampler
-This sampler follow OAuth protocol to use token(instead of credentials) for getting data hosted by a given service provider. Actually, this token grants access for specific resources for defined period of time.
-It is an extended REST sampler, so all input of REST will be there added with customer key and customer Secret
-Very useful with stored token IDs in a file to run test for a specific time.(we can use token as variable)

10.jp@gc - REST Sampler
-This is a REST request which is widely use for testing SOAP services. It uses XML payload to send to SOAP.
-Methods are GET, POST, PUT, DELETE
-Resource is the child path of URL
-Headers depends on what you use(to get browser related issues)
-Body : Use XML formatted request which will be send.
-This sampler is a far better than using  WebService(SOAP) Request (DEPRECATED) or SOAP/XML-RPC Request

11.jp@gc - UDP Request
- This sampler is based on User Diagram Protocol .
- It can be used for both way communication.
- It follows 3 embedded classes for encode and decode. We have to define any one in input. 
kg.apc.jmeter.samplers.HexStringUDPDecoder
kg.apc.jmeter.samplers.DNSJavaDecoder
kg.apc.jmeter.samplers.UDPSampler

When we need binary packed data, we can use these classes to convert GUI data to binary data or convert response data in to readable format text.
-In case of custom UDP based application, we may need to make own converter classes. For this we need to implement this interface (to be able to use with UDP request).  kg.apc.jmeter.samplers.UDPTrafficDecoder
-With this we can load test DNS, NTP, TFTP, API, custom chat server, Boot servers and other systems(even non standard).

-It has standard buffer limit of 4k, to change , use this in byte in user.properties 
 kg.apc.jmeter.samplers.ReceiveBufferSize =

Note : I have not used that sampler in real project. But, I am going to make separate post on this when I will start Jmeter Extended posting(making application specific jmeter).

Thanks...:) 

4 comments:

  1. Can you explain "jp@gc - OAuth Sampler" with some example, so that it will be helpful for many. Actually there are not many tools for testing (Oauth2 + restful) web services. The available tools also not documented properly so please explain a bit more...

    ReplyDelete
  2. Can you provide real implemented server link, so that i can make a good example.
    As for common purpose, see this sample implementation http://term.ie/oauth/example/
    Use this to make OAuth sampler and get things done.
    But , definitely, if I have an access , I can help to debug.

    ReplyDelete
  3. Great Article Shantonu!!!

    Could you please let me know any sampler to test terminal emulator(RTE) protocol using Jmeter.
    I have searched in internet and come to know using TCP sampler and TN3270 sampler, mainframe screens can be performance tested but not got much information.

    ReplyDelete
    Replies
    1. first you need to know which variety of RTE you are using in application. If Telnet 3270 , go for that. If not, try to find protocol communicator tool from sourceforge.
      After that , you need to extend Jmeter TCP sampler and use the protocol tool inside to simulate request. You need jmeter plugins making skills to do that.
      knock me details in mail, if you need help.

      Thanks

      Delete