4

I am searching for open source tool to test the performance and functionalities of a desktop application functionalities like generating reports, starting and ending time of each operation like report rendering and maintain the log of every single action as well.

Any other recommendation for desktop applications?

4
  • what kind of desktop application?
    – amazpyel
    Commented Aug 31, 2015 at 7:35
  • desktop application on windows OS may you discuss what you mean with kind @amazpyel
    – A.Mo5tar
    Commented Aug 31, 2015 at 8:09
  • I suggest you to read this article: united.softserveinc.com/blog/…
    – amazpyel
    Commented Aug 31, 2015 at 8:43
  • looks like oxymoron.. are you sure, thet you want to test performance on some desktop application?? Performance test tools usually works with server side of the application. Then you have to know, what kind of communication your application has. (DB, SOAP, XML, REST?)
    – Dee
    Commented Sep 1, 2015 at 13:34

5 Answers 5

3

Performance Testing of Desktop applications is oxymoron. Desktop application is used by one, at most two persons at a time. So if generating a report takes 5 seconds it will take 5 seconds no matter how many users are pushing the button.

It takes 9 month for a woman to born a baby. 3 women won't produce a baby in 3 month. 0.5 woman won't give you a baby in 18 month.

You can use a tool i.e. Sikuli to automate the process so you won't have to do the same buttons clicking every day for each new build, it will be possible to conditionally fail the test if report generation takes more than 5 seconds.


If your desktop application relies on a backend server(s), i.e. pushing "generate report" button sends the relevant request to the database or any other server via a network protocol, desktop application waits for the response and renders it. In that case you can reveal bottlenecks like "what happens if 500 users request a report at the same moment", but this simulation needs to be done on network level, not in the GUI level.

So in that case you can take any load testing tool which supports that protocol which application uses for talking with its backend and simulate the required load. Modern free, open source multi-protocol testing tools are:

All of them support record-and-replay capabilities at least for HTTP and HTTPS protocols so if your application supports proxy settings you can configure it to use one of the above tools as a proxy and quickly record your load test for later replaying with increased amount of virtual users.

See Open Source Load Testing Tools: Which One Should You Use? for extended information on aforementioned tools.

2

Depends a bit of what performance indicators you'd like to measure.

E.g. when testing timing, you may want to set certain indicators where to start the action (e.g. click a button) and when the action has completed (e.g. report was printed/shown) and simply measure the time inbetween. My current client does that manually on a per release base and measures e.g. compile times of a reference project. It's effective.

Windows Task Manager, Sysinternals Process Explorer, or Windows Performance Monitor comes in handy when measuring process load, RAM usage, etc., whereas perfmon can also record it over time.

HTH, alex

1

When you test performance of a web application, the important aspect is the server side. You can also improve performance on the client side with tools like pageSpeed or Yslow.
When you ask for performance testing tools for windows applications, I think you should see which protocol the application uses to communicate with the server, and look for a performance testing tool to stress this protocol. Perhaps you are trying to improve performance on a desktop application with no communication with any server, in that case I guess the option that best fit for you is a profiling tool.

0

I am not sure what performance testing means in you context, but there are several GUI testing tools (you can look at Wikipedias' List of GUI testing tools) that might be used for your purposes.

If your application has an API that allows accessing functionality BELOW the GUI than you can use a generic automation framework or even plain programming language to test it.

0

Is your desktop application a smart client connected to a server or a standalone application? If it a standalone application you could you the performance monitor available on Windows systems (see also Alexander's answer in this thread), it is not open source but it is a powerful tool for a deep monitoring of how you application is behaving.

For using the performance monitor you have to decide what KPIs are important for you then you have to choose the right counters (there are hundreds available on Windows) and start your analysis. The performance monitor tool allows you to record the counters and the visualize them in a chart for evaluating long run monitoring sessions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.