Skip to content

Optimize requests/api/merge_requests_spec.rb spec

Igor Drozdov requested to merge id-optimize-mr-requests-spec into master

What does this MR do?

Related issue: https://gitlab.com/gitlab-org/plan/-/issues/145

Use let_it_be for most instances and create multiple merge requests only for those tests, for which this list is required.

The spec has still room for improvement but reducing the time from 12m to 5m (locally) is a good start.

Before

  • Total events: 165297
  • Finished in 12 minutes 19 seconds
[TEST PROF INFO] Factories usage

 Total: 4845
 Total top-level: 3795
 Total time: 536.6095s
 Total uniq factories: 20

   total   top-level     total time      time per call      top-level time               name

    1784        1453      455.0385s            0.2551s           308.7574s      merge_request
     680         680       15.7812s            0.0232s            15.7812s note_on_merge_request
     651         307      105.9408s            0.1627s            44.0130s            project
     366         366        9.0752s            0.0248s             9.0752s          milestone
     364           0       15.1531s            0.0416s             0.0000s          namespace
     336         336        3.3638s            0.0100s             3.3638s personal_access_token
     332         332      148.5581s            0.4475s           148.5581s merge_request_context_commit
     111         111        0.4086s            0.0037s             0.4086s         label_link
      99          99        0.7392s            0.0075s             0.7392s              label
      76          72        2.8093s            0.0370s             2.6019s               user
      17          17        0.5923s            0.0348s             0.5923s              group
      11           7        1.4540s            0.1322s             1.3708s        ci_pipeline
       8           8        0.4107s            0.0513s             0.4107s  ci_empty_pipeline
       3           3        0.3411s            0.1137s             0.3411s        award_emoji
       2           2        0.1081s            0.0541s             0.1081s              issue
       1           0        0.0347s            0.0347s             0.0000s  jira_tracker_data
       1           0        0.1570s            0.1570s             0.0000s    ci_job_artifact
       1           1        0.4736s            0.4736s             0.4736s       jira_project
       1           0        0.3135s            0.3135s             0.0000s       jira_service
       1           1        0.0146s            0.0146s             0.0146s            license

After

  • Total events: 58311
  • Finished in 4 minutes 18.7 seconds
[TEST PROF INFO] Factories usage

 Total: 1047
 Total top-level: 995
 Total time: 65.6347s
 Total uniq factories: 20

   total   top-level     total time      time per call      top-level time               name

     336         336        3.2268s            0.0096s             3.2268s personal_access_token
     227         227       46.0061s            0.2027s            46.0061s      merge_request
     111         111        0.4031s            0.0036s             0.4031s         label_link
      99          99        1.0764s            0.0109s             1.0764s              label
      75          64       10.4595s            0.1395s             8.7727s            project
      50          46        1.9550s            0.0391s             1.8352s               user
      47          47        1.0816s            0.0230s             1.0816s          milestone
      33           0        1.3452s            0.0408s             0.0000s          namespace
      17          17        0.5907s            0.0347s             0.5907s              group
      14          14        0.0921s            0.0066s             0.0921s merge_request_context_commit
      12          12        0.4272s            0.0356s             0.4272s note_on_merge_request
       8           8        0.5046s            0.0631s             0.5046s  ci_empty_pipeline
       8           7        0.9387s            0.1173s             0.9103s        ci_pipeline
       3           3        0.2520s            0.0840s             0.2520s        award_emoji
       2           2        0.0915s            0.0458s             0.0915s              issue
       1           0        0.0276s            0.0276s             0.0000s  jira_tracker_data
       1           0        0.1797s            0.1797s             0.0000s    ci_job_artifact
       1           1        0.3476s            0.3476s             0.3476s       jira_project
       1           0        0.2002s            0.2002s             0.0000s       jira_service
       1           1        0.0167s            0.0167s             0.0167s            license

Queries saved: 106989

Edited by Igor Drozdov

Merge request reports

Loading