سازماندهی مجموعه آزمون
با رشد پروژهها، به طور اجتنابناپذیر آزمونهای یکپارچهسازی بیشتری اضافه میشوند. این امر زمان ساخت را افزایش داده و بهرهوری را کاهش میدهد.
برای جلوگیری از این مشکل، باید آزمونهای خود را به صورت موازی اجرا کنید. WebdriverIO هر نمونه آزمون (یا فایل ویژگی در Cucumber) را در یک جلسه واحد به صورت موازی آزمایش میکند. به طور کلی، سعی کنید فقط یک ویژگی را در هر فایل آزمون بررسی کنید. سعی کنید تعداد آزمونها در یک فایل نه خیلی زیاد باشد و نه خیلی ک م. (البته هیچ قانون طلایی در اینجا وجود ندارد.)
زمانی که آزمونهای شما چندین فایل مشخصات دارند، باید اجرای همزمان آزمونها را شروع کنید. برای انجام این کار، ویژگی maxInstances
را در فایل پیکربندی خود تنظیم کنید. WebdriverIO به شما اجازه میدهد آزمونهای خود را با حداکثر همزمانی اجرا کنید - به این معنی که صرف نظر از تعداد فایلها و آزمونها، همه آنها میتوانند به صورت موازی اجرا شوند. (البته این مورد هنوز تابع محدودیتهای خاصی مانند CPU کامپیوتر شما، محدودیتهای همزمانی و غیره است.)
فرض کنید شما ۳ قابلیت مختلف (Chrome، Firefox و Safari) دارید و
maxInstances
را1
تنظیم کردهاید. اجراکننده آزمون WDIO ۳ فرآیند را ایجاد میکند. بنابراین، اگر ۱۰ فایل مشخصات داشته باشید وmaxInstances
را10
تنظیم کنید، تمام فایلهای مشخصات به طور همزمان آزمایش میشوند و ۳۰ فرآیند ایجاد میشود.
میتوانید ویژگی maxInstances
را به صورت سراسری تعریف کنید تا این صفت برای تمام مرورگرها تنظیم شود.
اگر شبکه WebDriver خود را اجرا میکنید، ممکن است (به عنوان مثال) برای یک مرورگر نسبت به مرورگر دیگر ظرفیت بیشتری داشته باشید. در این حالت، میتوانید maxInstances
را در شیء قابلیت خود محدود کنید:
// wdio.conf.js
export const config = {
// ...
// set maxInstance for all browser
maxInstances: 10,
// ...
capabilities: [{
browserName: 'firefox'
}, {
// maxInstances can get overwritten per capability. So if you have an in-house WebDriver
// grid with only 5 firefox instance available you can make sure that not more than
// 5 instance gets started at a time.
browserName: 'chrome'
}],
// ...
}