Tests / apps/projects/tests.py
AnalyticsTest::test_slow_tests_per_environment
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
27 ms
median 29 ms
max 34 ms
max 34 ms
Phases
Setup 0.69 ms
Call 26 ms
Teardown 0.16 ms
Categories
Database 24 ms
App code 2 ms
Other (Unsampled, pytest) 0.86 ms
24 database queries per run
Needs 0 KB of memory (max 4 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call27 ms96.6%
AnalyticsTest.test_slow_tests_per_environmentapps/projects/tests.py:749 ci_rows = slow_tests(resolve_scope(self.project, "ci"))15 ms53.7%
slow_testsapps/projects/analytics.py:453 TestSnapshot.objects.filter(scope.environment_q(), test_id__in=ids)14 ms48.3%
QuerySet.__iter__django/db/models/query.py:39014 ms48.3%
QuerySet._fetch_alldjango/db/models/query.py:200014 ms48.3%
ModelIterable.__iter__django/db/models/query.py:9514 ms48.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16249 ms32.2%
CursorWrapper.executedjango/db/backends/utils.py:799 ms32.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:929 ms32.2%
CursorWrapper._executedjango/db/backends/utils.py:1059 ms32.2%
Cursor.executepsycopg/cursor.py:1139 ms32.2%
Connection.waitpsycopg/connection.py:4959 ms32.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms5.4%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms5.4%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16115 ms16.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7673 ms10.7%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:873 ms10.7%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4913 ms10.7%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms5.4%
Expression.__hash__django/db/models/expressions.py:5622 ms5.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7922 ms5.4%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11592 ms5.4%
slow_testsapps/projects/analytics.py:461 for perf in TestPerf.objects.filter(2 ms5.4%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ModelIterable.__iter__django/db/models/query.py:952 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
AnalyticsTest.test_slow_tests_per_environmentapps/projects/tests.py:7546 ms21.5%
slow_testsapps/projects/analytics.py:442 rows = list(2 ms5.4%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ValuesIterable.__iter__django/db/models/query.py:2222 ms5.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms5.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms5.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms5.4%
slow_testsapps/projects/analytics.py:4502 ms5.4%
categories_by_testapps/projects/analytics.py:424 for test_id, run_count, categories in rows.filter(test_id__in=test_ids).values_list(2 ms5.4%
QuerySet.values_listdjango/db/models/query.py:14582 ms5.4%
䡽綋䣐疍M蕈瓀䡷쎉譈�赈嗨䷫䠀삅杴譈⭈赈謼襈䧆욉ퟨ§褀䳁즅䩴උঐ빁ꗨő女뿿䑶譈ꬽဎ䠀욉ᗿໂ譈鬽ဎ䠀�ᗿາ襌䣰쒃嬠幁썝ㅅ䗯�උ०빁ꘈő듫쇿襁첵쳌쳌쳌쳌쳌쳌쳌䡕偓襈ㇷ䣛喍뻰)쀱㯨䗰蔀瓀䠼綋ㇰ㇛M蕈瓀茪⼸ࢹ冦묁ꗨő�譈༽ဎ䠀욉ᗿฦ]皿䠊�荈ࣄ嵛ᅢ觀쳰쳌쳌䡕噁䡓 �襈ㇷ䣛喍뻨)쀱쏨䗯蔀瓀䡎綋䣨疍M蕈瓀䤺욉赈債䣿잉�䷵묀ꗨő삅ぴ譈贽ဍ䰀ᗿඤ]瞿(觀䣛�腈ꃄ�嬀幁썝薋ィ솉�女耀�멵䦨冥묁ꘈő�꣫쳌쳌䡕坁噁啁呁䡓�襉擶譈┄(�襈큅좉褆菋샡襁䇟䰿ⲍ䠑붉h襈觖薖hʼn䇞㞼�묀7�⥄菳㿣圏䣀붍p⤏灇⤏恇⤏假⤏䁇⤏ぇ⤏⁇⤏၇⤏뤇�襌䳮憎맨§䴀ⲍ䤯얁q왁e薀瓛䔔荁㿤襌䳶燨µ䄀ᒍ茟ূ셉Ϧ襍ᵴ섀۪赈債䣿붋hﯨ梄搀譈┄(�㭈큅ት腈飄�嬀屁嵁幁彁썝ᗨÂ찀쳌쳌䡕坁噁啁呁䡓䄘횉襈Ԩ庒ﻬ赌쁽ཁܩ䐆茿Ǹ�䄀풉셁ۤ⥅仦ⲍ䰦ノ藨梄䰀ノ襌䳦襄ﺔཁܨᄏ䠃쒃嬘屁嵁幁彁썝쳌쳌쳌쳌쳌쳌쳌䡕ދ젏ډ䞋༄览ц䞋༈览ࡆ䞋༌览ె䞋༐览၆썝쳌쳌䡕坁噁啁呁䡓�襉擶譈┄(�襈큅좉褆菋샡襁䇟䰿ⲍ䠑붉h襈觖㶖gʼn䇞㞼�묀7�⥄菳㿣圏䣀붍p⤏灇⤏恇⤏假⤏䁇⤏ぇ⤏⁇⤏၇⤏뤇�襌䳮憎裡¥䴀ⲍ䤯얁q왁e薀瓛䔔荁㿤襌䳶뇨³䤀䤃츏赁ἔ슃䴉璉䠆떍p譈䢽㳸g䡤ҋ⠥�䠀䔻痐䠒쒁�䅛䅜䅝䅞嵟쁒�쳌䡕坁噁啁呁䡓䄘힉襈ԨᙒH赌쁵ཁة읁၆쏒䐆茿Ǹ�䄀풉셁ۤ⥅仧ⲍ䰦編朼䰀襌䳦襄ﺌ譁༆览䄃䚋༄览у譁ࡆ젏䎉䄈䚋༌览ృ譁၆젏䎉䠐쒃嬘屁嵁幁彁썝쳌䡕坁噁啁呁䡓�襈䢍䧿ﺉ䡤ҋ⠥�䠀䖉䓐溍㇈䇛ﶃ྿쎒圏䳀붍pཁ䜩䅰⤏恇ཁ䜩䅐⤏䁇ཁ䜩䄰⤏⁇ཁ䜩䄐⤏䤇䤃츏襁맴�襌䣿횉襌ꑚ�왂▄p솀ۣ襌ᵴ䢈鶋h襌䣿�矨栏䇿ﶃ瞾䠌綍䢐�旨栏擿譈┄(�㭈큅ት腈飄�嬀屁嵁幁彁썝쿨¾찀쳌쳌쳌쳌쳌쳌쳌䡕ދ例༄࿈诉ࡗ쨏譄ేཁ䓈例䄐줏譄ᑗཁ䓊律䄘쬏羋༜觏褆ю嚉䐈䚉䐌争䐐嚉䐔庉褘᱾썝䡕ދ例༄࿈诉ࡗ쨏譄ేཁ䓈例䄐줏譄ᑗཁ诊켏ډ争褄ࡖ襄ె襄၎襄ᑖ纉崘쳃쳌쳌쳌쳌쳌䡕坁噁啁呁䡓Ę�襌삅䣿趉ﻈ펉襉䧶ノ䡤ҋ⠥�䠀䖉䓐掍䖐腁翼䇿鈏䣅붍ﻐº냔�ཌྷﺤ䤃䤃츏ཉ觏맛Ā�赈킽䣿떋ﻈ襈ꋈ�蓆퀝胿譈삝䇿万뒉䀭仿벉䠭䣿붍ﻐ襈븦ト腁综矿䠏붍p襈븎ト䡤ҋ⠥�䠀䔻痐䠒쒁Ę�䅛䅜䅝䅞嵟봨�쳌쳌쳌쳌䡕譈䠇例䠈젏䣉型䠐쨏譌ᡇཉ䳈例䤠줏譌<unknown file>2 ms5.4%
QuerySet._valuesdjango/db/models/query.py:14092 ms5.4%
Query.set_valuesdjango/db/models/sql/query.py:26052 ms5.4%
Query.add_fieldsdjango/db/models/sql/query.py:22882 ms5.4%
Query.setup_joins.<locals>.final_transformerdjango/db/models/sql/query.py:19202 ms5.4%
ForeignKey.get_coldjango/db/models/fields/related.py:12542 ms5.4%
Field.get_coldjango/db/models/fields/__init__.py:5462 ms5.4%
slow_testsapps/projects/analytics.py:456 .order_by("date")2 ms5.4%
QuerySet.order_bydjango/db/models/query.py:17722 ms5.4%
䡽綋䣐疍M蕈瓀䡷쎉譈�赈嗨䷫䠀삅杴譈⭈赈謼襈䧆욉ퟨ§褀䳁즅䩴උঐ빁ꗨő女뿿䑶譈ꬽဎ䠀욉ᗿໂ譈鬽ဎ䠀�ᗿາ襌䣰쒃嬠幁썝ㅅ䗯�උ०빁ꘈő듫쇿襁첵쳌쳌쳌쳌쳌쳌쳌䡕偓襈ㇷ䣛喍뻰)쀱㯨䗰蔀瓀䠼綋ㇰ㇛M蕈瓀茪⼸ࢹ冦묁ꗨő�譈༽ဎ䠀욉ᗿฦ]皿䠊�荈ࣄ嵛ᅢ觀쳰쳌쳌䡕噁䡓 �襈ㇷ䣛喍뻨)쀱쏨䗯蔀瓀䡎綋䣨疍M蕈瓀䤺욉赈債䣿잉�䷵묀ꗨő삅ぴ譈贽ဍ䰀ᗿඤ]瞿(觀䣛�腈ꃄ�嬀幁썝薋ィ솉�女耀�멵䦨冥묁ꘈő�꣫쳌쳌䡕坁噁啁呁䡓�襉擶譈┄(�襈큅좉褆菋샡襁䇟䰿ⲍ䠑붉h襈觖薖hʼn䇞㞼�묀7�⥄菳㿣圏䣀붍p⤏灇⤏恇⤏假⤏䁇⤏ぇ⤏⁇⤏၇⤏뤇�襌䳮憎맨§䴀ⲍ䤯얁q왁e薀瓛䔔荁㿤襌䳶燨µ䄀ᒍ茟ূ셉Ϧ襍ᵴ섀۪赈債䣿붋hﯨ梄搀譈┄(�㭈큅ት腈飄�嬀屁嵁幁彁썝ᗨÂ찀쳌쳌䡕坁噁啁呁䡓䄘횉襈Ԩ庒ﻬ赌쁽ཁܩ䐆茿Ǹ�䄀풉셁ۤ⥅仦ⲍ䰦ノ藨梄䰀ノ襌䳦襄ﺔཁܨᄏ䠃쒃嬘屁嵁幁彁썝쳌쳌쳌쳌쳌쳌쳌䡕ދ젏ډ䞋༄览ц䞋༈览ࡆ䞋༌览ె䞋༐览၆썝쳌쳌䡕坁噁啁呁䡓�襉擶譈┄(�襈큅좉褆菋샡襁䇟䰿ⲍ䠑붉h襈觖㶖gʼn䇞㞼�묀7�⥄菳㿣圏䣀붍p⤏灇⤏恇⤏假⤏䁇⤏ぇ⤏⁇⤏၇⤏뤇�襌䳮憎裡¥䴀ⲍ䤯얁q왁e薀瓛䔔荁㿤襌䳶뇨³䤀䤃츏赁ἔ슃䴉璉䠆떍p譈䢽㳸g䡤ҋ⠥�䠀䔻痐䠒쒁�䅛䅜䅝䅞嵟쁒�쳌䡕坁噁啁呁䡓䄘힉襈ԨᙒH赌쁵ཁة읁၆쏒䐆茿Ǹ�䄀풉셁ۤ⥅仧ⲍ䰦編朼䰀襌䳦襄ﺌ譁༆览䄃䚋༄览у譁ࡆ젏䎉䄈䚋༌览ృ譁၆젏䎉䠐쒃嬘屁嵁幁彁썝쳌䡕坁噁啁呁䡓�襈䢍䧿ﺉ䡤ҋ⠥�䠀䖉䓐溍㇈䇛ﶃ྿쎒圏䳀붍pཁ䜩䅰⤏恇ཁ䜩䅐⤏䁇ཁ䜩䄰⤏⁇ཁ䜩䄐⤏䤇䤃츏襁맴�襌䣿횉襌ꑚ�왂▄p솀ۣ襌ᵴ䢈鶋h襌䣿�矨栏䇿ﶃ瞾䠌綍䢐�旨栏擿譈┄(�㭈큅ት腈飄�嬀屁嵁幁彁썝쿨¾찀쳌쳌쳌쳌쳌쳌쳌䡕ދ例༄࿈诉ࡗ쨏譄ేཁ䓈例䄐줏譄ᑗཁ䓊律䄘쬏羋༜觏褆ю嚉䐈䚉䐌争䐐嚉䐔庉褘᱾썝䡕ދ例༄࿈诉ࡗ쨏譄ేཁ䓈例䄐줏譄ᑗཁ诊켏ډ争褄ࡖ襄ె襄၎襄ᑖ纉崘쳃쳌쳌쳌쳌쳌䡕坁噁啁呁䡓Ę�襌삅䣿趉ﻈ펉襉䧶ノ䡤ҋ⠥�䠀䖉䓐掍䖐腁翼䇿鈏䣅붍ﻐº냔�ཌྷﺤ䤃䤃츏ཉ觏맛Ā�赈킽䣿떋ﻈ襈ꋈ�蓆퀝胿譈삝䇿万뒉䀭仿벉䠭䣿붍ﻐ襈븦ト腁综矿䠏붍p襈븎ト䡤ҋ⠥�䠀䔻痐䠒쒁Ę�䅛䅜䅝䅞嵟봨�쳌쳌쳌쳌䡕譈䠇例䠈젏䣉型䠐쨏譌ᡇཉ䳈例䤠줏譌<unknown file>2 ms5.4%
Query.add_orderingdjango/db/models/sql/query.py:23442 ms5.4%
slow_testsapps/projects/analytics.py:453 TestSnapshot.objects.filter(scope.environment_q(), test_id__in=ids)2 ms5.4%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ModelIterable.__iter__django/db/models/query.py:1072 ms5.4%
AnalyticsTest.test_slow_tests_per_environmentapps/projects/tests.py:7525 ms16.1%
resolve_scopeapps/projects/analytics.py:198 selected = Environment.objects.filter(project=project, name=env).first()2 ms5.4%
QuerySet.firstdjango/db/models/query.py:11452 ms5.4%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ModelIterable.__iter__django/db/models/query.py:952 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
slow_testsapps/projects/analytics.py:442 rows = list(2 ms5.4%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ValuesIterable.__iter__django/db/models/query.py:2222 ms5.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
slow_testsapps/projects/analytics.py:4502 ms5.4%
categories_by_testapps/projects/analytics.py:424 for test_id, run_count, categories in rows.filter(test_id__in=test_ids).values_list(2 ms5.4%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms5.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms5.4%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms5.4%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
Estimated from 18 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/analytics.py:453
TestSnapshot.objects.filter(scope.environment_q(), test_id__in=ids)
slow_tests
· Database
|
15 ms |
|
apps/projects/analytics.py:442
rows = list(
slow_tests
· Database
|
3 ms |
|
apps/projects/analytics.py:424
for test_id, run_count, categories in rows.filter(test_id__in=test_ids).values_list(
categories_by_test
· Database
|
3 ms |
|
apps/projects/analytics.py:461
for perf in TestPerf.objects.filter(
slow_tests
· Database
|
2 ms |
|
apps/projects/analytics.py:198
selected = Environment.objects.filter(project=project, name=env).first()
resolve_scope
· Database
|
2 ms |
|
apps/projects/analytics.py:456
.order_by("date")
slow_tests
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _django_clear_site_cache function | 0.04 ms |
| monkeypatch function | 0.02 ms |
Database
24 queries · 9 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
4×
SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…
3×
SELECT "projects_testdailystats"."test_id" AS "test_id", "projects_test"."name" AS "test__name", "projects_test"."slug" AS "test__slug", SUM("projects_testdailystats"."runs") AS "runs_sum", SUM("projects_testdailystats"."duration_sum") AS "duration_total", MAX("projects_testdailystats"."duration_ma…
3×
SELECT "projects_testsnapshot"."id", "projects_testsnapshot"."project_id", "projects_testsnapshot"."test_id", "projects_testsnapshot"."environment_id", "projects_testsnapshot"."profile_id", "projects_testsnapshot"."date", "projects_testsnapshot"."segments", "projects_environment"."id", "projects_en…
3×
SELECT "projects_testperf"."id", "projects_testperf"."test_id", "projects_testperf"."profile_id", "projects_testperf"."db_duplicates" FROM "projects_testperf" WHERE ("projects_testperf"."profile_id" IN (…) AND "projects_testperf"."test_id" IN (…))
Biggest pieces of work
|
call test body
apps/projects/tests.py:749
|
26 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 28 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 17 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 28 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 22 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 34 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 18 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 31 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 30 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 29 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 33 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 19 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 30 ms | Profile |