Jmeter script for Infinispan distributed mode using hot rod - jmeter

I am new to Jmeter. I have requirement for run load test for Infinispan distributed mode using hot rod client server on Jmeter.I have Infinispan clusted server available and running using some application. Please someone guide me to write Jmeter script for this.
Thanks in advance.
Regards,
Mahesh Bubanale

As far as I understand you shouldn't be testing Infinispan itself, I believe that it's tested by other people and considered reliable. My expectation is that you need to test an application, which is using Infinispan to implement some clustering functionality. If so and your application is web-based you can use JMeter to produce load and insert some assertions into your code to check that your test data is being correctly replicated. The best way to start with web application testing is recording your test script via JMeter HTTP Proxy server.
If I'm getting you wrong and you need to explicitly test Infinispan HotRod endpoint, JMeter doesn't support HotRod protocol out of box. You'll need to get relevant libraries (.jar files) which implement org.infinispan.client.hotrod.impl.protocol with dependencies, drop them to /lib/ext folder of your JMeter installation and after that do one of following:
Develop a custom JMeter Sampler containing protocol implementation details, arguments, entrance and exit criteria, etc.
Create a Java Request similar to option 1
Use BeanShell samplers to represent your test cases.
Hope this helps

If you want to load test Infinispan Hot Rod server, you can use some Grinder scripts I created a while back. We've got some instructions here but they're a bit outdated. Maybe you can help us update them and convert them to talking to Infinispan Server distribution and update to version 6.0? :)
Otherwise, if you want to test Infinispan embedded/library mode, we've RadarGun which is a benchmarking framework for data grids.

Related

Performance Testing of APIs

Please could someone suggest:
I need to performance test a few APIs. Which of the below methods will be better way of conducting the tests (trying to understand the pros and cons of various ways to run JMeter tests):
Create Ultimate Concurrency Thread groups using only Jmeter.
Buy Blazemeter, add the Jmeter scripts, create scenario and run the tests
Run the JMeter tests using Maven plugin as part of the build.
Thanks,
N
Testing the performance of an API can be achieved by the above mentioned 3 ways.
Open Source: (Standalone JMeter/Taurus)
Cloud based solutions (Octoperf/Blazemeter)
If you are looking for an open source tool + you have your LG machine allocated + not gonna test with massive number of users - I would suggest to go with standalone JMeter/ taurus for your load testing solution.
If you are looking for an hassle free environment to manage all your test, LGs, reports, monitoring, etc then cloud based solutions like Blazemeter/Octoperf seems promising. This is going to cost you money and requires a port needs to be open for the solution to communicate with AUT.
For Scripting: You can use the same JMeter scripting in all 3 cases. Choosing a thread group requires what kinda test you wanna perform on your microsevrices.
In any case you will be using JMeter so points 2 and 3 don't really differ. The pro is that you don't have to pay. The con is that you need to manage your infrastructure yourself.
BlazeMeter provides easy way of launching a JMeter test so you don't have to worry about creating and configuring machines, installing JMeter, setting up distributed testing, real time monitoring and results comparison.
JMeter Maven Plugin makes the following processes easier:
installing JMeter
generating reporting dashboard
returning non-zero exit status code when acceptance criteria are not met

Service Virtualization with JMeter

I am using JMeter for API Testing. Using HTTP Request and Beanshell I am able to achieve this.
There are times where the Services are down for a weeks time.
Since I the have the Request and Response with me, I would like to implement Service Virtualization using JMeter.
Even when the Services are down, I should be able to continue my testing.
Can I achieve Service Virtualization in JMeter? If yes, can I request you to let me know the steps please.
No you can't.
I suggest you check out API simulation tools which will allow you to do service virtualization. You can then use JMeter to run your tests and an API simulation tool to mock the dependencies.
JMeter doesn't do Service Virtualization, but you can use JMeter in recording, see article:
You can import the incoming traffic to JMeter using tcpreplay and
JMeter Proxy. Run a test suite in your performance environment using
JMeter and use the virtual services to decouple yourself from other
dependencies. Just to be safe, repeat the recording process every
week. This could prove to be very easy or very difficult to implement
depending on the specifics of the system you are working with.

What are websites or applications for practicing performance testing from home

I want to practice performance testing at home using some load testing tool like jmeter. Can anybody tell me some links of websites or applications on which I can practice performance testing by throwing load by load testing tool from home?
It is not a LEGAL way to conduct load/stress test on any live websites/web applications without the permission.
So, you can deploy your own sample application or download sample applications available online and deploy it in your local server like Apache HTTP server or Apache Tomcat etc.
From my knowledge, You can use WebTours sample application from HP LoadRunner as an application to put your load.
Download HP Load Runner community edition from here. free for 50 vusers for life time. You need to create an account in the website.
You can download the webtours application from the HP website (comes with Apache HTTP server, which acts as a Web server).
Setup WebTours as per the instructions here
Confirm the successful installation/configuration by accessing the application from the browser (similar to http://localhost:8080/WebTours). The app is about flight booking (though not in real time ;) ).
Now, you can use the WebTours application as an AUT (Application Under Test)
Either you can continue with Load Runner or download latest JMeter version (3.1 as of now)
JMeter tutorials:
Getting Started
Component Reference
Builiding a Test plan
For Load Runner, there is documentation available in the following link to start with:
http://lrhelp.saas.hpe.com/en/12.53/help/WebHelp/Content/WelcomeContent/c_Welcome.htm
There is community support available managed by HP.
Use the sample applications which ship with the tool
Take your choice of open source application, install them on servers you own, manage and control. Use these applications as targets.
You are welcome to use api.jmeter.ninja. I built it for that purpose. A more formal API declaration is on it''s way but you can start with
http://api.jmeter.ninja/example.html.
http://api.jmeter.ninja/objects.xml
http://api.jmeter.ninja/objects/${OBJECT}.XML
Where ${OBJECT} is taken from the objects.xml page.
Or swap xml for dot json for the same in Jason format.
Exercises/Tutorial is available at http://api.jmeter.ninja/jmeter.pdf
Currently I just use this service for my own training sessions. But I hope to make it more generally available in the near future. There a currently no automatic limits so please just use your common sense and don't run high at throughput for a sustained periods of time. Anything under a total 100k requests is no problem.
Only caveat is that service is provided on a best effort basis at this point. Any abusive/problematic users may be blocked without notice.

Performance testing Open vStorage and Ceph using JMeter

I have a query regarding benchmarking the performance of Open vStorage (storage platform) using Apache JMeter. Is it possible to run tests against Open vstorage using JMeter ?
Thanks in advance.
It depends on the protocols of this Open vStorage.
If it's one supported by JMeter then yes:
Web
HTTP/HTTPS
SOAP
Database via JDBC
MongoDB (to be removed)
LDAP
JMS Mail
SMTP(S), POP3(S) and IMAP(S)
Native commands or shell scripts
If it's not but it has a Java API, then you can plug it using either:
JSR223 + Groovy and coding the call in Groovy
or using Java Request and coding a JavaSamplerClient
I'm not sure what you are trying to test but I assume you want to test the storage performance of Open vStorage compared to Ceph RDB? Typically one uses tools like fio (http://linux.die.net/man/1/fio) to test storage performance. I had a quick look at the JMeter and it doesn't provide a storage benchmark option.

Jmeter wamp-protocol integration

Here is the story:
we have several servers connected to wamp (crossbar.io)
I am creating load tests for part of this system and need a way to get info from wamp server to Jmeter.
So far I found only WS plugin for Jmeter, but it wont work with wamp.
Any bright ideas?
Clearly wamp is a whole new protocol and JMeter doesn't support it out-of-the-box. Thankfully you can extend JMeter quite easily. If there are java or java family language bindings for your protocol system, you can use beanshell sampler (relatively less performant) or groovy through JSR223 sampler (better performance)
If you feel like it, you can always write up your own Wamp sampler as well.

Resources