JIRA 4.3 : Performance Testing Scripts
This page last changed on Sep 08, 2010 by ggaskell.
This page contains scripts and hints for testing usage load on your JIRA installation. Contents IntroductionWhen setting up a new JIRA installation, it is useful to understand how it will perform under your anticipated load before users begin accessing it. Scripts that generate 'request' (or usage) load are provided in our public Maven repository (link below). Using these scripts, you can find out where you may need to consider improving your configuration to remove bottlenecks. While this kind of testing is not an exact science, the tools and processes described here are intended to be straightforward and configurable, and provide you with an extensible way to assess load testing. The performance tests described on this page utilise JMeter. While it is not necessary to know JMeter, briefly reading through the JMeter documentation is recommended as it may help you resolve any JMeter-specific issues. It is rarely the case that these scripts will perform representative testing for you 'out of the box'. However, it should be possible to build an appropriate load test by configuring or extending these scripts.
Likewise, when making changes to your JIRA installation to remove performance bottlenecks, it is useful to assess the impact of these changes in a test JIRA installation before implementing them in production. PrerequisitesYou will need the following:
Quick, just tell me how to run these tests!If you do not want to read the rest of this document, here are the main points:
The remainder of this document is just an elaboration of those two steps.
Performance TestsJIRA performance tests are made up of two parts:
Setup TestThe setup test is responsible for:
Running the setup test: After extracting the performance test zip file, change into the performanceTest directory. From this directory, run the performance setup test: <jmeter location>/bin/jmeter -n -t jmeter-test-setup.jmx -Jadmin.user=<username> -Jadmin.pass=<password> where <jmeter.location> is the base directory of JMeter
As seen above with the admin.user and admin.pass parameters, JMeter supports -Jparameter=value command arguments in order to control execution. The following parameters control the setup test execution: Configuration Control
User Control
Project Control
Issue Control
Test OutputOnce you have chosen your target settings, run JMeter and you should get output similar to the following: jmeter -n -t jmeter-test-setup.jmx Created the tree successfully using jmeter-test-setup.jmx Starting the test @ Mon Oct 26 23:53:28 CDT 2009 (1256619208435) Generate Summary Results + 931 in 31.3s = 29.7/s Avg: 26 Min: 13 Max: 3256 Err: 0 (0.00%) Generate Summary Results + 2948 in 180.0s = 16.4/s Avg: 31 Min: 8 Max: 1162 Err: 0 (0.00%) Generate Summary Results = 3879 in 211.4s = 18.3/s Avg: 29 Min: 8 Max: 3256 Err: 0 (0.00%) Generate Summary Results + 5048 in 179.9s = 28.1/s Avg: 44 Min: 7 Max: 936 Err: 0 (0.00%) Generate Summary Results = 8927 in 391.4s = 22.8/s Avg: 37 Min: 7 Max: 3256 Err: 0 (0.00%) Generate Summary Results + 3114 in 180.1s = 17.3/s Avg: 41 Min: 7 Max: 805 Err: 0 (0.00%) Generate Summary Results = 12041 in 571.3s = 21.1/s Avg: 38 Min: 7 Max: 3256 Err: 0 (0.00%) Generate Summary Results + 4956 in 179.8s = 27.6/s Avg: 45 Min: 7 Max: 1844 Err: 0 (0.00%) Generate Summary Results = 16997 in 751.4s = 22.6/s Avg: 40 Min: 7 Max: 3256 Err: 0 (0.00%) Generate Summary Results + 313 in 17.1s = 18.3/s Avg: 37 Min: 7 Max: 165 Err: 0 (0.00%) Generate Summary Results = 17310 in 768.5s = 22.5/s Avg: 40 Min: 7 Max: 3256 Err: 0 (0.00%) Tidying up ... @ Tue Oct 27 00:06:17 CDT 2009 (1256619977181) ... end of run This output will be updated every 3 minutes, showing the most recent activity as well as a summary for the whole test. Result LogsIn addition to this summary data, which is output on the command line, log files are created for both the successful (jmeter-results-setup.jtl) and unsuccessful (jmeter-assertions-setup.jtl) results. These log files are saved in JTL format (which is based on XML). There are a number of parsers which will generate graphs from these log files. For more information, see the JMeter wiki page on Log Analysis. Fixed Load TestOnce the setup test has successfully run, the fixed load test can be run. This test will simulate a number of users accessing the JIRA installation. This test has a number of parameters for tweaking the behaviour if the test. By default, the test has the following behaviour and strategy:
Running the fixed load test: <jmeter location>/bin/jmeter -n -t jmeter-test-fixedload.jmx As with the setup test (above), this command will run the fixed load test with the default values. Similarly, it is possible to control the execution of JMeter with -J parameters. The fixed load test has the following available parameters: Configuration Control
Edit Issue
User Actions
Browse Issues and Projects
RSS
Create Issues
Search For Issues
Test OutputOnce you have chosen your target settings, run JMeter and you should get output similar to the following: jmeter -n -t jmeter-test-fixedload.jmx Created the tree successfully using jmeter-test-fixedload.jmx Starting the test @ Wed Oct 28 01:13:22 CDT 2009 (1256710402435) Waiting for possible shutdown message on port 4445 Generate Summary Results + 568 in 97.9s = 5.8/s Avg: 62 Min: 1 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 3861 in 179.4s = 21.5/s Avg: 39 Min: 0 Max: 494 Err: 0 (0.00%) Generate Summary Results = 4429 in 277.4s = 16.0/s Avg: 42 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 7356 in 180.0s = 40.9/s Avg: 37 Min: 0 Max: 481 Err: 0 (0.00%) Generate Summary Results = 11785 in 457.3s = 25.8/s Avg: 39 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 10841 in 180.1s = 60.2/s Avg: 38 Min: 0 Max: 995 Err: 0 (0.00%) Generate Summary Results = 22626 in 637.4s = 35.5/s Avg: 39 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 11821 in 180.3s = 65.6/s Avg: 37 Min: 0 Max: 507 Err: 0 (0.00%) Generate Summary Results = 34447 in 817.3s = 42.1/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 11904 in 180.9s = 65.8/s Avg: 38 Min: 0 Max: 658 Err: 0 (0.00%) Generate Summary Results = 46351 in 997.4s = 46.5/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 11697 in 180.3s = 64.9/s Avg: 38 Min: 0 Max: 488 Err: 0 (0.00%) Generate Summary Results = 58048 in 1177.4s= 49.3/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 11731 in 180.0s = 65.2/s Avg: 39 Min: 0 Max: 810 Err: 0 (0.00%) Generate Summary Results = 69779 in 1357.4s= 51.4/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 11646 in 180.0s = 64.7/s Avg: 39 Min: 0 Max: 776 Err: 0 (0.00%) Generate Summary Results = 81425 in 1537.4s= 53.0/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 11810 in 180.0s = 65.6/s Avg: 39 Min: 0 Max: 798 Err: 0 (0.00%) Generate Summary Results = 93235 in 1717.3s= 54.3/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%) Generate Summary Results + 5453 in 109.1s = 50.0/s Avg: 42 Min: 0 Max: 858 Err: 0 (0.00%) Generate Summary Results = 98688 in 1826.4s= 54.0/s Avg: 39 Min: 0 Max: 1534 Err: 0 (0.00%) Tidying up ... @ Wed Oct 28 01:43:49 CDT 2009 (1256712229128) ... end of run This output will be updated every 3 minutes, showing the most recent activity as well as a summary for the whole test. Result LogsAs above, there will be output on the command line and log files will be created for both the successful (jmeter-results-setup.jtl) and unsuccessful (jmeter-assertions-setup.jtl) results. These log files are saved in the JTL format (based on XML). There are a number of parsers which will generate graphs from these logs files. For more information, see the JMeter wiki page on Log Analysis. |
![]() |
Document generated by Confluence on Mar 27, 2011 18:36 |