跳至主要内容

性能总服务

wdio-performancetotal-service 是一个第三方包,更多信息请参见 GitHub | npm 注意
对于 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
}]
]
// ...
};

选项

disableAppendToExistingFile

设置为 true 时,新的测试运行将从头开始并覆盖任何现有的性能数据。设置为 false(默认值)时,性能数据将添加到现有数据中。

performanceResultsFileName

您可以设置默认结果文件名(performance-results)。新创建的结果文件通常会覆盖旧文件。如果您想保留旧文件,建议在文件名中添加时间戳。例如

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

dropResultsFromFailedTest

默认为 false。当值设置为 true 时,将排除失败测试的性能分析。

performanceResultsDirectory

您可以覆盖项目根目录中结果目录的默认路径。例如

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

analyzeByBrowser

默认为 false。如果为真,则性能数据也将按浏览器类型分组。

测试中的用法

只需在需要的地方导入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)、样本数量、最小值、最大值、最早时间和最晚时间。您可以使用这些数据来识别任何性能回归或随着时间的推移而进行的改进。

Typescript 支持

此插件支持 Typescript。

欢迎!我怎样才能帮到您?

WebdriverIO AI Copilot