2011年10月1日星期六
Software JMeter Nuances And Work-Around
JMeter is an open source tool Rosetta Stone Outlet used for load testing of any application. It provides comparable features that other company-based load testing tools provide and has been very quickly adapted for lots of enterprise based application performance testing, however it has certain limitations. This article focusses on some of these issues and also discusses work-around for those issues to meet business and technical objectives. JMeter Ramp Down Issue Description In load testing, ramp down implies gradually stopping the threads during a load run in order to detect memory leaks and check system's recovery after the application has reached a threshold. Unlike other common load test tools, JMeter cannot control "Ramp Down" of threads or vusers. This is because the thread group controls in JMeter shows Number of threads, Ramp-up Period, Loop count and Scheduler Configuration as Thread Properties. We can model the load test to run for certain number of iterations and since during that duration there will be certain iterations of the threads that might not have completed their execution. So, end time can't be predicted. Hence, it is supposed that Ramp Down cannot be controlled in JMeter. Rosetta Stone Spain Spanish Workaround Most of the Software Testing Companies around the world understands that, it is possible to simulate ramp down in JMeter by computing the overall time taken by a thread to complete a scenario and then place appropriate delays before exiting it. For example, we have a scenario with three transactions- 'login', 'search and view actions' and 'logout'. Using ramp up and scheduler property we can control ramp up and steady state and then for ramp down, we will first dry run the application to find the time taken by a single thread to complete the transaction. Now in the script considering this time as reference, we insert a delay before the logout transaction. This delay should change for every thread (using counter) to introduce corresponding ramp down in the load run. In this way we can provide a controlled ramp down to end the load test. Graphs and Reports in JMeter Rosetta Stone V3 Issue Description JMeter does not gather any server-side performance metrics, which is another area that Software Testing Companies take into consideration. It generates limited number of client-side graphs while the test is in progress. It is devoid of web resources graph like Hits per second, HTTP Status code summary, connections per second that are needed for monitoring the server's response. It also doesn't have webpage diagnostic graphs and graphs like error per second, error statistics, total errors that are required for checking the system's behaviour. Workaround For computing and interpreting test results, performance testers have two options. First install appropriate plugins required for generating graphs and reports e.g. JMeter provides Simple Data Writer listener that has very limited test results writing capabilities in which file formats are restricted to XML and CSV formats and the field order is predefined. This limitation can be overcome using "FlexibleFileWriter" plugin that allows writing test results in flexible format, specified in its GUI. Similarly Performance engineers can develop their own plugins for generating graphs for average page load time, average byte count, error occurrence, vuser ramp up as seen in above picture. Second option is to manually collect data generated by 'Aggregate Report', 'Summary Report' listeners in JTL format and then create graphs using excel or office tools. Nomenclature Misnomer: In JMeter, some of the controls are not correctly named as their functionality differs from their name. This can be difficult for a beginner to interpret the working and actual behaviour of the controls. Following sections lists and explains some of these controls and their right usage. Synchronizing Timer discount rosetta stone The purpose of timers in the scripts is to add certain amount of time delay between the sampler requests generated in the threads.
订阅:
博文评论 (Atom)
没有评论:
发表评论