Site announcement

We are switching off article comments on this website. Read about the upcoming changes to Atlassian Documentation.

Documentation for JIRA 6.4 (This documentation includes the project navigation sidebar). Not using this? See below:
(JIRA 6.4 without sidebar documentation | JIRA 6.3.x documentation | JIRA Cloud documentation | earlier versions of JIRA)

Skip to end of metadata
Go to start of metadata

Please be aware that the content on this page is not actively maintained and Atlassian can not guarantee providing any support for it. Furthermore, the performance testing scripts which you can download from Atlassian's public Maven repository (via the link on this page) are no longer supported.

This page is provided for your information only and using it is done so at your own risk. Instead of using these scripts, we would recommend our JIRA Performance Testing with Grinder page.

This page contains scripts and hints for testing usage load on your JIRA installation.

When 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.

Load testing scripts should not be used on a production JIRA installation!


While we recommend using a copy of your production data for testing usage load, the load testing scripts below will modify data within the targeted JIRA installation! Hence, these scripts should not be used on a production JIRA installation. Instead, use a copy of your production JIRA data on a test JIRA installation.

If you do run these test scripts against your production JIRA installation, you will be responsible for any data loss and backup recovery!

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.

On this page:

Prerequisites

You will need the following:

  • A JIRA installation, set up and running with an administrator user. The scripts assume that the username/password combination of this user is 'admin'/'admin'.
  • It is recommended that you test with a production quality database, such as one listed on the Supported Platforms page. Do not use HSQLDB.
  • Apache JMeter (currently version 2.3.4). If you intend to do high load testing, please use our modified version of JMeter instead (which requires Java 1.6).
  • The load testing scripts and resources which are available in our public Maven repository — Please choose the version that most closely matches your JIRA version and download the ZIP or Gzip file in that directory. If in doubt, download the ZIP file archive.

Users have reported problems using the Windows built-in unzip utility to extract these archives. If you encounter such a problem, please use a third party file archiving and extraction program (for example, 7-Zip) to extract these performance tests.

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:

  1. Create the setup testdata:

    <jmeter location>/bin/jmeter -n -t jmeter-test-setup.jmx -Jadmin.user=<username> -Jadmin.pass=<password>
  2. Run the fixed load test:

    <jmeter location>/bin/jmeter -n -t jmeter-test-fixedload.jmx

The remainder of this document is just an elaboration of those two steps.

For information on how to use JMeter please refer to the JMeter documentation.

Performance Tests

JIRA performance tests are made up of two parts:

  • Setup test — runs first and prepares the JIRA installation for a subsequent fixed load test
  • Fixed load test — simulates a number of users accessing the JIRA installation.

Setup Test

The setup test is responsible for:

  • Creating projects
  • Creating users
  • Creating and commenting on (and optionally resolving) issues.

Running the setup test:

After extracting the performance test zip file, change into the performanceTest directory. From this directory, run the performance setup test:

where <jmeter.location> is the base directory of JMeter

(info) If you omit the -n switch, JMeter will run as a GUI. You may then start the test from within the GUI.

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

Parameter

Default

Explanation

jira.host

localhost

The hostname or address of the JIRA installation.

jira.port

8000

The network port that the JIRA installation is running on.

jira.context

/

JIRA webapp context.

admin.user

admin

Administrator username.

admin.pass

admin

Administrator password.

script.base

.

The location of the performance tests. This should only be set if you run the tests from outside the scripts directory.

remove.data

false

Running the script with this enabled will remove the users and projects created by the test.

User Control

Parameter

Default

Explanation

create.users.enable

true

Create users in the target JIRA installation. Use false if you already have the users created elsewhere.

browseissue.max

250

The number of users to be created for browsing the JIRA installation (aka "browseissue" users).

createissue.max

250

The number of users to be created for creating issues (aka "createissue" users).

editissue.max

250

The number of users to be created for editing issues (aka "editissue" users).

search.max

250

The number of users to be created for searching issues (aka "search" users).

useraction.max

250

The number of users to be created for browsing user information (aka "useraction" users).

browseissue.groupname

none

The group to which "browseissue" users will be placed. Use none for no group.

createissue.groupname

jira-developers

The group to which "createissue" users will be placed. Use none for no group.

editissue.groupname

jira-developers

The group to which "editissue" users will be placed. Use none for no group.

search.groupname

none

The group to which "search" users will be placed. Use none for no group.

useraction.groupname

jira-developers

The group to which "useraction" users will be placed. Use none for no group.

Project Control

Parameter

Default

Explanation

create.projects.enable

true

Create projects. Use false if you want to use existing projects (in existing data).

project.max

20

The number of projects to create in the system.

Issue Control

Parameter

Default

Explanation

create.issues.enable

true

Creates issues in the target JIRA installation. Use false if you do not want the test to create sample issues.

issue.max

3000

The number of issues to be created.

issue.comment.enable

true

Controls whether or not comments are added to issues.

issue.comment.max

10

If issue.comment.enable is true, then the number of actual comments created on an issue is chosen randomly between 0 and this value.

issue.close

true

Controls whether or not issues will be closed automatically after being created.

issue.close.percentage

60

If issue.close is enabled, then this value defines the percentage of issues closed.

issue.setupload.threads

10

The number of threads used for creating the issues.

issue.setupload.pause

50

The amount of time (in milliseconds) for which a simulated user will 'sleep' between each request during issue creation.

resource.dir

resources

The directory which contains the CSV data resources.

Test Output

Once 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 Logs

In 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 Test

Once 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 behavior if the test. By default, the test has the following behavior and strategy:

  • Several groups of users, all running concurrently for a fixed amount of time, each with a small delay between requests.
    • 'Edit Issue' (editissue) users browse a project and then attempt to find an issue. They will then comment, edit or change the workflow of that issue.
    • 'User Action' (useraction) users create filters, view watches and votes.
    • 'Browse Issue' (browseissue) users browse projects and issues.
    • 'RSS' users browse project and then periodically fetch the RSS feed for that project.
    • 'Create Issues' (createissue) users add new issues to the instance.
    • 'Search Issues' (search) users search for issues using the quick search textbox.

(info) There is no execution of JavaScript by the JMeter client. JavaScript performance will depend on several factors such as your browser and workstation speed. JMeter does not measure this.

Running the fixed load test:

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

Parameter

Default

Explanation

jira.host

localhost

The hostname or address of the JIRA installation.

jira.port

8000

The network port that the JIRA installation is running on.

jira.context

/

JIRA webapp context.

admin.user

admin

Administrator username.

admin.pass

admin

Administrator password.

script.base

.

The location of the performance tests. This should only be set if you run the tests from outside the scripts directory.

script.runtime

1800

The amount of time to run for (in seconds).

resource.dir

resources

The subdirectory which contains the resource CSV files. Replace this if you wish to customize the backend data.

Edit Issue

Parameter

Default

Explanation

editissue.threads

5

The number of simultaneous 'Edit Issue' users to simulate.

editissue.pause

15000

The pause between each 'Edit Issue' user request (in milliseconds).

workflow.matchname

(Close | Resolve)

A regular expression to match the workflow to action.

editworkflow.percentage

20

The percentage of 'Edit Issue' user requests that will attempt to change the issue workflow.

addcomment.percentage

60

The percentage of 'Edit Issue' user requests that will attempt to add a comment to an issue.

editissue.percentage

20

The percentage of 'Edit Issue' user requests that will attempt to edit an issue.

editissue.issuestoown

5

The number of issues the test attempts to assign to an 'Edit Issue' user.

User Actions

Parameter

Default

Explanation

useraction.threads

1

The number of simultaneous 'User Action' users to simulate.

useraction.pause

40000

The pause between each 'User Action' user request (in milliseconds).

createfilter.percentage

10

The percentage of 'User Action' user requests that will attempt to create a filter.

viewwatches.percentage

10

The percentage of 'User Action' user requests that will attempt to 'view watches'.

viewvotes.percentage

10

The percentage of 'User Action' user requests that will attempt to view votes.

Browse Issues and Projects

Parameter

Default

Explanation

browseissue.threads

40

The number of simultaneous 'Browse Issue' users to simulate.

browseissue.pause

3000

The pause between each 'Browse Issue' user request (in milliseconds).

userprofile.percentage

10

The percentage of 'Browse Issue' user requests that will attempt to browse a user profile.

browsedashboard.percentage

20

The percentage of 'Browse Issue' user requests that will attempt to browse the dashboard.

dashboard.category

allprojects

The project category for project status gadget requests.

RSS

Parameter

Default

Explanation

browserss.threads

10

The number of simultaneous 'RSS' users to simulate.

browserss.pause

60000

The pause between each 'RSS' user request (in milliseconds).

Create Issues

Parameter

Default

Explanation

issue.create.threads

3

The number of simultaneous 'Create Issue' users to simulate.

issue.create.pause

15000

The pause between each 'Create Issue' user request (in milliseconds).

issue.comment.max

2

The maximum number of comments on an issue. The actual number is chosen randomly between 0 and this value.

Search For Issues

Parameter

Default

Explanation

search.threads

2

The number of simultaneous 'Search' users to simulate.

search.pause

15000

The pause between each 'Search' user request (in milliseconds).

Test Output

Once 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 Logs

As 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.

36 Comments

  1. Anonymous

    Hello,

    If you intend to do high load testing, please use our modified version of JMeter instead (which requires Java 1.6).quote}

    Can you explain the difference between the Atlassian package and the standard JMeter package ?

    Thank you !

    Ludovic

    1. The JIRA tests make heavy use of JavaScript expressions. The modified version of JMeter uses native JavaScript intepreter classes which are significantly faster.

      You can find the source code here.

  2. Hi,

    thanks a lot for these test scripts. Really helpful.

    I have a question about tests with JMeter on Jira with SSL. Is there some modifications needed? Because I have troubles with this. It looks like no cookies aren't transfered to next requests, or something like this.

    Thanks for help!

    1. When all others fail, it's time to read documentation. In this case, JMeter documentation :)

      Solution is very simple. In Test plan -> Jira Server Defaults, and there into "Protocol" fill "https".

  3. Since Jira 4.2 (??) atl_token parameters are added to the most of the forms/requests. 

    Since that - http://maven.atlassian.com/public/com/atlassian/performance/jira/performance-test/4.2/  jmeter-test-setup.jmx fails to perform Issue Close transition.

    Please update reCloseWorkflowId REGEXP value.

    Should I submit bugReport instead? 

    1. Thanks Leonid, that's useful.

      I also had to modify the "extract pid" RE extractor for use on windows:

      Also create filter step 3, jqlQuery should have quotes as project names contain spaces in the default csv:

  4. Anonymous

    I'm trying to get Jmeter running to test performance on our Jira 5.0 setup-

     

    I followed these instructions and tried both regular and high load testing-

    http://confluence.atlassian.com/display/JIRA/Performance+Testing+Scripts

     

    I however have gotten the following error when trying to run the first step:

     

     

    <?xml version="1.0" encoding="UTF-8"?>

    <testResults version="1.2">

    <httpSample t="1028" lt="0" ts="1334590700705" s="false" lb="Go to Login" rc="Non HTTP response code: java.net.ConnectException" rm="Non HTTP response message: Connection refused: connect" tn="Perform Index optimise 1-1" dt="text" by="1427" ng="1" na="1">

      <responseHeader class="java.lang.String"></responseHeader>

      <requestHeader class="java.lang.String">X-Atlassian-Token: no-check

    </requestHeader>

      <responseData class="java.lang.String">java.net.ConnectException: Connection refused: connect&#xd;

     at java.net.PlainSocketImpl.socketConnect(Native Method)&#xd;

     at java.net.PlainSocketImpl.doConnect(Unknown Source)&#xd;

     at java.net.PlainSocketImpl.connectToAddress(Unknown Source)&#xd;

     at java.net.PlainSocketImpl.connect(Unknown Source)&#xd;

     at java.net.SocksSocketImpl.connect(Unknown Source)&#xd;

     at java.net.Socket.connect(Unknown Source)&#xd;

     at sun.net.NetworkClient.doConnect(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.openServer(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.openServer(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.&lt;init&gt;(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.New(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.New(Unknown Source)&#xd;

     at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)&#xd;

     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)&#xd;

     at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)&#xd;

     at org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:490)&#xd;

     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1037)&#xd;

     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1023)&#xd;

     at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:346)&#xd;

     at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)&#xd;

     at java.lang.Thread.run(Unknown Source)&#xd;

    </responseData>

      <cookies class="java.lang.String"></cookies>

      <method class="java.lang.String">GET</method>

      <queryString class="java.lang.String"></queryString>

    </httpSample>

    <httpSample t="1025" lt="0" ts="1334590702646" s="false" lb="Go to Login" rc="Non HTTP response code: java.net.ConnectException" rm="Non HTTP response message: Connection refused: connect" tn="Create Project 2-1" dt="text" by="1427" ng="1" na="1">

      <responseHeader class="java.lang.String"></responseHeader>

      <requestHeader class="java.lang.String">X-Atlassian-Token: no-check

    </requestHeader>

      <responseData class="java.lang.String">java.net.ConnectException: Connection refused: connect&#xd;

     at java.net.PlainSocketImpl.socketConnect(Native Method)&#xd;

     at java.net.PlainSocketImpl.doConnect(Unknown Source)&#xd;

     at java.net.PlainSocketImpl.connectToAddress(Unknown Source)&#xd;

     at java.net.PlainSocketImpl.connect(Unknown Source)&#xd;

     at java.net.SocksSocketImpl.connect(Unknown Source)&#xd;

     at java.net.Socket.connect(Unknown Source)&#xd;

     at sun.net.NetworkClient.doConnect(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.openServer(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.openServer(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.&lt;init&gt;(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.New(Unknown Source)&#xd;

     at sun.net.www.http.HttpClient.New(Unknown Source)&#xd;

     at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)&#xd;

     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)&#xd;

     at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)&#xd;

     at org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:490)&#xd;

     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1037)&#xd;

     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1023)&#xd;

     at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:346)&#xd;

     at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)&#xd;

     at java.lang.Thread.run(Unknown Source)&#xd;

    </responseData>

     

     

    ---

     

    It goes on and on like that and nothing is ever actually done...

     

    I looked for tips and have no idea where I'm going wrong, I thought it was the threadcount- but I'm really not sure? maybe the port is not open? proxy? I have no idea.. any help would be appreciated.

  5. I'm hoping somone can assist with a solution to my query. When running jmeter test against a local instance of JIRA errors are revealed in the log file. I have been searching for similar errors online but nobody seems to have experienced these errors.

     JIRA 4.4.3, MSSQL 2008, using jakarta-jmeter-2.3.4-atlassian-1

    2012/09/19 20:56:10 INFO  - jmeter.engine.StandardJMeterEngine: Starting 10 threads for group Create Issues. Ramp up = 60.

    2012/09/19 20:56:10 INFO  - jmeter.engine.StandardJMeterEngine: Thread will continue on error

    2012/09/19 20:56:10 INFO  - jmeter.threads.JMeterThread: Thread started: Create Issues 8-1

    2012/09/19 20:56:11 INFO  - jmeter.engine.StandardJMeterEngine: All threads have been started

    2012/09/19 20:56:11 ERROR - jmeter.protocol.http.sampler.HTTPSampler: readResponse: java.io.IOException: Server returned HTTP response code: 500 for URL: http://sadev027:8090/jira/secure/CreateIssueDetails.jspa

    2012/09/19 20:56:11 ERROR - jmeter.protocol.http.sampler.HTTPSampler: Cause: java.io.IOException: Server returned HTTP response code: 500 for URL: http://sadev027:8090/jira/secure/CreateIssueDetails.jspa

    2012/09/19 20:56:11 INFO  - jmeter.protocol.http.sampler.HTTPSampler: Error Response Code: 500

    2012/09/19 20:56:11 INFO  - jmeter.services.FileServer: Stored: resources/issues/comments.csv

     

     

    1. I've now tested the setup performance test on JIRA5.0.7 wih Sql2008, Initlaly is seems to work fine - No errors in the logfiles are apparent. After reviewing the assertions file this is the beginning result

       

      <?xml version="1.0" encoding="UTF-8"?> <testResults version="1.2"> <httpSample t="541" lt="540" ts="1350029715021" s="false" lb="Create Issue Step 1" rc="200" rm="OK" tn="Create Issues 8-1" dt="text" by="54" ng="1" na="1">   <assertionResult>     <name>Assert Check response</name>     <failure>true</failure>     <error>false</error>     <failureMessage>Test failed: text expected to contain /Create Issue/</failureMessage>   </assertionResult>   <responseHeader class="java.lang.String">HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-AREQUESTID: 615x4113x1 X-ASESSIONID: 1v0y4nc Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: Thu, 01 Jan 1970 00:00:00 GMT X-Seraph-LoginReason: OK X-AUSERNAME: tstcreateissue221 Content-Type: text/html;charset=UTF-8 Content-Length: 54 Date: Fri, 12 Oct 2012 08:15:14 GMT Connection: close </responseHeader>   <requestHeader class="java.lang.String">X-Atlassian-Token: no-check Connection: close Content-Type: application/x-www-form-urlencoded </requestHeader>   <responseData class="java.lang.String">For input string: &quot;PROJECT_ID_REGEX_FAILED_AA project&quot;</responseData>   <cookies class="java.lang.String">$Version=0; JSESSIONID=3A3FF99035E3D8A7E906D243FDE19898; $Path=/; seraph.rememberme.cookie=10022%3A0137f64a6beb9e1b0e4f4d11c69becb1b253cff0; $Path=/; atlassian.xsrf.token=BYE5-Z4FO-VY2Z-YDMX|648c206e276b7296ad37b74083c53d686449679d|lin; $Path=/</cookies>   <method class="java.lang.String">POST</method>   <queryString class="java.lang.String">issuetype=ISSUE_TYPE_REGEX_PID_FAILED_AA+project_PROJECT_ID_REGEX_FAILED_AA+project&amp;pid=PROJECT_ID_REGEX_FAILED_AA+project&amp;Next%3E%3E=Next%3E%3E</queryString> </httpSample>

       

      I'd really appreciate assistance in resolving this issue. We now have the Jmeter tests failling as well as the Grinder tests on the same JIRA version. This is a clean install of JIRA on an external database server. Any Ideas ??

       

       

      1. Anonymous

        Did you ever figure this out? I am encountering the same issue.

        1. I have the same error message, any resolutions ?

  6. Why the warning "Do not use HSQLDB"?  Certainly I would expect the performance to be poor, but wouldn't the tests still work?  Or does that level of load cause database corruption? 

    1. I can report that I did the above tests with Apache JMeter 2.8 and the supplied scripts on JIRA 5.1.4, against both a HSQLDB and a postgreSQL databases with no problems.

       

  7. Anonymous

    Is this works for 5.2.1 JIRA instance, I am facing same problem which Earl West is facing. Appreciate your help. 

  8. I ran the setup data script, and realized that it created an extra 1250 users in my crowd directory, and I need to get those users removed. If I was to run the setup data performance script with the remove.data=true, would it remove data created before by the same script?

  9. Hi

    Does anyone tried these scripts on JIRA 5.2.11 with Apache FrontEnd with Apache Auth enabled?

    Seem with current configuration I need to detach JIRA from Apache to get the results.

    Regards,

    Areg

  10. Hi,

    when I try to run the setup test against a fresh installed 6.0.6 standalone JIRA I only get a lot of exceptions like:

    Is this a known issue? I cannot find anything about it (sad)

    I appreciate any help!

     

    Regards,

     

    Christian

    1. Even I am also facing the same exception as that of Christian and I am on JIRA 6.1.1, any help would be appreciated.


      Error log:

      2013-11-13 18:06:05,542 http-bio-8080-exec-21 ERROR anonymous 1086x740x1 xtvxtl 12.12.36.16/secure/CreateIssue.jspa [web.action.issue.CreateIssue] java.lang.NumberFormatException: For input string: "PROJECT_ID_REGEX_FAILED_DDD project"

      java.lang.NumberFormatException: For input string: "PROJECT_ID_REGEX_FAILED_DDD project"

              at java.lang.NumberFormatException.forInputString(Unknown Source)

              at java.lang.Long.parseLong(Unknown Source)

              at java.lang.Long.<init>(Unknown Source)

              at com.atlassian.jira.issue.fields.ProjectSystemField.getRelevantParams(ProjectSystemField.java:177)

              at com.atlassian.jira.issue.fields.AbstractOrderableField.populateFromParams(AbstractOrderableField.java:184)

              at com.atlassian.jira.web.action.issue.IssueCreationHelperBeanImpl.validateProject(IssueCreationHelperBeanImpl.java:228)

              at com.atlassian.jira.web.action.issue.CreateIssue.doValidation(CreateIssue.java:118)

              at webwork.action.ActionSupport.validate(ActionSupport.java:391)

              at webwork.action.ActionSupport.execute(ActionSupport.java:162)


      1. Errors were due to custom fields existing on projects, so tried a fresh JIRA installation without any data on it and I was able to run the scripts without any issues.

        1. Hello Sunil, I had the same exception as you but even without any customfield, the script still fail. Have you gat any suggestion to solve my issue ?

  11. Hi,

    The link http://maven.atlassian.com/public/com/atlassian/performance/jira/performance-test/ is broken. where can i find the jmeter performance-test scripts?

    Thank you

    1. I got same problem. Thanks

    2. Kai

       Request is marked as local-only, remote access not allowed from M2Repository
  12. It looks like an updated version of the jmeter scripts is available at  JRA-40050 - Documentation request: JIRA 6.3.x performance testing scripts Open

  13. I am doing stresstests on JIRA 6.2.1 using the Atlassian tailored version of jmeter, together with the 6.0 versions of the scripts from the maven repo. I get a constant rate of errors at around 24%:

     

    Generate Summary Results +   161 in  85.9s =    1.9/s Avg:    74 Min:     1 Max:   349 Err:    37 (22.98%)

    Generate Summary Results +  1275 in 180.1s =    7.1/s Avg:    54 Min:     1 Max:   415 Err:   309 (24.24%)

    Generate Summary Results =  1436 in 266.2s =    5.4/s Avg:    56 Min:     1 Max:   415 Err:   346 (24.09%)

    Generate Summary Results +  2569 in 179.5s =   14.3/s Avg:    48 Min:     1 Max:   309 Err:   634 (24.68%)

    Generate Summary Results =  4005 in 445.9s =    9.0/s Avg:    51 Min:     1 Max:   415 Err:   980 (24.47%)

     

    Looking at my catalina out i see a lot of:

    my.ip.he.re 929x36855x2 tstbrowseissue36 [21/Jan/2015:15:29:47 +0000] "GET /browse/ISSUEKEY_REGEX_FAILURE HTTP/1.1" 404 25473 28 "-" "Java/1.6.0_24" "1w5labi"

    my.ip.he.re 929x36856x1 tstbrowseissue4 [21/Jan/2015:15:29:47 +0000] "GET /browse/ISSUEKEY_REGEX_FAILURE HTTP/1.1" 404 25467 23 "-" "Java/1.6.0_24" "5066ra"

     

    Have i missed setting up a parameter in these scripts? Know this is not a supported tool-chain, but was hoping someone else had similar issues?

    Kind regards

    Jonas

    1. I've been seeing similar errors though not at the rate you are seeing them. More like around 2% - 5% range. though I need to check those figures to be sure

  14. Hi

    Will it be possible to update the modified High Load JMeter as the latest one is already version 2.12 and your one is still on 2.3.4 ...

    Regards,

    Areg

  15. Quick questio, the variable in the scritps projects.max; Does that indicate the number of projects which will be created at the beginning of jmeter-test-setup doing it's thing, or does that refer to the number of projects which will be set up over the course of the run.r

     

    For instance if I set project.max = 200, does that mean that 200 projects will be created initially, or 200 projects will be created by the time setup and testing are complete

    1. Hi Paul

      From my experience so far I can say that that option does not work at all.

      Scripts are using the resources/projects/projectKeys.csv file to generate projects during the setup step and that file contain only 20 lines.

      If you need to create more projects you need to recreate that file with 200 lines.

      Regards,

      Areg

      1. Wrote a quick perl script to generate a projectKeys.csv file of up to 8K issues. That did the trick. Thanks!!!

  16. Anyone else notice create issue step1,2,3 errors  during the fixload script running, or any errors around invalid Priorities ?

    Unknown macro: {1,2,3}
  17. I am curious if anyone is using the Atlassian jmeter with test scripts to generate large data sets.

    I am generating 100K issues against 2K projects with a total 1250 users. As far as I can tell jmeter is still running generating issues. When I log into the JIRA instance under test however I get :An unknown error occurred while trying to perform a search.

    Is or was there any more specific configuration I should have done for JIRA before running the test ?

    Running JIRA 6.3.15, on

    Linux  2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux using oracle 11g database

     

     

  18. Hi , 

    I'm getting a Error in NonGUIDriver java.lang.NullPointerException when trying to run the new jmeter-test-setup-fix02.jms which is mentioned in JRA-40050.

    If I try to open the XML in the JMeter GUI , I get an error message that says "error in TestPlan - see log file" , and in the log file I get this error :

    41 ERROR - jmeter.save.SaveService: Conversion error com.thoughtworks.xstream.converters.ConversionException: HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy
    ---- Debugging information ----
    message : HTTPSamplerProxy : HTTPSamplerProxy
    cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
    cause-message : HTTPSamplerProxy : HTTPSamplerProxy
    class : org.apache.jorphan.collections.ListedHashTree
    required-type : org.apache.jorphan.collections.ListedHashTree
    path : /jmeterTestPlan/hashTree/hashTree/hashTree[7]/hashTree/HTTPSamplerProxy
    line number : 334
    ------------------------------- : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy
    ---- Debugging information ----
    message : HTTPSamplerProxy : HTTPSamplerProxy
    cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
    cause-message : HTTPSamplerProxy : HTTPSamplerProxy
    class : org.apache.jorphan.collections.ListedHashTree
    required-type : org.apache.jorphan.collections.ListedHashTree
    path : /jmeterTestPlan/hashTree/hashTree/hashTree[7]/hashTree/HTTPSamplerProxy
    line number : 334
    -------------------------------
    message : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy
    ---- Debugging information ----
    message : HTTPSamplerProxy : HTTPSamplerProxy
    cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
    cause-message : HTTPSamplerProxy : HTTPSamplerProxy
    class : org.apache.jorphan.collections.ListedHashTree
    required-type : org.apache.jorphan.collections.ListedHashTree
    path : /jmeterTestPlan/hashTree/hashTree/hashTree[7]/hashTree/HTTPSamplerProxy
    line number : 334
    -------------------------------
    cause-exception : com.thoughtworks.xstream.converters.ConversionException
    cause-message : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy : HTTPSamplerProxy
    first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:81)
    class : org.apache.jmeter.save.ScriptWrapper
    required-type : org.apache.jorphan.collections.ListedHashTree
    path : /jmeterTestPlan/hashTree/hashTree/hashTree[7]/hashTree/HTTPSamplerProxy
    line number : 334
    -------------------------------
    2015/03/22 09:27:41 WARN - jmeter.gui.action.Load: Unexpected error java.lang.Exception: Error in TestPlan - see log file
    at org.apache.jmeter.gui.action.Load.insertLoadedTree(Load.java:153)
    at org.apache.jmeter.gui.action.Load.loadProjectFile(Load.java:108)
    at org.apache.jmeter.gui.action.Load.doAction(Load.java:89)
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80)
    at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:42)
    at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:59)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

     

    Did someone else expirience this kind of behavior ? Is there any way to fix it?

     

    I'm running it on JIRA 6.3.15 , however I don't think I'm even getting to the poing I'm accessing the JIRA.

     

    Thanks in Advance 

  19. HP

    1. I faced the same error too, "'Error in NonGUIDriver java.lang.NullPointerException" with jmeter-test-setup-fix02.jmx (I used JIRA 6.3.15 too, fresh installation without data) .. Any Idea to fix this?
    2. Second attempt, by using the version from "jakarta-jmeter-2.3.4-atlassian-1" , based on the log from the GUI, it seem completed

    Created the tree successfully using jmeter-test-setup.jmx

    Starting the test @ Thu Apr 16 00:13:59 CDT 2015 (1429161239156)

    Waiting for possible shutdown message on port 4445

    Generate Summary Results +  4558 in  59.8s =   76.2/s Avg:     0 Min:     0 Max:   223 Err:  4558 (100.00%)

    Generate Summary Results + 10586 in  86.1s =  123.0/s Avg:     0 Min:     0 Max:    27 Err: 10586 (100.00%)

    Generate Summary Results = 15144 in 145.9s =  103.8/s Avg:     0 Min:     0 Max:   223 Err: 15144 (100.00%)

    Tidying up ...    @ Thu Apr 16 00:16:26 CDT 2015 (1429161386119)

    ... end of run

     

    But from Jira, I didn't see any project or issues created. I cant find way to fix it. Any advise? THanks!

     

    1. The summary results shows a 100% error, which means nothing was created in the instance.

      You should use the fixed scripts here:  JRA-40050 - Documentation request: JIRA 6.3.x performance testing scripts Open  

      If you encounter other problems, try checking the JIRA logs or jmeter.log file. Good luck

    2. HP

      For the error, I m using the latest script form the ticket, JRA-40050.

      Anyway, this was fixed.

      Peter asked to download the JMeterPlugins-Extras-1.2.1.zip, and xtracted the jar and upload to jmeter lib folder. And I run it with the old setup script, and able to create the project, ticket, etc