Does J meter Suits for Desktop application and Windows applications Does it suits for load and performance testing
Yes you can do a load test on desktop application (i'm assuming he desktop application acts as a client for a web service or a database), If so it makes sense to consider load-testing back-end by simulating a situation where hundreds of desktop applications are simultaneously accessing the back end server.
Related
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.
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.
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.
I want to load test the web application that we're working on? Can you name some automated load testing tool for a website developed on asp.net mvc3? I would like to develop it for concurrent 100 users, 200 users and so on. We want to test it with many users and test the load that creates on the application and server.
BTW, we're also running profiler at the same time to find the application bottlenecks so that we can find code that is slow that we can improve.
There are a number of different options; they vary in all kinds of exciting ways.
I use the open source Apache JMeter for this kind of testing - it's not hugely user friendly, but is very powerful once you get used to it, and the lack of licensing restrictions means you can use it in all sorts of configurations.
Some of our projects have glued JMeter into the continuous integration cycle, running performance tests on nightly builds. Some projects need to scale to huge numbers of users, and we use JMeter in the cloud (there are some service providers who can do this too).
it works nicely with Asp.Net MVC apps.
We are currently load testing our MVC application and the external company uses a product called LoadRunner.
However, depending on how intricate your testing is you could use the WebClient class as a base to run your own volume tests.
Web Performance Load Tester works very well with .NET apps. We test a lot of them (disclaimer: I work for Web Performance and am closely involved with the product).
We have integrated with Fiddler load testing tool called StresStimulus
Why bother with multi-layer RIA if Internet now is fast enougth to do "traditional" fat client C/S?
What just use a plain C++ / Delphi / Oracle Forms / JAVA-Swing application talking directly to RDBMS thru Internet?
A very complex compiled exe program in Delphi is about 10MB, that amount of code downloads in a couple of minutes in a decent 1MB ADSL connection.
After all what is what we are doing with AJAX / BlazeDS / JSON / etc pushing thru http/https protocol but with a lot of layers and a lot of points of failure...
Comments please...
First a bit about terminology, what you refer as "traditional fat clients" are probably desktop software. Web applications are often written as thin clients, but they can also be written as fat clients. A fat client rich internet application are client centric, which means that a lot of the work is done in the client (browser). Fat client RIAs can be written with the help of technologies such as AJAX or Adobe Flash.
To compare the advantages of web based applications over desktop software:
Maintainability: One of the advantages of web based applications is the maintainability of them. You only have to make one installation of the application and then it is directly available for all users. Same goes for updating of the software, you only need to update the software on the server and then you can be sure that every single user is using the latest version of the software. This eliminates the need to update individual installments of the application on the users' computers.
Security: There are two positive security implication in using web based application. As said previously, you only need to update the software in one place. This means that the users always have the most up-to-date version of the software in use, thus eliminating the problem of people using outdated, vulnerable version of the application.
What is more important, is that fat client applications are insecure. They expose application logic and possibly sensitive data such as database credentials. Fat clients can be reverse engineered and attacks can be crafted based on the gained information. For an application to be truly secure, the application logic should stay on the server and the client should be thin and only server as a presentation layer for the information handled in the application. Do remember the exposure of application logic can also affect rich internet applications. It is easy to write RIA in a way that it exposes application logic. Hence it is important to remember that the application's state should always stay on the server, the browser is, as said, only means for presenting the data. In other words, both web based applications and desktop applications can be (in)secure, I'd just say that there is a greater risk of pushing application logic to the client when writing desktop software.
Platform independent: Web based applications are platform independent (with the exception in application that use platform specific functionality, such as activex). This means that your users can be using the application from a mac, a windows or a linux computer, it doesn't matter. Of course, it is unfortunately easy to create web applications that do not work/only works on specific browsers, such as Internet Explorer. Although, it is much easier to make a web application cross-browser compatible than to write a desktop software to be truly cross-platform compatible.
Accessability: If you are connected to the Internet/Intranet, you have access to the application. It doesn't matter if you have borrowed your friend's laptop or if you are sitting by your desktop computer, you still have access to the application since it doesn't require you to install anything on the computer. Just browse to the application URL.