Недавно при проверке производительности веб-приложения, над которым я работал, мне нужно было получить данные о потреблении памяти веб-приложением после определенных поведенческих действий.
Чтобы сделать это с 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')
Надеюсь поможет~~
~~МИР~~