Skip to content

Improve E2E Test Runtime Performance #785

@frewilhelm

Description

@frewilhelm

Description

The current e2e test suite takes a considerable amount of time to execute. We should optimize the test runtime by:

  • Parallelizing Ginkgo tests:

    • Enable parallel execution using --procs flag
    • Ensure test isolation with unique namespaces (currently e2e-replication-controller-test is hardcoded)
    • Mark tests that can run in parallel vs. serially
    • Make shared resources like controllerPodName thread-safe
  • Improving test setup:

    • Optimize BeforeSuite operations (controller pod lookup, validation frequency)
    • Implement smarter polling intervals with exponential backoff instead of fixed waits
    • Review timeout values in utils.DeployAndWaitForResource (currently 10m default)
    • Add fast-failing resource readiness checks
  • Optimizing Kind cluster initialization:

    • Profile cluster creation time to identify bottlenecks
    • Investigate pre-built cluster images
    • Evaluate cluster reuse between test runs
    • Optimize cluster configuration to include only necessary components
  • Improving example tests:

    • The tests in e2e_examples_test.go run sequentially through all examples - investigate parallelization
    • Cache expensive operations like utils.PrepareOCMComponent (component version creation/transfer)
    • Reduce setup/teardown overhead by grouping similar examples

Done Criteria

  • Test suite runtime reduced to a maximum of five minutes (setup + runtime)
  • Tests can run in parallel without conflicts or flaky behavior
  • Documentation updated with parallel execution instructions
  • CI/CD pipeline updated to use parallel execution
  • Code has been reviewed by other team members
  • Internal technical Documentation created/updated (if applicable)
  • Successful demonstration in Review

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ipceiImportant Project of Common European Interestkind/tasksmall task, normally part of feature or epic

    Type

    Projects

    Status

    🛠️ Needs Refinement

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions