Skip to content

Commit

Permalink
EndpointQueryCountTest: also measure time
Browse files Browse the repository at this point in the history
  • Loading branch information
BacLuc committed Mar 2, 2024
1 parent 2bb20ee commit 754204e
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 34 deletions.
17 changes: 12 additions & 5 deletions api/tests/Api/SnapshotTests/EndpointQueryCountTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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,
];
}
}

Expand Down Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 754204e

Please sign in to comment.