Недавно при проверке производительности веб-приложения, над которым я работал, мне нужно было получить данные о потреблении памяти веб-приложением после определенных поведенческих действий.

Чтобы сделать это с Cypress, сначала нам нужно зафиксировать производительность приложения, используя приведенную ниже команду в тестовом блоке Cypress:

cy.window().then((window) => {
      firstTask = window.performance.memory.usedJSHeapSize
    })

По умолчанию Chrome не фиксирует потребление памяти в реальном времени для текущего сеанса браузера. Вместо этого он проверяет каждые 20 секунд. Чтобы получить потребление памяти в реальном времени, нам нужно передать следующий аргумент при запуске сеанса браузера Chrome, обновив cypress.config.ts

export default defineConfig({
  chromeWebSecurity: false,
  waitForAnimations: true,
  defaultCommandTimeout: 10000,
  requestTimeout: 10000,
  responseTimeout: 10000,
  projectId: '4oe38f',
  video: true,
  experimentalStudio: true,
  e2e: {
    setupNodeEvents(on, config) {

      on('before:browser:launch', (browser = {
        name: "",
        family: "chromium",
        channel: "",
        displayName: "",
        version: "",
        majorVersion: "",
        path: "",
        isHeaded: false,
        isHeadless: false
      }, launchOptions) => {
        if (browser.family === 'chromium' && browser.name !== 'electron') {
          // auto open devtools
          launchOptions.args.push('--enable-precise-memory-info')
        }

        return launchOptions

      })

    },
    baseUrl: '${baseUrl}',
    specPattern: 'cypress/**/*.{js,jsx,ts,tsx}',
  },
});

Обратите внимание на строку кода:

launchOptions.args.push('--enable-precise-memory-info')

Надеюсь поможет~~

~~МИР~~