Przejdź do głównej treści

Usługa PerformanceTotal

wdio-performancetotal-service jest pakietem zewnętrznym, więcej informacji można znaleźć na GitHub | npm Uwaga:
Dla WebdriverIO v9 używaj wersji 4.x.x.
Dla WebdriverIO v8 używaj wersji 3.x.x.
Dla WebdriverIO v7 używaj wersji 2.x.x.
Dla WebdriverIO v6 używaj wersji 1.x.x.


chart

Dzięki tej wtyczce do webdriver.io możesz łatwo dodać analizę wydajności do dowolnego przepływu w swoich testach, czy to czysty UI, API, czy kombinacja obu. Ta wtyczka zapewnia prosty i wydajny sposób pomiaru czasów odpowiedzi różnych procedur i identyfikacji potencjalnych wąskich gardeł w Twojej aplikacji. Dzięki tym informacjom możesz podejmować świadome decyzje dotyczące optymalizacji i ulepszeń, aby poprawić ogólną wydajność swojej aplikacji.

Instalacja

Najprostszym sposobem instalacji tego modułu jako dev dependency jest użycie następującego polecenia:

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

Użycie

Dodaj wdio-performancetotal-service do swojego pliku wdio.conf.js:

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

...lub z opcjami usługi:

exports.config = {
// ...
services: [
['performancetotal',
// Opcje (z domyślnymi wartościami)
{
disableAppendToExistingFile: false,
performanceResultsFileName: "performance-results",
dropResultsFromFailedTest: false,
performanceResultsDirectory: "performance-results",
analyzeByBrowser: false,
recentDays: 0
}]
]
// ...
};

Opcje

disableAppendToExistingFile

Gdy ustawione na true, nowe uruchomienia testów zaczną się od nowa i nadpiszą istniejące dane wydajnościowe. Gdy ustawione na false (domyślnie), dane wydajnościowe będą dodawane do istniejących danych.

⚠️ Uwaga:

Ta akcja spowoduje trwałe usunięcie wszystkich danych wydajnościowych. Upewnij się, że masz kopię zapasową przed kontynuowaniem.

performanceResultsFileName

Możesz nadpisać domyślną nazwę pliku wyników (performance-results). Nowo utworzony plik wyników zwykle nadpisuje stary plik. Jeśli chcesz zachować stare pliki, zaleca się dodanie znacznika czasowego do nazwy pliku. Na przykład:

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

dropResultsFromFailedTest

Domyślnie false. Gdy wartość jest ustawiona na true, analiza wydajności z nieudanych testów zostanie wykluczona.

recentDays

Domyślnie 0 (brak limitu). Aby ustawić liczbę dni do uwzględnienia w analizie wydajności, ustaw liczbę dni. Obsługiwane są również niepełne dni (np. recentDays: 0.5)

performanceResultsDirectory

Możesz nadpisać domyślną ścieżkę do katalogu wyników w katalogu głównym projektu. Na przykład:

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

analyzeByBrowser

Domyślnie false. Jeśli true, dane wydajnościowe będą również analizowane według typu przeglądarki.

Użycie w testach

Wystarczy zaimportować performancetotal tam, gdzie go potrzebujesz, czy to w pliku testowym, czy w dowolnej innej klasie. Ten obiekt udostępnia metody do mierzenia danych wydajnościowych w testach, w tym sampleStart i sampleEnd do rozpoczynania i kończenia pomiarów wydajności. Oto przykład, jak można użyć obiektu performancetotal do zmierzenia wydajności startu dwóch stron internetowych:

// Ten przypadek testowy mierzy wydajność startową Github i SourceForge za pomocą obiektu performancetotal.

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

it("should test github and sourceforge startup performance", () => {
// Rozpocznij nowy pomiar wydajności dla Github
performancetotal.sampleStart("GH-Startup");

// Przejdź do Github
browser.url("https://github.com/");

// Zakończ pomiar Github i zapisz wyniki
performancetotal.sampleEnd("GH-Startup");

// ...

// Rozpocznij nowy pomiar wydajności dla SourceForge
performancetotal.sampleStart("SF-Startup");

// Przejdź do SourceForge
await browser.url("https://sourceforge.net/");

// Zakończ pomiar SourceForge i zapisz wyniki
performancetotal.sampleEnd("SF-Startup");
});

Możesz uzyskać czas potrzebny dla pojedynczej próbki wydajności, wywołując performancetotal.getSampleTime(sampleName) w swoim teście. Pozwala to sprawdzić wydajność konkretnej sekcji kodu i upewnić się, że spełnia ona Twoje oczekiwania.

// Pobierz czas potrzebny dla pojedynczej próbki
const sampleTime = performancetotal.getSampleTime(sampleName);

Uzyskiwanie wyników

Po zakończeniu wszystkich testów w głównym folderze projektu tworzony jest nowy katalog wyników (domyślna nazwa katalogu to performance-results). W tym katalogu tworzone są dwa pliki: performance-results.json i performance-results.csv. Te pliki zawierają przeanalizowane dane dla każdej próbki, w tym średni czas, standardowy błąd średniej (SEM), liczbę próbek, wartość minimalną, wartość maksymalną, najwcześniejszy czas i najpóźniejszy czas. Możesz użyć tych danych do identyfikacji wszelkich regresji lub poprawy wydajności w czasie.

Analiza danych wydajnościowych zbiorczo

Do analizy istniejących danych wydajnościowych zbiorczo bez generowania nowych testów zaleca się użycie narzędzia performancetotal-cli.

Wsparcie dla Typescript

Ta wtyczka obsługuje Typescript.

Wsparcie

W celu uzyskania wsparcia i sugestii, skontaktuj się ze mną pod adresem tzur.paldi@outlook.com.

Welcome! How can I help?

WebdriverIO AI Copilot