diff --git a/api/tests/Api/SnapshotTests/EndpointQueryCountTest.php b/api/tests/Api/SnapshotTests/EndpointQueryCountTest.php index 75e3727a91..2a811323b4 100644 --- a/api/tests/Api/SnapshotTests/EndpointQueryCountTest.php +++ b/api/tests/Api/SnapshotTests/EndpointQueryCountTest.php @@ -36,16 +36,22 @@ public function testNumberOfQueriesDidNotChangeForStableEndpoints() { $collectionEndpoints = self::getCollectionEndpoints(); foreach ($collectionEndpoints as $collectionEndpoint) { if ('/users' !== $collectionEndpoint && !str_contains($collectionEndpoint, '/content_node')) { - list($statusCode, $queryCount) = $this->measurePerformanceFor($collectionEndpoint); + list($statusCode, $queryCount, $executionTimeSeconds) = $this->measurePerformanceFor($collectionEndpoint); $responseCodes[$collectionEndpoint] = $statusCode; - $numberOfQueries[$collectionEndpoint] = $queryCount; + $numberOfQueries[$collectionEndpoint] = [ + 'queryCount' => $queryCount, + 'executionTimeSeconds' => $executionTimeSeconds, + ]; } if (!str_contains($collectionEndpoint, '/content_node')) { $fixtureFor = $this->getFixtureFor($collectionEndpoint); - list($statusCode, $queryCount) = $this->measurePerformanceFor("{$collectionEndpoint}/{$fixtureFor->getId()}"); + list($statusCode, $queryCount, $executionTimeSeconds) = $this->measurePerformanceFor("{$collectionEndpoint}/{$fixtureFor->getId()}"); $responseCodes["{$collectionEndpoint}/item"] = $statusCode; - $numberOfQueries["{$collectionEndpoint}/item"] = $queryCount; + $numberOfQueries["{$collectionEndpoint}/item"] = [ + 'queryCount' => $queryCount, + 'executionTimeSeconds' => $executionTimeSeconds, + ]; } } @@ -120,8 +126,9 @@ public function measurePerformanceFor(string $collectionEndpoint): array { $statusCode = $response->getStatusCode(); $collector = $client->getProfile()->getCollector('db'); $queryCount = $collector->getQueryCount(); + $executionTimeSeconds = round($collector->getTime(), 2); - return [$statusCode, $queryCount]; + return [$statusCode, $queryCount, $executionTimeSeconds]; } public static function getContentNodeEndpoints(): array { diff --git a/api/tests/Api/SnapshotTests/__snapshots__/EndpointQueryCountTest__testNumberOfQueriesDidNotChangeForStableEndpoints__1.yml b/api/tests/Api/SnapshotTests/__snapshots__/EndpointQueryCountTest__testNumberOfQueriesDidNotChangeForStableEndpoints__1.yml index b5d9cd6d16..c67c5ca046 100644 --- a/api/tests/Api/SnapshotTests/__snapshots__/EndpointQueryCountTest__testNumberOfQueriesDidNotChangeForStableEndpoints__1.yml +++ b/api/tests/Api/SnapshotTests/__snapshots__/EndpointQueryCountTest__testNumberOfQueriesDidNotChangeForStableEndpoints__1.yml @@ -1,29 +1,87 @@ -/activities: 21 -/activities/item: 33 -/activity_progress_labels: 6 -/activity_progress_labels/item: 7 -/activity_responsibles: 6 -/activity_responsibles/item: 8 -/camps: 29 -/camps/item: 28 -/camp_collaborations: 25 -/camp_collaborations/item: 15 -/categories: 11 -/categories/item: 9 -/content_types: 6 -/content_types/item: 6 -/days: 17 -/days/item: 11 -/day_responsibles: 6 -/day_responsibles/item: 9 -/material_items: 7 -/material_items/item: 9 -/material_lists: 6 -/material_lists/item: 7 -/periods: 6 -/periods/item: 19 -/profiles: 6 -/profiles/item: 6 -/schedule_entries: 23 -/schedule_entries/item: 21 -/users/item: 6 +/activities: + queryCount: 21 + executionTimeSeconds: 0.03 +/activities/item: + queryCount: 33 + executionTimeSeconds: 0.03 +/activity_progress_labels: + queryCount: 6 + executionTimeSeconds: 0.01 +/activity_progress_labels/item: + queryCount: 7 + executionTimeSeconds: 0.01 +/activity_responsibles: + queryCount: 6 + executionTimeSeconds: 0.01 +/activity_responsibles/item: + queryCount: 8 + executionTimeSeconds: 0.01 +/camps: + queryCount: 29 + executionTimeSeconds: 0.02 +/camps/item: + queryCount: 28 + executionTimeSeconds: 0.02 +/camp_collaborations: + queryCount: 25 + executionTimeSeconds: 0.02 +/camp_collaborations/item: + queryCount: 15 + executionTimeSeconds: 0.02 +/categories: + queryCount: 11 + executionTimeSeconds: 0.02 +/categories/item: + queryCount: 9 + executionTimeSeconds: 0.01 +/content_types: + queryCount: 6 + executionTimeSeconds: 0.01 +/content_types/item: + queryCount: 6 + executionTimeSeconds: 0.01 +/days: + queryCount: 17 + executionTimeSeconds: 0.02 +/days/item: + queryCount: 11 + executionTimeSeconds: 0.01 +/day_responsibles: + queryCount: 6 + executionTimeSeconds: 0.01 +/day_responsibles/item: + queryCount: 9 + executionTimeSeconds: 0.01 +/material_items: + queryCount: 7 + executionTimeSeconds: 0.01 +/material_items/item: + queryCount: 9 + executionTimeSeconds: 0.01 +/material_lists: + queryCount: 6 + executionTimeSeconds: 0.01 +/material_lists/item: + queryCount: 7 + executionTimeSeconds: 0.01 +/periods: + queryCount: 6 + executionTimeSeconds: 0.01 +/periods/item: + queryCount: 19 + executionTimeSeconds: 0.03 +/profiles: + queryCount: 6 + executionTimeSeconds: 0.01 +/profiles/item: + queryCount: 6 + executionTimeSeconds: 0.01 +/schedule_entries: + queryCount: 23 + executionTimeSeconds: 0.02 +/schedule_entries/item: + queryCount: 21 + executionTimeSeconds: 0.02 +/users/item: + queryCount: 6 + executionTimeSeconds: 0.01