TestRail بهصورت پیشفرض برای عملکرد بالا طراحی شده است، اما چند کار وجود دارد که میتوانید برای بهینهسازی عملکرد نصب TestRail انجام دهید. اجرای بعضی از این کارها آسانتر است؛ مثل فعال کردن HTTP compression یا استفاده از یک مرورگر وب سریع. کارهای دیگر، مانند استفاده از application server اختصاصی یا بهینهسازی عملکرد database، معمولاً فقط برای نصبهای بزرگتر (۱۰۰ کاربر یا بیشتر) یا زمانی لازم است که میخواهید تعداد زیادی درخواست همزمان ارسال کنید.
این راهنما روشهای بهینهسازی را توضیح میدهد و مشخصات پیشنهادی سرور را برای گرفتن بهترین عملکرد از TestRail ارائه میکند. نکات بهینهسازی عملکرد و تنظیمات پیشنهادی در سه بخش زیر گروهبندی شدهاند: بهینهسازی سختافزار، تنظیمات نرمافزار، و دستگاههای client.
بهینهسازی سختافزار & مشخصات #
برای یک نصب استاندارد TestRail، معمولاً نیازی به مشخصات ویژه سرور یا سختافزار گرانقیمت نیست. برای مثال، بسیاری از تیمها TestRail را روی یک application server مشترک یا روی یک virtual machine نصب میکنند. با این حال، حتی اگر قصد ندارید از یک سرور ردهبالا برای TestRail استفاده کنید، مطمئن شدن از اینکه سرور سختافزار مدرن و قابلقبول و مقدار مناسبی RAM دارد، اولین قدم برای رسیدن به عملکرد بهینه است.
با این حال، اگر قصد دارید یک سرور اختصاصی برای TestRail آماده کنید، که برای نصبهای بزرگتر توصیه میشود، هنگام انتخاب قطعات سرور میتوانید چند نکته را برای بهینهسازی عملکرد در نظر بگیرید. توجه داشته باشید که هدف شما باید بهینهسازی هر سه گلوگاه رایج عملکرد باشد: CPU، RAM و I/O. معمولاً بهتر است هر سه بخش را به شکل متوازن بهینه کنید، نه اینکه فقط روی یک بخش تمرکز کنید. بنابراین، برای یک application server مخصوص TestRail، معمولاً بهتر است بهجای انتخاب جدیدترین CPUهای ردهبالا و RAM کمتر، یک CPU با قیمت منطقیتر، RAM بیشتر و یک RAID card انتخاب کنید.
وضعیتهای تست زیر بهصورت پیشفرض در دسترس هستند:
- CPU: از آنجا که TestRail میتواند چندین درخواست را همزمان پردازش کند و شما معمولاً هم web server و هم database server را روی یک ماشین میزبانی میکنید، داشتن چند هسته یا چند CPU در سیستم سرور به عملکرد TestRail کمک میکند. بنابراین استفاده از یک یا چند CPU مدرن با ۴ هسته یا بیشتر میتواند راه خوبی باشد تا TestRail بتواند درخواستهای زیادی را بهصورت موازی مدیریت کند. اگر قرار است فقط چند درخواست را همزمان پاسخ دهید، که معمولاً در بیشتر نصبهای TestRail که از API بهصورت سنگین استفاده نمیکنند همینطور است، معمولاً بهتر است تعداد هستهها یا CPUها کمتر باشد و در عوض CPUهای سریعتر انتخاب شوند.
- RAM: web server و application حتی برای نصبهای بزرگتر هم فقط به مقدار مناسبی RAM نیاز دارند. بهعنوان یک قاعده کلی، ۸ گیگابایت برای سیستم و حدود ۱۰۰ مگابایت برای هر درخواست همزمان عدد مناسبی است. اما database معمولاً از RAM در دسترس بسیار بیشتر سود میبرد. در حالت ایدهآل، سرور میتواند کل database مربوط به TestRail را برای پاسخگویی سریعتر database در حافظه نگه دارد. توجه داشته باشید که attachmentهای آپلودشده، گزارشها و screenshotها در database ذخیره نمیشوند و میتوان آنها را در این محاسبه نادیده گرفت. طبق تجربه ما، داشتن ۱۶ گیگابایت RAM برای database و web server روی یک سرور مشترک، معمولاً برای نصبهای بزرگتر مقدار مناسبی است. برای استفاده بهتر از RAM موجود، حتماً تنظیمات پیشنهادی database را که در ادامه آمده دنبال کنید.
- I/O: TestRail برنامهای است که عملیات نوشتن زیادی انجام میدهد؛ چون testerها معمولاً تعداد زیادی test result ثبت میکنند، test caseهای جدید اضافه میکنند، test planها را بازآرایی میکنند و موارد مشابه. به همین دلیل عملکرد I/O یا همان disk معمولاً بزرگترین گلوگاه است. این موضوع همچنین یکی از مهمترین ضعفهای استفاده از virtual machine برای میزبانی applicationها است، چون عملکرد I/O در virtual machineها معمولاً افت قابلتوجهی دارد. بهعنوان یک قاعده کلی، استفاده از diskهای سریعتر سرور، مثل driveهای 10K یا 15K RPM، انتخاب خوبی است. همچنین میتوانید برای ذخیره database، SSD drive یا کارتهای flash I/O سرور با عملکرد بالا را امتحان کنید. RAID card و چند disk drive هم میتوانند به بهبود عملکرد database کمک کنند. برای بهترین عملکرد، استفاده از RAID card با write cache فعال میتواند کارایی را بهطور چشمگیری افزایش دهد. مهم: چنین تنظیمی را فقط همراه با battery-backed unit یا BBU استفاده کنید و فقط زمانی سراغ آن بروید که با این نوع تنظیمات تجربه دارید؛ چون در غیر این صورت، write cache ممکن است هنگام قطع برق باعث خراب شدن database شود. با این حال، استفاده از RAID write cache همراه با BBU همچنان ارزش دارد، چون میتواند عملکرد database را بهطور قابلتوجهی بهتر کند.
از آنجا که دسترسی به TestRail از طریق شبکه انجام میشود، چه از طریق LAN و چه از طریق اینترنت، برای رسیدن به عملکرد خوب باید اتصال سریعی به سرور TestRail وجود داشته باشد.
تنظیمات نرمافزار & پیکربندیها #
از آنجا که TestRail یک web application مبتنی بر PHP است و دادههای خود را در database ذخیره میکند، میتوانید عملکرد آن را در سطحهای مختلف و برای اجزای گوناگون، مانند database، web server یا PHP، بهینه کنید. در این بخش چند تنظیم برای بهینهسازی عملکرد نصبهای TestRail توضیح داده و پیشنهاد میشود.
سیستمعامل & سرویسها #
در اینجا وارد جزئیات بهینهسازی سیستمعامل نمیشویم، هرچند بدیهی است که باید این کار را برای هر سرور انجام دهید. با این حال، میتوانیم محیطی را پیشنهاد کنیم که میدانیم TestRail در آن بهخوبی کار میکند. توجه داشته باشید که TestRail هم در محیط Linux و هم در محیط Windows عملکرد خوبی دارد؛ بنابراین اگر ترجیح میدهید از Windows Server استفاده کنید، این هم انتخاب بسیار خوبی است.
اگر Windows را به Linux ترجیح نمیدهید و توزیع خاصی از Linux هم مدنظرتان نیست، بهطور کلی پیشنهاد میکنیم از Ubuntu ۱۶.۰۴ LTS همراه با Apache و MySQL استفاده کنید.
پیشنهاد میکنیم در Linux و Windows از PHP ۷.۰ یا نسخههای جدیدتر استفاده کنید، چون نسبت به نسخههای قبلی PHP عملکرد بهتری دارد.
MySQL InnoDB buffer #
وقتی از MySQL استفاده میکنید، مهم است پیکربندی پیشفرض MySQL را تغییر دهید؛ چون تنظیمات پیشفرض معمولاً برای databaseهایی با حجم فقط چند مگابایت بهینه شدهاند. سادهترین راه برای بهینهسازی MySQL برای databaseهای بزرگتر که استفاده سنگینی از storage engineهای InnoDB دارند، که در مورد TestRail همینطور است، اختصاص حافظه زیاد به InnoDB buffer pool است. با این کار، MySQL میتواند database مربوط به TestRail را در حافظه نگه دارد و سرعت queryهای خواندن را بهطور چشمگیری افزایش دهد. میتوانید اندازه InnoDB buffer pool را با افزودن خط زیر به فایل config مربوط به MySQL تنظیم کنید؛ این فایل معمولاً my.cnf نام دارد و در مسیر /etc/mysql یا مسیرهای مشابه قرار میگیرد:
innodb_buffer_pool_size=4096MB
خط پیکربندی بالا، ۴ گیگابایت حافظه را به InnoDB buffer pool اختصاص میدهد. بهطور کلی، بهتر است تا جای ممکن حافظه بیشتری به buffer pool اختصاص دهید. روی یک ماشین اختصاصی TestRail با ۸ گیگابایت حافظه، معمولاً میتوانید ۴ تا ۶ گیگابایت حافظه را به InnoDB buffer pool اختصاص دهید.
توجه داشته باشید که برای database server مبتنی بر SQL Server لازم نیست buffer pool را پیکربندی کنید، چون SQL Server تلاش میکند به اندازه نیاز، حافظه استفادهنشده را به buffer pool خودش اختصاص دهد.
HTTP compression #
فعال کردن HTTP compression راهی ساده و مؤثر برای بهبود عملکرد web applicationها است. لطفاً مقالههای زیر را درباره روش فعال کردن HTTP compression برای web serverهای مختلف بخوانید:
- Windows همراه با IIS ۶ (درخواستهای static و dynamic/application)
- Windows همراه با IIS ۷ (درخواستهای static و dynamic/application)
- Apache روی Ubuntu/Debian
- Apache روی Red Hat/CentOS
کش HTTP #
فعال کردن کش HTTP برای فایلهای static مانند stylesheetها و فایلهای JavaScript هم میتواند مفید باشد. چون TestRail برای هر نسخه خود URLهای منحصربهفردی استفاده میکند، یعنی نسخه build فعلی را به درخواستهای stylesheet و JavaScript اضافه میکند، مرورگرها هم باید این فایلها را بعد از بهروزرسانی TestRail دوباره دریافت کنند. توجه داشته باشید که فعال کردن کش طولانیمدت برای فایلهای تصویری توصیه نمیشود، چون TestRail به این درخواستها رشته مخصوص نسخه اضافه نمیکند.
کش PHP #
PHP یک زبان interpreted است و با اینکه سرعت خوبی دارد، نصب یک کش PHP میتواند تا حدی عملکرد PHP را بهتر کند. البته توجه داشته باشید که ما تا این مرحله TestRail را فقط با APC در Linux تست کردهایم و فعلاً فقط همین پیکربندی را توصیه میکنیم. نصب APC معمولاً با استفاده از package manager همان distribution انجام میشود.
پیکربندی Windows #
هنگام نصب و استفاده از TestRail روی یک سرور Windows، اکیداً توصیه میشود PHP و IIS را برای استفاده از FastCGI پیکربندی کنید، چون این روش بهترین عملکرد و پایداری را فراهم میکند. همچنین توصیه میشود از نسخه Non-Thread-Safe (NTS) PHP استفاده کنید. اگر برای نصب PHP روی Windows دستورالعملهای موجود در راهنمای نصب را دنبال کنید، از همان پیکربندی پیشنهادی استفاده کردهاید.
بهینهسازی نرمافزار & مشخصات #
حتی اگر سرور TestRail شما بسیار سریع باشد، استفاده از یک مرورگر وب کند میتواند رابط کاربری TestRail و زمان بارگذاری آن را بهطور محسوسی کند کند. در ادامه، توصیههایی برای بهینهسازی دستگاههای client و/یا مرورگرهای وب برای TestRail آمده است.
مرورگر وب #
مرورگرهای وب مدرن با هر نسخه سریعتر میشوند؛ بهویژه engineهای JavaScript، چون سازندگان مرورگرها روشها و رویکردهای تازهای برای اجرای scriptها ارائه میکنند. به همین دلیل مهم است از نسخهای بهروز از مرورگر دلخواهتان استفاده کنید. برای مثال، Internet Explorer ۹ از IE ۸ و IE ۷ سریعتر است. همین موضوع درباره Firefox ۴.۰ در مقایسه با Firefox ۳.x هم صدق میکند. ما معمولاً استفاده از Google Chrome را برای دسترسی و استفاده از web applicationها توصیه میکنیم، چون معمولاً سریعترین مرورگر وب است.
Pluginهای مرورگر وب #
ما متوجه شدهایم که استفاده از بعضی pluginهای مرورگر وب میتواند بهمرور زمان مرورگر را بهطور محسوسی کند کند. برای مثال، pluginهای debugging مانند FireBug یا pluginهایی مثل NoScript و AdBlock میتوانند applicationهایی را که وابستگی زیادی به JavaScript دارند کند کنند. برای بهترین عملکرد، میتوانید برای وبگردی عمومی از مرورگری متفاوت با مرورگری که برای دسترسی به web applicationها استفاده میکنید بهره ببرید؛ مثلاً Firefox برای وبگردی و Google Chrome برای web applicationها.

