Performance testing of Thick client - client-server

I have a thick client application to be tested. We need to downlod the jnlp file and then launch it, supply required credentials and click submit. It then launches the application.
I'm newbie to performance testing and want to performance test this application. Which open source tool will be useful, which is the best tool for testing thick clients?

What do you mean by "Performance testing of Thick client"? If it is about how fast it launches, downloads or operates than you need to loop into desktop automation software. The best open source tools currently available for desktop testing automation are:
Sikuli
LDTP
If your application does network communication and your scenario assumes simulating hundreds or thousands of simultaneous thick clients communicating with the server using the following open-source tools can help:
Grinder
Gatling
JMeter
Tsung
If your application supports proxy (given .jnlp - it is Java-based application and it surely does) and the protocol is HTTP(S) you will be able to record test scenario and replay. The Grinder tool recording proxy can go a lower level and perform TCP protocol recording.
For more information on main features comparison for performance testing tools listed above look into Open Source Load Testing Tools: Which One Should You Use? post.
If your application uses a form of secure communication or proprietary protocol you should be able to replicate it's behavior by plugging your application libraries to JMeter, Grinder or Gatling and use their multithreading and reporting features to perform massive load testing.

Related

Can i test native ios app with Jmeter using Simulator

Can i test native ios app with Jmeter using Simulator? Also, my app requires login.
If not what is the best tool i can use for that?
If you want to measure your application performance JMeter won't help you, it's a load testing tool which acts on a network protocol level.
So if you want to collect application-side performance metrics and detect slow parts of your application it's better to use Instruments (comes with Xcode), see i.e. How to find and fix slow code using Instruments article for more details.
JMeter can help you to simulate hundreds or thousands of iOS application users concurrently accessing the backend or database, but this is the test against the backend, not against the application. If this is something you're interested in you could record your mobile application traffic using JMeter's HTTP(S) Test Script Recorder and once done replay it with increased number of virtual users to see how your backend handles the load. Check out Load Testing Mobile Apps Made Easy article for the overall concept.

Can jmeter be used to load test native desktop applications?

We have a wintop application written in Java mainly. Can we use Apache jmeter to do load testing of 300 users for desktop application?
If you use command line Parameters, maybe, but it is not made for Testing of GUI Applications. For that, you Need robots like assertj-swing, or what you used for programming.
How do you imagine 300 users of a desktop applications? A desktop application is normally being used by 1 user only therefore you rather need to user profiling tools (i.e. JProfiler or YourKit) in order to detect slowest components and perform all the necessary optimisations.
You can use JMeter only in the case when your desktop application relies on backend server(s), in this case you might want to check whether the backend is capable of supporting 300 concurrent desktop applications. Also be aware that you need to assess the network protocol(s) your application uses - JMeter has to support it in order to be used for testing. If you're lucky enough and your application uses HTTP (or HTTPS) protocol - you will even be able to record it using JMeter's HTTP(S) Test Script Recorder, check out How to Run Performance Tests of Desktop Applications Using JMeter article for more details.

Integration Rich client application with HP load runner

We use Teamcenter software at our environment and it is a rich client Java application. We wanted to measure its performance by using the HP load runner software. However this is not working as the load runner is not able to start the application.
The support team of HP got back to us with the statement as below:
The root of the issue in fact that AUT has unexpected by Vugen
multi-process hierarchy, Vugen cannot record process outside of
single-root tree, specified at Start Recording Dialog. You can ask
your app Dev team to rebuild the software so all new process will be
children of parent process.
Can you please help me understand what can be done here?. Has anyone experienced such a problem?.
Thanks,
Pavan.
Big questions:
What is the next upstream architectural component from the client?
What well known ports/protocols are identified by a wireshark trace of your application?
When querying "The Google" using the terms "acuity teamcenter architecture" I ran across a SOA whitepaper that would suggest that at least some interfaces can be exercised via a standard HTTP client which could be captured via proxy. I do not know if the Java client leverages this same interface model, but if it does then changing your global application proxy to point to an instance of the LoadRunner HTTP recording proxy will then allow you to record the conversation.

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.

Network traffic simulation test

I've got a PHP site up and running, and the db is mysql. before launching the site, I would like to test the traffic handling. Now am assuming that there are soe softwares that would simulate the traffic and log the processes running on my site. Any recommendation of software I should use? the traffic doesn't have to be real, but nonetheless, I would like to generate a high traffic to investigate the threshold of the site.
Appreciate the help
You can use Gatling https://github.com/excilys/gatling.
It's a stress tool written in Scala which aims at being more efficient and lighter than Jmeter.
Basically you record a scenario on your website and then run it 'n' times in parallel.
Here is the wiki for more infos https://github.com/excilys/gatling/wiki/Basic-Usage
You can use Jmeter:
It's free.
it's easy to Start with lot of documentation on its Website and on internet
it has a proxy feature to easily create test plan from browser navigation
It is easy to start up processes on other machines. It remote testing, can be done from GUI or console.
The scripts can be written in beanshell, java, or any jsr223 language ( groovy, Javascript, scala, jexl ...)
it has a lot of built- in samplers and thanks to its plugin architecture it's very Easy to add new ones or use any scripting engine to do what's missing
it has great user mailing list
it has very reactive support
it's now a top Level Apache
it can run thousands of users
professional solutions exist to run it from cloud
...
See:
Performing a Stress Test on Web Application?
Best way to stress test a website
How do you test the performance of a website?

Resources