theforeman / theforeman/foremanctl

Test slowness analysis

Open
#86 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tests
Dominant language
Python
Stars
27
Forks
47
Avg merge
1d 12h
Merged PRs (30d)
40

Description

The test suite can take anywhere from 25 to 40 minutes to run, the output of slowest tests:

================================= fixture duration top ==================================
total          name                                     num avg            min           
0:05:38.276881                                  product   6 0:00:56.799337 0:00:52.705898
0:03:00.001665                           yum_repository   3 0:00:59.999550 0:00:59.997508
0:03:00.001399                       client_environment   1 0:03:00.001399 0:03:00.001399
0:01:00.021677                     container_repository   1 0:01:00.021677 0:01:00.021677
0:00:59.999780                          file_repository   1 0:00:59.999780 0:00:59.999780
0:00:59.466323                           activation_key   1 0:00:59.466323 0:00:59.466323
0:00:22.545814                             organization   8 0:00:02.646113 0:00:01.671402
0:00:00.297948                    lifecycle_environment   2 0:00:00.148974 0:00:00.143706
0:00:00.185813                      foreman_status_curl   1 0:00:00.185813 0:00:00.185813
0:00:00.139906              foreman_proxy_features_curl   1 0:00:00.139906 0:00:00.139906
0:00:00.136418               foreman_proxy_version_curl   1 0:00:00.136418 0:00:00.136418
0:00:00.112755                             content_view   2 0:00:00.056378 0:00:00.049479
0:00:00.108367                         pulp_status_curl   1 0:00:00.108367 0:00:00.108367
0:15:01.301332                              grand total  56 0:00:00.136418 0:00:00.000020
================================ test call duration top =================================
total          name                                     num avg            min           
0:03:08.966803                test_foreman_content_view   2 0:01:34.483402 0:00:35.242703
0:00:36.872770              test_foreman_yum_repository   1 0:00:36.872770 0:00:36.872770
0:00:32.699503             test_foreman_file_repository   1 0:00:32.699503 0:00:32.699503
0:00:32.649446        test_foreman_container_repository   1 0:00:32.649446 0:00:32.649446
0:00:15.749353                                 test_tls   1 0:00:15.749353 0:00:15.749353
0:00:00.618766                   test_candlepin_service   1 0:00:00.618766 0:00:00.618766
0:00:00.512020   test_foreman_dynflow_service_instances   3 0:00:00.17[105](https://github.com/theforeman/foreman-quadlet/actions/runs/13393857638/job/37407843172?pr=85#step:11:106)1 0:00:00.169360
0:00:00.434712 test_foreman_dynflow_container_instances   3 0:00:00.156331 0:00:00.118727
0:00:00.272073                      test_candlepin_port   1 0:00:00.272073 0:00:00.272073
0:00:00.184062                  test_https_foreman_ping   1 0:00:00.184062 0:00:00.184062
0:00:00.183739                        test_artemis_port   1 0:00:00.183739 0:00:00.183739
0:00:00.174612                  test_foreman_proxy_port   1 0:00:00.174612 0:00:00.174612
0:00:00.173589                 test_pulp_worker_service   1 0:00:00.173589 0:00:00.173589
0:00:00.171828                        test_foreman_port   1 0:00:00.171828 0:00:00.171828
0:00:00.171649                       test_pulp_api_port   1 0:00:00.171649 0:00:00.171649
0:00:00.171434                  test_postgresql_service   1 0:00:00.171434 0:00:00.171434
0:00:00.171301                    test_pulp_api_service   1 0:00:00.171301 0:00:00.171301
0:00:00.17[106](https://github.com/theforeman/foreman-quadlet/actions/runs/13393857638/job/37407843172?pr=85#step:11:107)0                test_pulp_content_service   1 0:00:00.171060 0:00:00.171060
0:00:00.169928                     test_foreman_service   1 0:00:00.169928 0:00:00.169928
0:00:00.169381                          test_https_port   1 0:00:00.169381 0:00:00.169381
0:00:00.168641                   test_pulp_content_port   1 0:00:00.168641 0:00:00.168641
0:00:00.168278                           test_http_port   1 0:00:00.168278 0:00:00.168278
0:00:00.168277                     test_postgresql_port   1 0:00:00.168277 0:00:00.168277
0:00:00.168241                          test_redis_port   1 0:00:00.168241 0:00:00.168241
0:00:00.168169                       test_redis_service   1 0:00:00.168169 0:00:00.168169
0:00:00.168131                       test_httpd_service   1 0:00:00.168131 0:00:00.168131
0:00:00.155810                    test_candlepin_status   1 0:00:00.155810 0:00:00.155810
0:00:00.139059               test_foreman_proxy_service   1 0:00:00.139059 0:00:00.139059
0:00:00.118747                    test_certs_users_file   1 0:00:00.118747 0:00:00.118747
0:00:00.118298                     test_https_pulp_auth   1 0:00:00.118298 0:00:00.118298
0:05:12.832672                              grand total  63 0:00:00.156071 0:00:00.000080
================================ test setup duration top ================================
total          name                                     num avg            min           
0:08:01.479961                test_foreman_content_view   2 0:04:00.739980 0:01:57.532272
0:01:59.220963        test_foreman_container_repository   1 0:01:59.220963 0:01:59.220963
0:01:59.202205              test_foreman_yum_repository   1 0:01:59.202205 0:01:59.202205
0:01:59.159901             test_foreman_file_repository   1 0:01:59.159901 0:01:59.159901
0:00:56.448708                     test_foreman_product   1 0:00:56.448708 0:00:56.448708
0:00:02.701269       test_foreman_lifecycle_environment   1 0:00:02.701269 0:00:02.701269
0:00:02.515203                test_foreman_organization   1 0:00:02.515203 0:00:02.515203
0:15:00.738586                              grand total  63 0:00:00.000167 0:00:00.000106
============================== test teardown duration top ===============================
total          name                                     num avg            min           
0:08:56.684774                test_foreman_content_view   2 0:04:28.342387 0:02:29.405190
0:01:58.167677        test_foreman_container_repository   1 0:01:58.167677 0:01:58.167677
0:01:58.[107](https://github.com/theforeman/foreman-quadlet/actions/runs/13393857638/job/37407843172?pr=85#step:11:108)517             test_foreman_file_repository   1 0:01:58.107517 0:01:58.107517
0:01:53.977219              test_foreman_yum_repository   1 0:01:53.977219 0:01:53.977219
0:01:28.940870       test_foreman_lifecycle_environment   1 0:01:28.940870 0:01:28.940870
0:01:00.800359                     test_foreman_product   1 0:01:00.800359 0:01:00.800359
0:00:28.514450                test_foreman_organization   1 0:00:28.514450 0:00:28.514450
0:17:45.198100                              grand total  63 0:00:00.000090 0:00:00.000058
============================= slowest 10 durations =============================
387.28s teardown tests/client_test.py::test_foreman_content_view
363.95s setup    tests/client_test.py::test_foreman_content_view
153.72s call     tests/foreman_api_test.py::test_foreman_content_view
149.41s teardown tests/foreman_api_test.py::test_foreman_content_view
119.22s setup    tests/foreman_api_test.py::test_foreman_container_repository
119.20s setup    tests/foreman_api_test.py::test_foreman_yum_repository
119.16s setup    tests/foreman_api_test.py::test_foreman_file_repository
118.17s teardown tests/foreman_api_test.py::test_foreman_container_repository
118.11s teardown tests/foreman_api_test.py::test_foreman_file_repository
[117](https://github.com/theforeman/foreman-quadlet/actions/runs/13393857638/job/37407843172?pr=85#step:11:118).53s setup    tests/foreman_api_test.py::test_foreman_content_view
============ 61 passed, 2 xfailed, 8 warnings in 2279.52s (0:37:59) ============

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported suite timing and inspecting tests/client_test.py::test_foreman_content_view and the tests in tests/foreman_api_test.py named in the slowest-duration output. Compare setup, call, and teardown costs for the listed tests. The issue does not define a target runtime or specific change, so the completion criteria remain unspecified.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance, testing-qa
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.