ضبط با Blazemeter

همانطور که در مقاله ضبط سناریو با استفاده از جیمیتر اشاره شد، ضبط سناریوها یکی از روشهای ساده برای ایجاد اسکریپتهای تست میباشد، زیرا میتوانید به جای ایجاد این اسکریپتها به صورت دستی، با استفاده از قابلیت Recording مانند یک کاربر واقعی با سیستم کار کرده و تعاملات را ضبط کنید. تسترها با استفاده از این امکان، از طریق جیمیتر و یا ابزارهای 3rd party مانند BlazeMeter میتوانند سرعت تست خود را به مراتب افزایش دهند. در این مقاله به آموزش روش دیگر ضبط سناریوها با استفاده از BlazeMeter، میپردازیم.
افزونه BlazeMeterیک ابزار رایگان است که امکان ضبط، بارگذاری و اجرای تست اسکریپتها را فراهم میکند، این افزونه از فایلهای JMX، JSON و YML برای اجرای اسکریپتها پشتیبانی میکند.
آشنایی کلی با عملکرد BlazeMeter
در واقع BlazeMeter بدون نیاز به تغییر تنظیمات پروکسی سیستم، درخواستهای http، https و تمامی تعاملات واقعی کاربر که از طریق مرورگر ارسال میگردد را ضبط کرده و اسکریپتهای تست را ساخته و در سایت BlazeMeter آپلود میکند. سپس میتوانیم فایلهای JMX ،JSON و YML را با توجه به نیاز خود دانلود کرده و به دو طریق از آنها برای تست سیستم نرمافزاری مورد نظر خود استفاده کنیم:
- اجرای اسکریپتهای ضبط شده در BlazeMeter: میتوان اسکریپتهای ضبط شده را بدون نصب جیمیتر و سلنیوم، در خود BlazeMeter اجرا و نتایج را بررسی کنید.
- اجرای اسکریپتهای ضبط شده به صورت محلی در جیمیتر و سلنیوم: پس از ضبط، میتوان اسکریپتها را به فایلهای قابل اجرا در جیمیتر و سلنیوم تبدیل و اجرا کرد.
مزایای استفاده از BlazeMeter
- ضبط بدون نیاز به مواردی مانند تغییر تنظیمات پروکسی سیستم و ایجاد certificate.
- ضبط و اجرای تست بدون نیاز به نصب ابزارهایی مانند جیمیتر و سلنیوم.
- ضبط سناریوها بدون دارا بودن دانش اسکریپت نویسی یا کدنویسی.
- ضبط تمامی درخواستهای http و https.
- سازگار با جیمیتر و سلنیوم.
نحوه ضبط با استفاده از BlazeMeter
برای اضافه کردن افزونه BlazeMeter به کروم میتوان از طریق Chrome Web Store این افزونه را دانلود و اضافه کرد. همچنین میتوانید طبق دستور زیر آن را به صورت دستی اضافه کنید:
- فایل CRX این افزونه را دانلود کنید.
- در مرورگر گوگل کروم، طبق شکل زیر، با کلیک بر روی More tools و Extensions وارد صفحه افزونهها شوید:

- با استفاده از drag & drop فایل CRX دانلود شده را در این صفحه قرار دهید. برای ضبط سناریوها، روی آیکون BlazeMeter در قسمت افزونههای کروم کلیک کنید. سپس صفحه زیر نمایش داده میشود:

در قسمت مشخص شده در شکل بالا نام تست خود را وارد کنید. با کلیک کردن روی دکمه شماره 1 دیالوگ زیر نمایش داده شده و به معنی آغاز فرایند ضبط میباشد:

به عنوان مثال قصد داریم سناریو دریافت لیست خودروهای شهر تهران را در سایت دیوار ضبط کنیم. بنابراین بعد از کلیک بر روی دکمه شروع ضبط، وارد سایت دیوار شده، روی گزینههای شهر تهران و وسایل نقلیه کلیک میکنیم تا لیست مورد نظر را دریافت کنیم. هنگامی که سناریوهای مورد نظر را اجرا میکنیم، APIها رکورد شده و اعدادی در دیالوگ Blazemeter نمایش داده میشوند که به منزله API های ذخیره شده و … میباشند.

زمانی که اجرای سناریو مد نظرتان به اتمام رسید، کافی است با کلیک روی دکمه مشخص شده روند ضبط را خاتمه دهید. (با استفاده از دکمه pause میتوانید هر زمان که نیاز داشتید روند ضبط را متوقف و مجدد ادامه دهید.)

اجرای درخواستهای ضبط شده
برای تبدیل سناریوهای ضبط شده به فایلهای قابل اجرا در جیمیتر و سلنیوم نیاز است که در سایت BlazeMeter حساب کاربری داشته باشید، زیرا تمامی مراحل ضبط شده توسط این افزونه در سایت BazeMeter بارگذاری میشود. بنابراین روی آیکون BlazeMeter کلیک کرده و در سایت BlazeMeter لاگین کنید. اگر با موفقیت لاگین کرده باشید در سمت راست دیالوگ "Hi username" نمایش داده میشود:

برای ویرایش اسکریپتهای جیمیتر، از قسمت Edit گزینه JMeter Script را انتخاب کنید:

سپس صفحه زیر نمایش داده میشود و میتوانید بسته به نیاز خود هر کدام از درخواستهای ضبط شده را ویرایش کرده و سپس فایل نهایی را دانلود کنید. به عنوان مثال برای اجرای اسکریپتها در جیمیتر باید فایل با پسوند jmx را دانلود کنید:

برای دانلود مستقیم فایل میتوانید از دکمه Save استفاده کنید:

پس از کلیک بر روی Save صفحه زیر نمایش داده میشود. سپس فایل و دامنههای مورد نیاز خود را از قسمت Domains to include انتخاب کنید. در پروسه ضبط سناریو، ممکن است اطلاعاتی از دامنههایی غیر از سایت تحت تست دریافت شود، به عنوان مثال عکسها از سایت دیگری دریافت یا اطلاعاتی از سرویسهای دیگر به منظور محاسبه قیمت دریافت گردد، در بخش Domains to include میتوانید مشخص کنید آیا این API های جانبی نیز در فایل نهایی وجود داشته باشند یا خیر. در نهایت بر روی دکمه Save کلیک کنید تا فایل مربوطه دانلود شود. (که در این آموزش فقط دامنه مربوط به سایت دیوار را انتخاب کردیم)

برای اجرای فایل jmx دانلود شده، به ترتیب روی File و Open کلیک کنید:

سپس از دیالوگ باز شده فایل .jmx دانلود شده را انتخاب و باز کنید. سناریوهای ضبط شده مانند شکل زیر به Test Plan اضافه میگردد:

اکثر اوقات نیاز است که پس از ضبط، بخشهایی را ویرایش کنید. مانند:
- زمان ضبط با یک نام کاربری و گذرواژه لاگین میکنید، ولی به عنوان مثال برای اجرای تست کارایی نیاز است که با چندین نام کاربری و گذرواژه لاگین کنید. بنابراین باید همه نامهای کاربری و گذرواژهها را در یک CSV file ذخیره کرده و از آن فایل در سناریوهای خود استفاده کنید.
- گاهی اوقات لازم است که بعضی از متغیرهای مورد نیاز مانند توکن برای احراز هویت و ... را از پاسخ APIها با استفاده از المنتهایی مانند JSON Extractor و … استخراج کرده و در APIهای بعدی استفاده کنید.
- گاهی نیاز است که برای ارزیابی درخواستها از
تائیدیه یا Asserionاستفاده میکنیم که در مقاله Assertion در جیمیتر چیست؟ کاربرد و انواع آن نحوه کار با آنها بررسی شده است.
پس از اعمال تغییرات مورد نظر، تست را اجرا کرده و نتایج را با استفاده از شنودگر یا Listener مناسب مشاهده کنید. که در شکل زیر از View Results Tree برای نمایش درخواستهای ارسالی به سرور و پاسخهای دریافتی از سرور استفاده کردیم.

برای آشنایی با انواع Listenerها میتوانید به مقاله Listener و نحوه رصد نتایج تست در جیمیتر مراجعه کنید.