سرویس 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 استفاده کنید.
با این افزونه برای webdriver.io میتوانید به راحتی تحلیل عملکرد را به هر جریان در آزمونهای خود اضافه کنید، خواه رابط کاربری خالص، 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 تماس بگیرید.