Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1.  Review the "Max results per request" setting in the the Miscellaneous administration settings as it controls the pagination on the REST API calls. The default value should be ok.
  2.  Limit API calls (to Jira and Xray related endpoints) using a reverse proxy
    1. Evaluate what REST API calls are being used, discuss their real need with users
      1. Make sure that pagination is being used on the REST API calls
    2. Restrict access to REST API calls
      1. Limit access to well-known hosts/applications
  3.  Export results endpoint (i.e. /rest/raven/1.0/testruns) allows you to include custom fields from the Test issues in the response, using includeTestFields parameters; please choose carefully what fields you choose to include, as some of these may be calculated and thus add some additional overhead to the request.
  4.  Whenever searching for issues using Jira's REST API (i.e. api/2/search), please choose explicitly what fields to return iusing the fields parameter; that will avoid including unnecessary fields that are included by default and that add overhead to the request. This can be aggravated if this endpoint is used automatically by some integration with an external application.
  5. Diamantino Campos  vai ver o q mandou pra ubs; podes fazer-me fwd?

Reporting

JQL

Xray provides dozens of JQL functions but you have to use them carefuly to make sure your instance is not affected. Please do train your users on JQL before "allowing" to use them throughout Jira.

  1.   Using unoptimized JQL queries can degrade performance substantially
    1. most times this happens because users don't understand how JQL works first of all; JQL is not like SQL (see Understanding JQL Performance). Thus, filtering issues by project by adding the "project = <xxx>" clause is not the same as specifying the project as argument to the subsequent JQL function.
      1. Example: 
        1. Use

          issue in requirements('OK','CALC')

          ...instead of ...

          project = 'CALC' and issue in requirements('OK')

  2.  Some JQL functions, such as the ones dealing with requirement coverage, may be more intensive than other ones, since Xray may have to, for example, load all the related Test Runs in order to obtain relevant data. Some care should be taken with the following JQL functions:
    1. testPlanTests() - whenever by tests in a given status; the current workaround is to search using the "TestRunStatus" custom field. 

      Note
      titlePlease note

      When searching for Tests with a certain status inside a Test Plan, we recommend you to use the custom field search instead.


      Xray has created a new way of searching with big improvements when filtering by test status, using the Custom Fields:
      (3)
      issuetype = Test and TestRunStatus = "DEMO-10 - TODO"
      (4)
      issuetype = Test and TestRunStatus = "DEMO-10 - TODO environment:IOS"

    2. requirements() - whenever filtering by dates, as shown in the following example:
         requirements('OK',
                   'Calculator',  
                   'v1.0',
                   'chrome' 
                   'false'
                   '2014-08-30')
    3. testExecutionTests()  (Diamantino Campos tem duvidas... podes confirmar pf?)  - whenever filtering by tests/requirements in a given status; it will depend on the amount of Tests you have on the Test ExecutionparentRequirements() (Diamantino Campos tem duvidas.. podes confirmar pf?)  - depending on the amount of requirements and sub-requirements you have, it can take a while to complete and require some resources
    4. Diamantino Campos , any other Jql function?


Xray calculated custom fields

...

  1.  Xray provides some maintenance operations that can be used under certain circumstances, if needed. If you clear some of Xray calculated custom fields, either using Integrity Checker > Calculated Custom Field Values option in administration settings or using the available bulk operations for Requirement Status and TestRunStatus custom fields, it will impact the reindex time considerable as the values have to be all recalculated. Diamantino Campos haverá algum custom field que possa ser excluido do reindex e que afecte o tempo de reindex dramaticamente? => não, pq o requirements status é necessário para o funcionamento do Xray

Other operations

  1.  Avoid bulk cloning Test plans or Test Executions using some specific apps for that purpose; cloning multiple issues at the same time can add some overhead to Jira as these can affect the calculations of the statuses of Tests and requirements.

...