Skip to content

feat(benchmark-tests): enhance hydration benchmarks with batch#7861

Merged
laske185 merged 1 commit intodevelopfrom
feat/add-testdriver.io-v3
Jun 11, 2025
Merged

feat(benchmark-tests): enhance hydration benchmarks with batch#7861
laske185 merged 1 commit intodevelopfrom
feat/add-testdriver.io-v3

Conversation

@deleonio
Copy link
Copy Markdown
Contributor

@deleonio deleonio commented Jun 11, 2025

  • Increased default test timeout from 5000ms to 10000ms for better stability.
  • Implemented batch processing in hydration tests to improve performance measurement.
  • Introduced a results map to collect and store hydration durations for each tag.
  • Updated test configurations to accommodate new batch size and timeout settings.
  • Refactored result writing logic into a dedicated module for better organization.
  • Enhanced the test run logic to handle batches of elements and track hydration performance more effectively.

The A11y and PO reviews will only take place after all other DoD steps have been completed by the Developer:

  • Meaningful pull request title for the release notes
  • Pull request is linked to an issue and all changes relate to the issue
  • Tests to protect this code implemented (if applicable)
  • Manual test performed successfully (if applicable)
  • Documentation or migration has been updated (if applicable)

…sing and result tracking

- Increased default test timeout from 5000ms to 10000ms for better stability.
- Implemented batch processing in hydration tests to improve performance measurement.
- Introduced a results map to collect and store hydration durations for each tag.
- Updated test configurations to accommodate new batch size and timeout settings.
- Refactored result writing logic into a dedicated module for better organization.
- Enhanced the test run logic to handle batches of elements and track hydration performance more effectively.
@deleonio deleonio marked this pull request as draft June 11, 2025 09:19
@github-actions
Copy link
Copy Markdown
Contributor

@github-actions
Copy link
Copy Markdown
Contributor

Hydration Benchmark Report (vs Baseline)

✅ Top 5 Improvements (Best Speedups)

Component Current Baseline Δ% Result

🔻 Flop 5 Regressions (Worst Slowdowns)

Component Current Baseline Δ% Result
kol-select 113.8ms 1.1ms +10245.5% 🔻
kol-breadcrumb 104.7ms 1.2ms +8625% 🔻
kol-table-stateless 369ms 5ms +7280% 🔻
kol-table-stateful 379.6ms 5.4ms +6929.6% 🔻
kol-icon 69.6ms 1ms +6860% 🔻
📋 Show all results
Component Current Baseline Δ% Result
kol-abbr 16.3ms 0.4ms +3975% 🔻
kol-accordion 142.3ms 2.2ms +6368.2% 🔻
kol-alert 117.4ms 1.8ms +6422.2% 🔻
kol-avatar 23.1ms 0.6ms +3750% 🔻
kol-badge 70.5ms 1.7ms +4047.1% 🔻
kol-breadcrumb 104.7ms 1.2ms +8625% 🔻
kol-button 54ms 1.1ms +4809.1% 🔻
kol-button-link 54.1ms 1.2ms +4408.3% 🔻
kol-card 22.1ms 0.6ms +3583.3% 🔻
kol-details 133.3ms 2.2ms +5959.1% 🔻
kol-drawer 25.1ms 0.4ms +6175% 🔻
kol-form 33.9ms 0.5ms +6680% 🔻
kol-heading 22.6ms 0.4ms +5550% 🔻
kol-icon 69.6ms 1ms +6860% 🔻
kol-image 17.8ms 0.4ms +4350% 🔻
kol-input-checkbox 141.3ms 2.1ms +6628.6% 🔻
kol-input-color 75.4ms 1.4ms +5285.7% 🔻
kol-input-date 75.3ms 1.2ms +6175% 🔻
kol-input-email 54.9ms 1.1ms +4890.9% 🔻
kol-input-file 102.4ms 1.8ms +5588.9% 🔻
kol-input-number 64.2ms 1.3ms +4838.5% 🔻
kol-input-password 58.2ms 1.2ms +4750% 🔻
kol-input-radio 52ms 0.8ms +6400% 🔻
kol-input-text 58.3ms 1ms +5730% 🔻
kol-link 51.4ms 1.2ms +4183.3% 🔻
kol-link-button 54.4ms 1ms +5340% 🔻
kol-modal 26.4ms 0.5ms +5180% 🔻
kol-nav 32.1ms 0.7ms +4485.7% 🔻
kol-pagination 454.1ms 7.3ms +6120.5% 🔻
kol-popover-button 73.8ms 1.6ms +4512.5% 🔻
kol-progress 33.8ms 0.8ms +4125% 🔻
kol-quote 19.2ms 0.5ms +3740% 🔻
kol-select 113.8ms 1.1ms +10245.5% 🔻
kol-skip-nav 20.2ms 0.6ms +3266.7% 🔻
kol-spin 25.3ms 0.4ms +6225% 🔻
kol-split-button 169.5ms 3ms +5550% 🔻
kol-table-stateful 379.6ms 5.4ms +6929.6% 🔻
kol-table-stateless 369ms 5ms +7280% 🔻
kol-tabs 32.7ms 0.6ms +5350% 🔻
kol-textarea 52.5ms 1ms +5150% 🔻
kol-toolbar 31.9ms 0.6ms +5216.7% 🔻
kol-tree 28.9ms 0.5ms +5680% 🔻
kol-tree-item 67.3ms 1.5ms +4386.7% 🔻
kol-version 159.5ms 2.7ms +5807.4% 🔻

@deleonio deleonio requested a review from laske185 June 11, 2025 10:13
@deleonio deleonio marked this pull request as ready for review June 11, 2025 10:13
@laske185 laske185 requested a review from Copilot June 11, 2025 11:03
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enhances the hydration benchmark tests by increasing default timeouts, introducing batch processing, and refactoring result collection and output for more organized and accurate performance measurements.

  • Increased test timeouts and updated configurations for both WebdriverIO and Playwright.
  • Refactored benchmark test logic to process batches of elements and collect results via maps.
  • Adjusted logging levels in several components to change error reporting to warnings.

Reviewed Changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/tools/benchmark-tests/wdio.conf.cjs Updated timeout configuration for improved stability.
packages/tools/benchmark-tests/tests/lib/test.ts Refactored testRun to implement batch processing and updated result mapping.
packages/tools/benchmark-tests/tests/lib/config.ts Increased iterations, batch size, and timeout values.
packages/tools/benchmark-tests/tests/lib/browser.ts Updated benchmark runner integration with new batch parameters.
packages/tools/benchmark-tests/tests/lib/after.ts Adjusted result file writing logic to work with results maps.
packages/tools/benchmark-tests/tests/hydration.webdriver.ts Modified imports and after hook to accommodate batch results.
packages/tools/benchmark-tests/tests/hydration.playwright.ts Updated Playwright test configuration and hooks for batch processing.
packages/tools/benchmark-tests/playwright.config.js Updated timeout setting for Playwright tests.
packages/components/src/utils/unique-nav-labels.ts Changed logging from error to warning for duplicate nav labels.
packages/components/src/schema/props/color.ts Modified logging level for invalid color values.
packages/components/src/components/toaster/toaster.tsx Adjusted logging level for disposed toaster service warnings.
Comments suppressed due to low confidence (4)

packages/tools/benchmark-tests/tests/lib/test.ts:5

  • [nitpick] The variable name 'testResults' now represents batch-level results instead of individual element measurements. Consider renaming it to 'batchResults' to improve clarity.
const testResults: Map<Set<HTMLElement>, Measure> = new Map();

packages/components/src/utils/unique-nav-labels.ts:12

  • Changing the log level from error to warn reduces the visibility of duplicate nav label issues. Please verify this change aligns with the intended error handling strategy.
Log.warn(`There already is a nav element with the label "${ariaLabel}"`);

packages/components/src/schema/props/color.ts:111

  • The removal of the 'forceLog' option alters how invalid color values are reported. Confirm that this logging change meets your error reporting requirements.
Log.warn(`_color was empty or invalid (${JSON.stringify(value)})`);

packages/components/src/components/toaster/toaster.tsx:41

  • Similar to other logging updates, switching from enforced error logging to a warning might reduce issue visibility. Please ensure this change is consistent with your logging policy for critical state changes.
Log.warn('Toaster service is already disposed.');

Comment thread packages/tools/benchmark-tests/playwright.config.js
@laske185 laske185 merged commit 4ff7d47 into develop Jun 11, 2025
12 of 17 checks passed
@laske185 laske185 deleted the feat/add-testdriver.io-v3 branch June 11, 2025 11:49
@publicuibot publicuibot bot locked and limited conversation to collaborators Jun 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants