PerformanceTotalサービス
wdio-performancetotal-serviceはサードパーティパッケージです。詳細については、GitHub | npm Noteを参照してください。
WebdriverIO v8の場合は、バージョン3.x.xを使用してください。
WebdriverIO v7の場合は、バージョン2.x.xを使用してください。
WebdriverIO v6の場合は、バージョン1.x.xを使用してください。

webdriver.io用のこのプラグインを使用すると、純粋なUI、API、または両方の組み合わせに関係なく、テスト内の任意のフローにパフォーマンス分析を簡単に追加できます。このプラグインは、さまざまな手順の応答時間を測定し、アプリケーションの潜在的なボトルネックを特定するためのシンプルで効率的な方法を提供します。この情報を使用して、アプリケーション全体のパフォーマンスを向上させるための最適化と改善について、情報に基づいた意思決定を行うことができます。
インストール
このモジュールを開発依存関係としてインストールする最も簡単な方法は、次のコマンドを使用することですnpm install wdio-performancetotal-service --save-dev
使用法
wdio.conf.jsにwdio-performancetotal-serviceを追加します
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です。trueの場合、パフォーマンスデータはブラウザタイプごとにもグループ化されます。
テストでの使用法
テストファイルでも他のクラスでも、必要な場所にperformancetotalをインポートするだけです。このオブジェクトは、パフォーマンス測定を開始および終了するためのsampleStartとsampleEndなど、テストでパフォーマンスデータを測定するためのメソッドを提供します。performancetotalオブジェクトを使用して2つのWebサイトの起動パフォーマンスを測定する方法の例を次に示します
// 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の2つのファイルが作成されます。これらのファイルには、平均時間、平均の標準誤差(SEM)、サンプル数、最小値、最大値、最早時間、および最新時間など、各サンプルの分析データが含まれています。このデータを使用して、時間の経過に伴うパフォーマンスの低下や改善を特定できます。
Typescriptのサポート
Typescriptはこのプラグインでサポートされています。