OpenTelemetryAuthenticatedPerformanceTest.php

Same filename and directory in other branches
  1. 10 core/profiles/demo_umami/tests/src/FunctionalJavascript/OpenTelemetryAuthenticatedPerformanceTest.php

Namespace

Drupal\Tests\demo_umami\FunctionalJavascript

File

core/profiles/demo_umami/tests/src/FunctionalJavascript/OpenTelemetryAuthenticatedPerformanceTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\demo_umami\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\PerformanceTestBase;

/**
 * Tests demo_umami profile performance.
 *
 * @group OpenTelemetry
 * @group #slow
 * @requires extension apcu
 */
class OpenTelemetryAuthenticatedPerformanceTest extends PerformanceTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected $profile = 'demo_umami';
    protected function setUp() : void {
        parent::setUp();
        $user = $this->drupalCreateUser();
        $this->drupalLogin($user);
    }
    
    /**
     * Logs front page tracing data with an authenticated user and warm cache.
     */
    public function testFrontPageAuthenticatedWarmCache() : void {
        $this->drupalGet('<front>');
        $this->drupalGet('<front>');
        $performance_data = $this->collectPerformanceData(function () {
            $this->drupalGet('<front>');
        }, 'authenticatedFrontPage');
        $this->assertSame(2, $performance_data->getStylesheetCount());
        $this->assertLessThan(44000, $performance_data->getStylesheetBytes());
        $this->assertSame(1, $performance_data->getScriptCount());
        $this->assertLessThan(125000, $performance_data->getScriptBytes());
        $expected_queries = [
            'SELECT "session" FROM "sessions" WHERE "sid" = "SESSION_ID" LIMIT 0, 1',
            'SELECT * FROM "users_field_data" "u" WHERE "u"."uid" = "10" AND "u"."default_langcode" = 1',
            'SELECT "roles_target_id" FROM "user__roles" WHERE "entity_id" = "10"',
            'SELECT "config"."name" AS "name" FROM "config" "config" WHERE ("collection" = "") AND ("name" LIKE "language.entity.%" ESCAPE ' . "'\\\\'" . ') ORDER BY "collection" ASC, "name" ASC',
        ];
        $recorded_queries = $performance_data->getQueries();
        $this->assertSame($expected_queries, $recorded_queries);
        $this->assertSame(4, $performance_data->getQueryCount());
        $this->assertSame(43, $performance_data->getCacheGetCount());
        $this->assertSame(0, $performance_data->getCacheSetCount());
        $this->assertSame(0, $performance_data->getCacheDeleteCount());
        $this->assertSame(0, $performance_data->getCacheTagChecksumCount());
        $this->assertSame(11, $performance_data->getCacheTagIsValidCount());
        $this->assertSame(0, $performance_data->getCacheTagInvalidationCount());
    }

}

Classes

Title Deprecated Summary
OpenTelemetryAuthenticatedPerformanceTest Tests demo_umami profile performance.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.