i have a stand alone application with one major method that takes 0.114 seconds to execute. Now i wish to convert this stand alone application in a multiuser - web based application. i expect the system to take same time to execute this method provided a single user has to be responded. By any means can i assess how much time it will take if 1000 users are accessing the application at the same time. how will the execution time be affected, how do i know this so that i can make changes if the performance turns out to be not upto the mark
Your question is not answerable as it depends on how scalable your code is. Tools that mimic a system under load would be needed to get an idea, and real load may even turn up other issues. JMeter is one tool that should help.
so should i create a small web-app using the same method. and then use the Jmeter to perform load test. Can Jmeter virtually create simulate a similar environment as if 1000 users are accessing the app. I need to do this to have a rough idea about how the application will performing under such a stress.
Joined: Jun 26, 2002
I am not sure how you should proceed as I have never had to do that. Saying you have a 1000 users doesn't say anything about concurrency. What you probably care about is concurrent access. You may have 1000 users, but in such a case it would be unlikely that you would have 1000 simultaneous calls to your method. I would first estimate what the number of concurrent accesses would be. If it is an existing application a log, or database stats may help.
I am not sure how jmeter works you may be able to have it simultaneously call your method without creating a web app first.
I am not sure JMeter can scale up to a 1000 users, with out adding quite a few load generators. And if you add multiple load generating machines you will have some issues after you collect the metrics, if you have to make any sense out of them. You will have to time sync, etc.. It is do-able though.
You will have to slowly and constantly ramp up your load to 1000 concurrent users, observe the metics as the load is being ramped up and after you reach the peak load of 1000 users; You might also want to put a few steady state periods in between to make sure there is nothing bad happening at a lower user load.
Grinder is another option you can take a look at. I've used it for quite some time now, and particularly in case of huge concurrent user loads it's quite effective.
Joined: Aug 03, 2008
Do we need to know some language for writing Test cases. I have no experience for testing except i theoretically know bout different types of testing what i read in my grads days. Well GRINDER seems to be something interesting. But it says it requires Jython. What do i have to do with Jython. How is it used ?
Joined: Feb 22, 2005
Weell, for starters you will need to understand a bit of programming. Jython is a sort of alternative based on the Python language implemented for the Java VM. You can read more about it here.
However, if you want to stay completely away from programming, Grinder does offer the option of recording test scripts using a TCPProxy. But that works only in case you want to load test a web based application. Otherwise, you'll have to get your hands dirty if you wish to test a desktop based, standalone Java application.