flakytest.dev anze3db flakytest
Tests / apps/projects/tests.py

ProfilePagePaginationTest::test_slowest_tests_first_then_the_next_page

First seen 7 hours ago in 78a4357
CI github-actions:test 5 runs
Average
391 ms
median 417 ms
max 484 ms
Phases
Setup 213 ms Call 177 ms Teardown 1 ms
Categories
Database 267 ms App code 23 ms Factories 0.74 ms Other (Libraries, Templates, Serialization, pytest, ...) 100 ms

101 database queries per run

Needs 3 MB of memory (max 5 MB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 28 minutes ago · open run
Hide pytest frames
setup220 ms52.9%
CallInfo.from_call_pytest/runner.py:353220 ms52.9%
call_and_report.<locals>.<lambda>_pytest/runner.py:245219 ms52.6%
HookCaller.__call__pluggy/_hooks.py:512219 ms52.6%
PluginManager._hookexecpluggy/_manager.py:120219 ms52.6%
_multicallpluggy/_callers.py:121219 ms52.6%
pytest_runtest_setup_pytest/runner.py:165219 ms52.6%
SetupState.setup_pytest/runner.py:523219 ms52.6%
TestCaseFunction.setup_pytest/unittest.py:227219 ms52.6%
Function.setup_pytest/python.py:1723219 ms52.6%
TopRequest._fillfixtures_pytest/fixtures.py:707219 ms52.6%
FixtureRequest.getfixturevalue_pytest/fixtures.py:539219 ms52.6%
FixtureRequest._get_active_fixturedef_pytest/fixtures.py:627219 ms52.6%
FixtureDef.execute_pytest/fixtures.py:1110219 ms52.6%
HookCaller.__call__pluggy/_hooks.py:512219 ms52.6%
PluginManager._hookexecpluggy/_manager.py:120219 ms52.6%
_multicallpluggy/_callers.py:121219 ms52.6%
pytest_fixture_setup_pytest/fixtures.py:1202219 ms52.6%
call_fixture_func_pytest/fixtures.py:908219 ms52.6%
UnitTestCase._register_unittest_setup_class_fixture.<locals>.unittest_setup_class_fixture_pytest/unittest.py:154219 ms52.6%
TestCase.setUpClassdjango/test/testcases.py:1439 cls.setUpTestData()210 ms50.3%
ProfilePagePaginationTest.setUpTestDataapps/projects/tests.py:1332198 ms47.5%
store_profileapps/projects/testing.py:373153 ms36.6%
process_profile_partapps/projects/profiles.py:34682 ms19.7%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)42 ms10.2%
CursorWrapper.executemanydjango/db/backends/utils.py:8442 ms10.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9242 ms10.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:10042 ms10.2%
CursorWrapper._executemanydjango/db/backends/utils.py:11442 ms10.2%
Cursor.executemanypsycopg/cursor.py:13724 ms5.7%
_GeneratorContextManager.__exit__<stdlib>/contextlib.py:21024 ms5.7%
Connection._pipeline_nolockpsycopg/connection.py:47224 ms5.7%
Pipeline.__exit__psycopg/_pipeline.py:7324 ms5.7%
Connection.waitpsycopg/connection.py:49524 ms5.7%
Cursor.executemanypsycopg/cursor.py:13819 ms4.5%
Connection.waitpsycopg/connection.py:49519 ms4.5%
BaseCursor._executemany_gen_pipelinepsycopg/_cursor_base.py:23612 ms2.9%
PostgresClientQuery.dumppsycopg/_queries.py:2998 ms1.9%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3008 ms1.9%
Dumper.quotepsycopg/adapt.py:594 ms1.0%
_JsonDumper.dumppsycopg/types/json.py:2184 ms1.0%
dumps<stdlib>/json/__init__.py:2344 ms1.0%
JSONEncoder.encode<stdlib>/json/encoder.py:2024 ms1.0%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2634 ms1.0%
BasePipeline._communicate_genpsycopg/_pipeline_base.py:1123 ms0.6%
1 smaller frames hidden
BaseCursor._executemany_gen_pipelinepsycopg/_cursor_base.py:2395 ms1.3%
BasePipeline._communicate_genpsycopg/_pipeline_base.py:1124 ms1.0%
1 smaller frames hidden
write_snapshotsapps/projects/profiles.py:31240 ms9.6%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:31040 ms9.6%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),35 ms8.3%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)13 ms3.2%
compress<stdlib>/gzip.py:66813 ms3.2%
dumps<stdlib>/json/__init__.py:24112 ms2.9%
JSONEncoder.encode<stdlib>/json/encoder.py:20212 ms2.9%
JSONEncoder.iterencode<stdlib>/json/encoder.py:26311 ms2.5%
snapshot_documentapps/projects/profiles.py:2507 ms1.6%
snapshot_documentapps/projects/profiles.py:2683 ms0.6%
write_snapshots.<locals>.rowapps/projects/profiles.py:308 return [field.get_db_prep_save(value, connection) for field, value in zip(fields, values, strict=True)]3 ms0.6%
write_snapshots.<locals>.rowapps/projects/profiles.py:3053 ms0.6%
process_profile_partapps/projects/profiles.py:34427 ms6.4%
upsert_testsapps/projects/profiles.py:45127 ms6.4%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order13 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8713 ms3.2%
QuerySet.bulk_createdjango/db/models/query.py:83312 ms2.9%
QuerySet._batched_insertdjango/db/models/query.py:195612 ms2.9%
QuerySet._insertdjango/db/models/query.py:191812 ms2.9%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19259 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:799 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:929 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1009 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1059 ms2.2%
Cursor.executepsycopg/cursor.py:1139 ms2.2%
Connection.waitpsycopg/connection.py:4959 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2053 ms0.6%
BaseCursor._convert_querypsycopg/_cursor_base.py:4653 ms0.6%
PostgresClientQuery.convertpsycopg/_queries.py:2893 ms0.6%
PostgresClientQuery.dumppsycopg/_queries.py:2993 ms0.6%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3003 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19243 ms0.6%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18133 ms0.6%
SQLInsertCompiler.pre_save_valdjango/db/models/sql/compiler.py:17513 ms0.6%
1 smaller frames hidden
TestManager.upsertapps/projects/models.py:2295 ms1.3%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))3 ms0.6%
QuerySet.__iter__django/db/models/query.py:3903 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms0.6%
ValuesListIterable.__iter__django/db/models/query.py:2383 ms0.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15733 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:793 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1003 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms0.6%
Cursor.executepsycopg/cursor.py:1133 ms0.6%
Connection.waitpsycopg/connection.py:4953 ms0.6%
2 smaller frames hidden
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}5 ms1.3%
QuerySet.__iter__django/db/models/query.py:3904 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms1.0%
ModelIterable.__iter__django/db/models/query.py:954 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16623 ms0.6%
cursor_iterdjango/db/models/sql/compiler.py:22543 ms0.6%
cursor_iter.<locals>.<lambda>django/db/models/sql/compiler.py:22543 ms0.6%
DatabaseErrorWrapper.__call__.<locals>.innerdjango/db/utils.py:1013 ms0.6%
Cursor.fetchmanypsycopg/cursor.py:2683 ms0.6%
BaseTzLoader.loaddjango/db/backends/postgresql/psycopg_any.py:343 ms0.6%
TimestamptzLoader.loadpsycopg/types/datetime.py:4943 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
TestManager.upsertapps/projects/models.py:2313 ms0.6%
Model.__init__django/db/models/base.py:5663 ms0.6%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)23 ms5.4%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:11623 ms5.4%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(17 ms4.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8717 ms4.1%
QuerySet.bulk_createdjango/db/models/query.py:83315 ms3.5%
QuerySet._batched_insertdjango/db/models/query.py:195615 ms3.5%
QuerySet._insertdjango/db/models/query.py:191815 ms3.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192511 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms2.5%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:10011 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:10511 ms2.5%
Cursor.executepsycopg/cursor.py:11311 ms2.5%
Connection.waitpsycopg/connection.py:49511 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2055 ms1.3%
BaseCursor._convert_querypsycopg/_cursor_base.py:4655 ms1.3%
PostgresClientQuery.convertpsycopg/_queries.py:2895 ms1.3%
PostgresClientQuery.dumppsycopg/_queries.py:2995 ms1.3%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3005 ms1.3%
Dumper.quotepsycopg/adapt.py:594 ms1.0%
ListDumper.dumppsycopg/types/array.py:1844 ms1.0%
ListDumper.dump.<locals>.dump_listpsycopg/types/array.py:1713 ms0.6%
1 smaller frames hidden
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19244 ms1.0%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18134 ms1.0%
QuerySet.bulk_createdjango/db/models/query.py:8083 ms0.6%
QuerySet._prepare_for_bulk_createdjango/db/models/query.py:6923 ms0.6%
write_perfsapps/projects/profiles.py:4673 ms0.6%
write_perfsapps/projects/profiles.py:4603 ms0.6%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)12 ms2.9%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:11612 ms2.9%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(4 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms1.0%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms0.6%
1 smaller frames hidden
6 smaller frames hidden
process_profile_partapps/projects/profiles.py:3415 ms1.3%
load_documentapps/projects/profiles.py:112 return json.loads(gzip.decompress(bytes(part.document)))5 ms1.3%
loads<stdlib>/json/__init__.py:3715 ms1.3%
JSONDecoder.decode<stdlib>/json/decoder.py:3585 ms1.3%
JSONDecoder.raw_decode<stdlib>/json/decoder.py:3745 ms1.3%
2 smaller frames hidden
store_profileapps/projects/testing.py:374 finalize_profile(profile.id)35 ms8.3%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:11633 ms8.0%
finalize_profileapps/projects/profiles.py:49629 ms7.0%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(13 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8713 ms3.2%
QuerySet.bulk_createdjango/db/models/query.py:83313 ms3.2%
QuerySet._batched_insertdjango/db/models/query.py:195613 ms3.2%
QuerySet._insertdjango/db/models/query.py:191813 ms3.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192511 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms2.5%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:10011 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:10511 ms2.5%
Cursor.executepsycopg/cursor.py:11311 ms2.5%
Connection.waitpsycopg/connection.py:49511 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2055 ms1.3%
BaseCursor._convert_querypsycopg/_cursor_base.py:4655 ms1.3%
PostgresClientQuery.convertpsycopg/_queries.py:2895 ms1.3%
PostgresClientQuery.dumppsycopg/_queries.py:2995 ms1.3%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3005 ms1.3%
Dumper.quotepsycopg/adapt.py:594 ms1.0%
ListDumper.dumppsycopg/types/array.py:1844 ms1.0%
ListDumper.dump.<locals>.dump_listpsycopg/types/array.py:1713 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19243 ms0.6%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18133 ms0.6%
SQLInsertCompiler.prepare_valuedjango/db/models/sql/compiler.py:17423 ms0.6%
add_perfsapps/projects/rollups.py:30 for perf in perfs:7 ms1.6%
QuerySet.__iter__django/db/models/query.py:3907 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20007 ms1.6%
ModelIterable.__iter__django/db/models/query.py:1284 ms1.0%
Model.from_dbdjango/db/models/base.py:6053 ms0.6%
1 smaller frames hidden
ModelIterable.__iter__django/db/models/query.py:953 ms0.6%
add_perfsapps/projects/rollups.py:725 ms1.3%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(4 ms1.0%
QuerySet.__iter__django/db/models/query.py:3903 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms0.6%
ModelIterable.__iter__django/db/models/query.py:953 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:793 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1003 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms0.6%
Cursor.executepsycopg/cursor.py:1133 ms0.6%
Connection.waitpsycopg/connection.py:4953 ms0.6%
1 smaller frames hidden
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)3 ms0.6%
QuerySet.getdjango/db/models/query.py:6353 ms0.6%
QuerySet.__len__django/db/models/query.py:3723 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
store_profileapps/projects/testing.py:370 data = json.dumps(document).encode()4 ms1.0%
dumps<stdlib>/json/__init__.py:2344 ms1.0%
JSONEncoder.encode<stdlib>/json/encoder.py:2024 ms1.0%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2634 ms1.0%
store_profileapps/projects/testing.py:372 part = ProfilePart.objects.create(profile=profile, index=0, document=compress(data), document_size=len(data))4 ms1.0%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)3 ms0.6%
compress<stdlib>/gzip.py:6683 ms0.6%
1 smaller frames hidden
2 smaller frames hidden
ProfilePagePaginationTest.setUpTestDataapps/projects/tests.py:13304 ms1.0%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(4 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms1.0%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms0.6%
1 smaller frames hidden
ProfilePagePaginationTest.setUpTestDataapps/projects/tests.py:13314 ms1.0%
2 smaller frames hidden
TestCase.setUpClassdjango/test/testcases.py:1423 cls.cls_atomics = cls._enter_atomics()9 ms2.2%
TestCase._enter_atomicsdjango/test/testcases.py:13969 ms2.2%
Atomic.__enter__django/db/transaction.py:1989 ms2.2%
BaseDatabaseWrapper.get_autocommitdjango/db/backends/base/base.py:4549 ms2.2%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:3039 ms2.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms2.2%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:2799 ms2.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms2.2%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2569 ms2.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms2.2%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:3339 ms2.2%
Connection.connectpsycopg/connection.py:1099 ms2.2%
wait_connpsycopg/waiting.py:1415 ms1.3%
EpollSelector.select<stdlib>/selectors.py:4525 ms1.3%
wait_connpsycopg/waiting.py:1454 ms1.0%
BaseConnection._connect_genpsycopg/_connection_base.py:4394 ms1.0%
call196 ms47.0%
CallInfo.from_call_pytest/runner.py:353196 ms47.0%
call_and_report.<locals>.<lambda>_pytest/runner.py:245196 ms47.0%
HookCaller.__call__pluggy/_hooks.py:512196 ms47.0%
PluginManager._hookexecpluggy/_manager.py:120196 ms47.0%
_multicallpluggy/_callers.py:121196 ms47.0%
pytest_runtest_call_pytest/runner.py:179196 ms47.0%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:573196 ms47.0%
SimpleTestCase.__call__django/test/testcases.py:313196 ms47.0%
SimpleTestCase._setup_and_calldjango/test/testcases.py:368163 ms39.1%
TestCase.__call__<stdlib>/unittest/case.py:747163 ms39.1%
TestCase.run<stdlib>/unittest/case.py:691163 ms39.1%
TestCase._callTestMethod<stdlib>/unittest/case.py:637163 ms39.1%
ProfilePagePaginationTest.test_slowest_tests_first_then_the_next_pageapps/projects/tests.py:1338 response = self.client.get(url)122 ms29.3%
Client.getdjango/test/client.py:1124122 ms29.3%
RequestFactory.getdjango/test/client.py:475122 ms29.3%
RequestFactory.genericdjango/test/client.py:671122 ms29.3%
Client.requestdjango/test/client.py:1082122 ms29.3%
ClientHandler.__call__django/test/client.py:18699 ms23.7%
BaseHandler.get_responsedjango/core/handlers/base.py:14199 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5599 ms23.7%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13099 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5599 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30999 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5599 ms23.7%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12399 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5599 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30997 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30997 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30997 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30997 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30997 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30997 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3497 ms23.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5597 ms23.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19897 ms23.2%
project_profileapps/projects/urls.py:498 return render(62 ms14.9%
renderdjango/shortcuts.py:2560 ms14.4%
render_to_stringdjango/template/loader.py:6260 ms14.4%
Template.renderdjango/template/backends/django.py:10760 ms14.4%
Template.renderdjango/template/base.py:17460 ms14.4%
instrumented_test_renderdjango/test/utils.py:11460 ms14.4%
NodeList.renderdjango/template/base.py:109160 ms14.4%
Node.render_annotateddjango/template/base.py:105260 ms14.4%
ExtendsNode.renderdjango/template/loader_tags.py:16060 ms14.4%
instrumented_test_renderdjango/test/utils.py:11460 ms14.4%
NodeList.renderdjango/template/base.py:109160 ms14.4%
Node.render_annotateddjango/template/base.py:105260 ms14.4%
ExtendsNode.renderdjango/template/loader_tags.py:16060 ms14.4%
instrumented_test_renderdjango/test/utils.py:11460 ms14.4%
NodeList.renderdjango/template/base.py:109160 ms14.4%
Node.render_annotateddjango/template/base.py:105260 ms14.4%
BlockNode.renderdjango/template/loader_tags.py:6660 ms14.4%
NodeList.renderdjango/template/base.py:109160 ms14.4%
Node.render_annotateddjango/template/base.py:105258 ms13.9%
BlockNode.renderdjango/template/loader_tags.py:6656 ms13.5%
NodeList.renderdjango/template/base.py:109156 ms13.5%
Node.render_annotateddjango/template/base.py:105256 ms13.5%
IfNode.renderdjango/template/defaulttags.py:33356 ms13.5%
NodeList.renderdjango/template/base.py:109156 ms13.5%
Node.render_annotateddjango/template/base.py:105256 ms13.5%
ForNode.renderdjango/template/defaulttags.py:24954 ms13.0%
Node.render_annotateddjango/template/base.py:105252 ms12.6%
IncludeNode.renderdjango/template/loader_tags.py:21129 ms7.0%
Template.renderdjango/template/base.py:17625 ms6.0%
instrumented_test_renderdjango/test/utils.py:11423 ms5.6%
NodeList.renderdjango/template/base.py:109123 ms5.6%
Node.render_annotateddjango/template/base.py:105221 ms5.1%
ForNode.renderdjango/template/defaulttags.py:24917 ms4.2%
Node.render_annotateddjango/template/base.py:105210 ms2.3%
VariableNode.renderdjango/template/base.py:11504 ms0.9%
1 smaller frames hidden
1 smaller frames hidden
2 smaller frames hidden
1 smaller frames hidden
VariableNode.renderdjango/template/base.py:115614 ms3.3%
render_value_in_contextdjango/template/base.py:11348 ms1.9%
conditional_escapedjango/utils/html.py:1274 ms0.9%
render_value_in_contextdjango/template/base.py:11304 ms0.9%
1 smaller frames hidden
SimpleNode.renderdjango/template/library.py:3254 ms0.9%
VariableNode.renderdjango/template/base.py:11504 ms0.9%
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
project_profileapps/projects/urls.py:490 for perf in perfs:12 ms2.8%
Sequence.__iter__<frozen _collections_abc>:102012 ms2.8%
Page.__getitem__django/core/paginator.py:33012 ms2.8%
QuerySet.__iter__django/db/models/query.py:39012 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:200012 ms2.8%
ModelIterable.__iter__django/db/models/query.py:958 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms0.9%
CursorWrapper.executedjango/db/backends/utils.py:794 ms0.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms0.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1004 ms0.9%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms0.9%
Cursor.executepsycopg/cursor.py:1134 ms0.9%
Connection.waitpsycopg/connection.py:4954 ms0.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16624 ms0.9%
cursor_iterdjango/db/models/sql/compiler.py:22544 ms0.9%
cursor_iter.<locals>.<lambda>django/db/models/sql/compiler.py:22544 ms0.9%
DatabaseErrorWrapper.__call__.<locals>.innerdjango/db/utils.py:1014 ms0.9%
Cursor.fetchmanypsycopg/cursor.py:2684 ms0.9%
ModelIterable.__iter__django/db/models/query.py:1274 ms0.9%
project_profileapps/projects/urls.py:4748 ms1.9%
find_projectapps/projects/urls.py:526 ms1.4%
can_viewapps/projects/urls.py:336 ms1.4%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:4 ms0.9%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2514 ms0.9%
SimpleLazyObject._setupdjango/utils/functional.py:4044 ms0.9%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:404 ms0.9%
get_userdjango/contrib/auth/middleware.py:204 ms0.9%
1 smaller frames hidden
1 smaller frames hidden
project_profileapps/projects/urls.py:5028 ms1.9%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {6 ms1.4%
1 smaller frames hidden
project_profileapps/projects/urls.py:477 profile = get_object_or_404(4 ms0.9%
get_object_or_404django/shortcuts.py:904 ms0.9%
QuerySet.getdjango/db/models/query.py:6354 ms0.9%
QuerySet.__len__django/db/models/query.py:3724 ms0.9%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms0.9%
ModelIterable.__iter__django/db/models/query.py:954 ms0.9%
2 smaller frames hidden
1 smaller frames hidden
ClientHandler.__call__django/test/client.py:17323 ms5.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6223 ms5.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10423 ms5.6%
WhiteNoise.add_fileswhitenoise/base.py:10823 ms5.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12019 ms4.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13119 ms4.6%
WhiteNoise.get_static_filewhitenoise/base.py:20812 ms2.8%
StaticFile.__init__whitenoise/responders.py:774 ms0.9%
4 smaller frames hidden
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms0.9%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms0.9%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms0.9%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms0.9%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms0.9%
1 smaller frames hidden
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms0.9%
ProfilePagePaginationTest.test_slowest_tests_first_then_the_next_pageapps/projects/tests.py:134223 ms5.6%
Client.getdjango/test/client.py:112423 ms5.6%
RequestFactory.getdjango/test/client.py:47523 ms5.6%
RequestFactory.genericdjango/test/client.py:67123 ms5.6%
Client.requestdjango/test/client.py:108223 ms5.6%
ClientHandler.__call__django/test/client.py:18623 ms5.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14123 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms5.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13023 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms5.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12323 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3421 ms5.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms5.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19821 ms5.1%
project_profileapps/projects/urls.py:498 return render(8 ms1.9%
renderdjango/shortcuts.py:258 ms1.9%
render_to_stringdjango/template/loader.py:628 ms1.9%
Template.renderdjango/template/backends/django.py:1078 ms1.9%
Template.renderdjango/template/base.py:1748 ms1.9%
instrumented_test_renderdjango/test/utils.py:1148 ms1.9%
NodeList.renderdjango/template/base.py:10918 ms1.9%
Node.render_annotateddjango/template/base.py:10528 ms1.9%
ExtendsNode.renderdjango/template/loader_tags.py:1608 ms1.9%
instrumented_test_renderdjango/test/utils.py:1148 ms1.9%
NodeList.renderdjango/template/base.py:10918 ms1.9%
Node.render_annotateddjango/template/base.py:10528 ms1.9%
ExtendsNode.renderdjango/template/loader_tags.py:1608 ms1.9%
instrumented_test_renderdjango/test/utils.py:1148 ms1.9%
NodeList.renderdjango/template/base.py:10918 ms1.9%
Node.render_annotateddjango/template/base.py:10528 ms1.9%
BlockNode.renderdjango/template/loader_tags.py:668 ms1.9%
NodeList.renderdjango/template/base.py:10918 ms1.9%
Node.render_annotateddjango/template/base.py:10528 ms1.9%
BlockNode.renderdjango/template/loader_tags.py:666 ms1.4%
NodeList.renderdjango/template/base.py:10916 ms1.4%
Node.render_annotateddjango/template/base.py:10526 ms1.4%
IfNode.renderdjango/template/defaulttags.py:3336 ms1.4%
NodeList.renderdjango/template/base.py:10916 ms1.4%
Node.render_annotateddjango/template/base.py:10526 ms1.4%
1 smaller frames hidden
project_profileapps/projects/urls.py:4744 ms0.9%
find_projectapps/projects/urls.py:524 ms0.9%
can_viewapps/projects/urls.py:334 ms0.9%
project_profileapps/projects/urls.py:477 profile = get_object_or_404(4 ms0.9%
get_object_or_404django/shortcuts.py:904 ms0.9%
QuerySet.getdjango/db/models/query.py:6354 ms0.9%
QuerySet.__len__django/db/models/query.py:3724 ms0.9%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms0.9%
ModelIterable.__iter__django/db/models/query.py:954 ms0.9%
project_profileapps/projects/urls.py:490 for perf in perfs:4 ms0.9%
Sequence.__iter__<frozen _collections_abc>:10204 ms0.9%
Page.__getitem__django/core/paginator.py:3304 ms0.9%
QuerySet.__iter__django/db/models/query.py:3904 ms0.9%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms0.9%
ModelIterable.__iter__django/db/models/query.py:954 ms0.9%
1 smaller frames hidden
1 smaller frames hidden
ProfilePagePaginationTest.test_slowest_tests_first_then_the_next_pageapps/projects/tests.py:1335 self.client.force_login(self.user)14 ms3.3%
ClientMixin.force_logindjango/test/client.py:85514 ms3.3%
ClientMixin._logindjango/test/client.py:8816 ms1.4%
logindjango/contrib/auth/__init__.py:1874 ms0.9%
1 smaller frames hidden
ClientMixin._logindjango/test/client.py:8764 ms0.9%
ClientMixin.sessiondjango/test/client.py:8124 ms0.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1214 ms0.9%
ClientMixin._logindjango/test/client.py:8834 ms0.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1264 ms0.9%
2 smaller frames hidden
SimpleTestCase._setup_and_calldjango/test/testcases.py:37133 ms7.9%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()33 ms7.9%
TestCase._fixture_teardowndjango/test/testcases.py:149533 ms7.9%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:48331 ms7.4%
CursorWrapper.executedjango/db/backends/utils.py:7931 ms7.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9231 ms7.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:10031 ms7.4%
CursorWrapper._executedjango/db/backends/utils.py:10331 ms7.4%
Cursor.executepsycopg/cursor.py:11331 ms7.4%
Connection.waitpsycopg/connection.py:49531 ms7.4%
1 smaller frames hidden
Estimated from 267 samples; phase durations are exact. Frames from pytest and pluggy are shown .

Hot lines in your code

apps/projects/urls.py:498
return render(
project_profile · Templates
68 ms
apps/projects/profiles.py:313
cursor.executemany(SNAPSHOT_UPSERT, batch)
write_snapshots · Database
42 ms
apps/projects/tests.py:1338
response = self.client.get(url)
ProfilePagePaginationTest.test_slowest_tests_first_then_the_next_page · Libraries
25 ms
apps/projects/profiles.py:458
TestPerf.objects.bulk_create(
write_perfs · Database
17 ms
apps/projects/profiles.py:108
return gzip.compress(data, compresslevel=6)
compress · Libraries
16 ms
apps/projects/urls.py:490
for perf in perfs:
project_profile · Database
16 ms
apps/projects/tests.py:1335
self.client.force_login(self.user)
ProfilePagePaginationTest.test_slowest_tests_first_then_the_next_page · Database
14 ms
apps/projects/rollups.py:88
TestDailyStats.objects.bulk_create(
add_perfs · Database
13 ms
apps/projects/models.py:230
self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order
TestManager.upsert · Database
13 ms
apps/projects/profiles.py:306
compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),
write_snapshots.<locals>.row · Serialization
12 ms

Fixtures

Exact setup time
_unittest_setUpClass_fixture_ProfilePagePaginationTest class 219 ms
_django_setup_unittest class 0.31 ms
_django_clear_site_cache function 0.05 ms
_dj_autoclear_mailbox function 0.05 ms
_django_db_marker function 0.05 ms
_template_string_if_invalid_marker function 0.05 ms
_live_server_helper function 0.03 ms
_django_set_urlconf function 0.03 ms
monkeypatch function 0.02 ms

Database

101 queries · 129 ms

Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).

5×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
4×
SELECT %s AS "a" FROM "orgs_membership" WHERE ("orgs_membership"."organization_id" = %s AND "orgs_membership"."user_id" = %s) LIMIT ?
4×
SELECT "projects_testperf"."id", "projects_testperf"."project_id", "projects_testperf"."test_id", "projects_testperf"."profile_id", "projects_testperf"."part", "projects_testperf"."environment_id", "projects_testperf"."outcome", "projects_testperf"."duration", "projects_testperf"."setup", "projects…
3×
SELECT "projects_project"."id", "projects_project"."organization_id", "projects_project"."name", "projects_project"."slug", "projects_project"."public", "projects_project"."description", "projects_project"."date_created", "projects_project"."date_updated", "projects_project"."created_by_id" FROM "p…
3×
SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > %s AND "django_session"."session_key" = %s) LIMIT ?

Biggest pieces of work

setup setUpClass
django/test/testcases.py:1439
219 ms
call test body
apps/projects/tests.py:1338
163 ms
call _post_teardown
django/test/testcases.py:1240
33 ms
setup pytest internals 1 ms

Reliability

5 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 5 results, oldest first in the strip
When Environment Outcome Duration Commit
28 minutes ago CI github-actions:test passed 417 ms 9caa567 main Profile
53 minutes ago CI github-actions:test passed 415 ms ec75501 main Profile
7 hours ago CI github-actions:test passed 484 ms d2c12e5 main Profile
7 hours ago CI github-actions:test passed 210 ms 0b902f6 main Profile
7 hours ago CI github-actions:test passed 430 ms 78a4357 main Profile