Is it possible to do load testing of java swing application with Jmeter?

I need to perform load testing of java swing application. So there should be imitation of simultaneous actions on N instances of this application.

Is it possible to do it with ?

I have doubts because of this statement in Jmeter introduction:

please note that JMeter is not a browser, it works at protocol level.

Does it works at protocol level means that it will not work with swing app as a common functional testing tool e.g. UFT?

Or should load testing be like:

1. Define requests that are sent from application to server (with e.g. JMeter Proxy Recorder, but application uses t3 protocol of weblogic server so guess it is not applicable here)
2. Set up Jmeter to send this requests?

2 Answers

From Apache JMeter's website we get this,

Ability to load and performance test many different server/protocol types:

Web - HTTP, HTTPS
SOAP / REST
FTP
Database via JDBC
LDAP
Message-oriented middleware (MOM) via JMS
Mail - SMTP(S), POP3(S) and IMAP(S)
Native commands or shell scripts
TCP


So I'm guessing you can't use it to load test Swing Application.

BUT

If your application makes HTTP(s) requests to a remote server, you can get help from your development team to collect all such requests and then use JMeter to generate load for those requests!

JMeter doesn't mimic any UI actions so you won't be able to interact with Swing UI (at least not more than in 1 thread) so in fact you have 2 options:

1. T3 protocol is just a subset of Java RMI protocol which in its turn using TCP transport.So if you need to "record and replay" the T3 network activity you could use a sniffer tool like Wireshark and JMeter's TCP Sampler. Also as far as I recall Grinder tool comes with TCP proxy so you can consider changing the load testing tool if you decide to go the "record-and-replay" way.

2. A "smarter" approach would be replicating your desktop application functionality using JSR223 Sampler and either: