Перейти к основному содержимому

Сервис PerformanceTotal

wdio-performancetotal-service это сторонний пакет, для получения дополнительной информации посетите GitHub | npm Примечание:
Для WebdriverIO v9 используйте версию 4.x.x.
Для WebdriverIO v8 используйте версию 3.x.x.
Для WebdriverIO v7 используйте версию 2.x.x.
Для WebdriverIO v6 используйте версию 1.x.x.


chart

С этим плагином для webdriver.io вы можете легко добавить анализ производительности к любому процессу в ваших тестах, будь то чистый UI, API или их комбинация. Этот плагин предоставляет простой и эффективный способ измерения времени отклика различных процедур и выявления потенциальных узких мест в вашем приложении. С этой информацией вы можете принимать обоснованные решения об оптимизации и улучшениях для повышения общей производительности вашего приложения.

Установка

Самый простой способ установить этот модуль как зависимость для разработки - использовать следующую команду:

npm install wdio-performancetotal-service --save-dev

Использование

Добавьте wdio-performancetotal-service в ваш wdio.conf.js:

exports.config = {
// ...
services: ['performancetotal']
// ...
};

...или с опциями сервиса:

exports.config = {
// ...
services: [
['performancetotal',
// The options (with default values)
{
disableAppendToExistingFile: false,
performanceResultsFileName: "performance-results",
dropResultsFromFailedTest: false,
performanceResultsDirectory: "performance-results",
analyzeByBrowser: false,
recentDays: 0
}]
]
// ...
};

Опции

disableAppendToExistingFile

Когда установлено значение true, новые запуски тестов будут начинаться с чистого листа и перезаписывать существующие данные о производительности. Когда установлено значение false (по умолчанию), данные о производительности будут добавляться к существующим данным.

⚠️ Предупреждение:

Это действие навсегда удалит все ваши данные о производительности. Убедитесь, что у вас есть резервная копия перед началом.

performanceResultsFileName

Вы можете переопределить имя файла результатов по умолчанию (performance-results). Вновь созданный файл результатов обычно перезаписывает старый файл. Если вы хотите сохранить старые файлы, рекомендуется добавить к имени файла временную метку. Например:

...
performanceResultsFileName: `performance-results_${new Date().getTime()}`
...

dropResultsFromFailedTest

По умолчанию false. Когда значение установлено на true, анализ производительности из неудачных тестов будет исключен.

recentDays

По умолчанию 0 (без ограничений). Чтобы установить количество дней для анализа производительности, укажите количество дней. Также поддерживаются части дней (например, recentDays: 0.5)

performanceResultsDirectory

Вы можете переопределить путь по умолчанию для каталога результатов в корневом каталоге проекта. Например:

...
performanceResultsDirectory: "results-dir/performance-total-results"
...

analyzeByBrowser

По умолчанию false. Если true, данные о производительности будут анализироваться также по типу браузера.

Использование в тесте

Просто импортируйте performancetotal там, где он вам нужен, будь то в вашем тестовом файле или любом другом классе. Этот объект предоставляет методы для измерения данных о производительности в ваших тестах, включая sampleStart и sampleEnd для начала и окончания измерений производительности. Вот пример того, как можно использовать объект performancetotal для измерения производительности запуска двух веб-сайтов:

// This test case measures the startup performance of Github and SourceForge using the performancetotal object.

import { performancetotal } from "wdio-performancetotal-service";

it("should test github and sourceforge startup performance", () => {
// Start a new performance measurement for Github
performancetotal.sampleStart("GH-Startup");

// Navigate to Github
browser.url("https://github.com/");

// End the Github measurement and save the results
performancetotal.sampleEnd("GH-Startup");

// ...

// Start a new performance measurement for SourceForge
performancetotal.sampleStart("SF-Startup");

// Navigate to SourceForge
await browser.url("https://sourceforge.net/");

// End the SourceForge measurement and save the results
performancetotal.sampleEnd("SF-Startup");
});

Вы можете получить время, затраченное на один образец производительности, вызвав performancetotal.getSampleTime(sampleName) в своем тесте. Это позволяет проверить производительность определенного участка кода и убедиться, что он соответствует вашим ожиданиям.

// Get the time taken for a single sample
const sampleTime = performancetotal.getSampleTime(sampleName);

Получение результатов

Когда все тесты завершены, в корневой папке вашего проекта создается новый каталог результатов (имя каталога по умолчанию - performance-results). Внутри этого каталога создаются два файла: performance-results.json и performance-results.csv. Эти файлы содержат проанализированные данные для каждого образца, включая среднее время, стандартную ошибку среднего (SEM), количество образцов, минимальное значение, максимальное значение, самое раннее время и самое позднее время. Вы можете использовать эти данные для выявления любых регрессий или улучшений производительности с течением времени.

Анализ данных о производительности в массовом порядке

Для анализа существующих данных о производительности в массовом порядке без генерации новых тестов рекомендуется использовать инструмент performancetotal-cli.

Поддержка Typescript

Для этого плагина поддерживается Typescript.

Поддержка

Для получения поддержки и предложений не стесняйтесь обращаться ко мне по адресу tzur.paldi@outlook.com.

Welcome! How can I help?

WebdriverIO AI Copilot