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.
Related
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.
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.
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.
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.
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.