Skip to content

Conversation

@cortisiko
Copy link
Member

@cortisiko cortisiko commented Sep 9, 2025

Description

The purpose of this PR is the evolution of our performance tests. Currently, our performance test runs on a nightly cadence during off-peak (11 pm EST). The idea is to speed up the tests so that it does not take 50+ minutes to run. In order to do so, we create and use 2 different types of e2e builds to cover the different types of performance tests that we have:

  • Performance tests that go through onboarding - These need a fresh app without any pre-imported wallet data.
  • Performance tests that don't rely on onboarding - These need an app with a pre-imported wallet (using SRP and password) to skip the onboarding flow This is based on the work Tomas did here.

The Approach

The build pipeline follows a hybrid model: Android builds run directly on GitHub Actions with our custom runners, while iOS builds are generated through Bitrise via API calls.

TLDR;

  • Performance E2E workflow triggers both build workflows
  • Android builds run directly on GitHub Actions runners, creating two APK files
  • iOS builds are triggered on Bitrise, then we download the IPA files via API
  • Both APK and IPA files get uploaded to BrowserStack, and URLs are returned
  • Performance tests run using the appropriate build type for each test scenario

APIs Used

Bitrise API for iOS builds:
/apps/{app-slug}/builds - Retrieves list of builds
/apps/{app-slug}/artifacts/{artifact-slug} - Downloads IPA artifacts

BrowserStack API for app uploads:
https://api-cloud.browserstack.com/app-automate/upload

image

Changelog

CHANGELOG entry:

Related issues

Fixes:

Manual testing steps

Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

@cortisiko cortisiko self-assigned this Sep 9, 2025
@metamaskbot metamaskbot added the team-qa QA team label Sep 9, 2025
@sonarqubecloud
Copy link

Copy link
Contributor

@javiergarciavera javiergarciavera left a comment

Choose a reason for hiding this comment

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

LGTM!

@cortisiko cortisiko added this pull request to the merge queue Sep 15, 2025
Merged via the queue into main with commit e2bb901 Sep 15, 2025
69 of 70 checks passed
@cortisiko cortisiko deleted the e2e/enable-profiling-skip-onboarding-for-performance branch September 15, 2025 14:56
@github-actions github-actions bot locked and limited conversation to collaborators Sep 15, 2025
@metamaskbot metamaskbot added the release-7.56.0 Issue or pull request that will be included in release 7.56.0 label Sep 15, 2025
@cortisiko cortisiko added the area-performance Issues relating to slowness of app, cpu usage, and/or blank screens. label Sep 15, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-performance Issues relating to slowness of app, cpu usage, and/or blank screens. no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-7.56.0 Issue or pull request that will be included in release 7.56.0 size-XL team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants