Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
naveenbalanagu
Contributor III
Contributor III

Scalability Tools vs. JMeter for Performance testing for Mashups?

Hi.

This question is somewhat similar to the one already posted in the community here

We are implementing QlikSense for our analytics application. The tiles developed in QlikSense are being embedded in another web application using Mash ups. So my question is what is the best way to do performance testing of the tiles displayed in the application. Since the end users will get access to these tiles from an external application (not QlikSense hub), I can't  completely recreate the end user workflow using Scalability tools. We are in the process of evaluating both JMeter and Scalability tools.

Can any one throw some light on this? Which tool is better for performance testing in this case? Have anyone done performance testing in JMeter and is it successful (I read some threads in QlikSense community and I noticed that people reporting some issues).

1 Solution

Accepted Solutions
Sebastian_Fredenberg

Hi,

Jmeter is a possibility but you need to be careful to replicate the communication properly. By default, Jmeter does not support websocket traffic so this is an obstacle.

Another option is to create an app using the visualizations and objects that will be used in the mashup and test that with the Scalability Tools. This is especially a good idea if you want to stress the system with many users triggering calculations.

If you do not need to test with high concurrency, you could use tools like selenium, protractor etc. Or for that matter manual measurements using for example chrome dev tools.

Regards

/sebastian

View solution in original post

6 Replies
mountaindude
Partner Ambassador
Partner Ambassador

Jmeter will prob be your best bet in this case.

Scalability tools are great and are likely to be faster to implement, but more aimed at Qlik Sense.

Another option to consider is Selenium. Good for regression testing of web UIs.

Please mark the post as a solution if it provided you with a solution to the topic at hand. Thanks!
naveenbalanagu
Contributor III
Contributor III
Author

Thanks for the response Goran.

Sebastian_Fredenberg

Hi,

Jmeter is a possibility but you need to be careful to replicate the communication properly. By default, Jmeter does not support websocket traffic so this is an obstacle.

Another option is to create an app using the visualizations and objects that will be used in the mashup and test that with the Scalability Tools. This is especially a good idea if you want to stress the system with many users triggering calculations.

If you do not need to test with high concurrency, you could use tools like selenium, protractor etc. Or for that matter manual measurements using for example chrome dev tools.

Regards

/sebastian

naveenbalanagu
Contributor III
Contributor III
Author

Thanks for your inputs Sebastian.

Here is a little more information on how our application/Qlik Sense is integrated.

Its a web application that shows analytics/reports upon login. So once the user enters home page/dash board then he/she will have an option to add tiles (one or more QlikSense tiles) from a list box.  All the tile information like app/object id is storied in a database table and will make an API call for the tiles selected by user. We are using QRS API to fetch the selected tile information and render it on the web page.

So the tiles will be from different apps.

Here is my thought on each of the options above.

1. Using JMeter

(I am new to JMeter), My idea is to record the steps (to log in to the application and add some tiles to the dash board and wait for the tiles to load). Then modify the script by passing proper authentication to log in to the application and customize tile selection parameters if needed. So here, the JMeter interaction with QlikSense is indirect. I still see that it is finding the Qlik Sense proxy server URL (while fetching and loading the tiles).  Do you think of any flaws in this approach? Also, you mentioned that using JMeter will have issues with web socket connections. IMO, the connection to Qlik Sense is being handled by the application (through ticket/QRS APIs). Can you tell me where exactly I will have a problem with connection? 

I think I need to use header authentication and pass user information if I wanted to test for more than 10 users. Similar to how we do in Scalability tools. I am not sure if this can be achieved through JMeter (I am working on this.).

2. Create App with all visualizations and test using Scalability tools

This is not an option for me because the tiles are from different apps (the data models/metrics/visuals) are completely different (they belong to different business lines).


3. Using Selenium/Protractor

I am working on the first option (using JMeter) and based on how it works for our performance testing requirements, I will explore this option.

We are also using Chrome dev toos to capture the performance (page rendering time etc.). But this will work only for one user. But requirement is to test with 100+ users.


Can you share your insights on JMeter option. Do you think my approach works? Are there any other problems I will have with this route?


Thanks in advance.




Sebastian_Fredenberg

Hi,

Jmeter is a very good tool for load testing, the scalability tools for QlikView are based on Jmeter. However, as mentioned before, it does not handle websockets by default. And with mashups you still need to handle websockets to get the data for the objects from Sense.

You also need to handle authentication, this is however well supported in jmeter. Header authentication is usually preffered.

You can have a look in chrome dev tools to see the communciation and where websockets are used to get an idea on what (and where) you need to replicate using jmeter.

Cheers

Sebastian

naveenbalanagu
Contributor III
Contributor III
Author

Thank you Sebastian.