تست عملکرد وب سایت با سلنیوم
چقدر با تست نرم افزار و ابزارهای آن آشنایی دارید؟ در ادامه با رایانیتا همراه باشید تا شما را با تست نرم افزار و تست عملکرد وب سایت با سلنیوم آشنا می کنیم.
تست نرم افزار
تست نرم افزار که قسمت نهایی از مراحل تولید یک نرم افزار است به فرایند ارزیابی یک نرم افزار به منظور تشخیص تفاوت بین خروجی کنونی(خروجی نرم افزار) و خروجی مورد انتظار گفته می شود.
بسیاری از پروژه های کوچک و متوسط را پس از برنامه نویسی می توان به صورت دستی تست کرد تا مشکلات احتمالی پیدا و برطرف شوند اما در پروژه های بزرگ به دلیل گستردگی نرم افزار، تست عملکرد نرم افزار بسیار زمان بر و خسته کننده است. به همین دلیل مبحث تست خودکار یا Automated Testing در اینجا اهمیت پیدا می کند.
روش های تست عملکرد
به صورت کلی برای تست عملکرد (functional test) دو روش جعبه سفید و جعبه سیاه وجود دارد. در حالت جعبه سفید، خود برنامه نویس یک روال تست را در قالب unit test برای تک تک کلاس ها و توابع برنامه می نویسد و کد را تست می کند ولی در حالت جعبه سیاه ما دیگر کاری با ساختار داخلی کد نداریم و فقط ورودی لازم را به سیستم می دهیم و انتظار داریم که سیستم خروجی درستی به ما بدهد.
وقتی وب سایت جدیدی طراحی کردیم و می خواهیم بررسی کنیم که آیا مشکلی وجود دارد یا خیر ، در اصل داریم همان تست جعبه سفید را انجام می دهیم.
ابزار سلنیوم برای تست جعبه سفید
فرض کنید وب سایت شما 50 ویژگی مختلف دارد، شما همه ی این 50 ویژگی را تست و وب سایتتان را منتشر می کنید بعد از یک هفته یک باگ گزارش می شود یا اینکه می خواهید در روند فعالیت کاربر تغییر کوچکی ایجاد کنید آیا پس از اعمال تغییرات یا رفع باگ، یا به صورت کلی حین طراحی سایت خود، می خواهید دوباره همه ی آن 50 ویژگی را تست کنید؟
اینجاست که سلنیوم به کمک شما می آید و همه ی تست ها را به صورت خودکار انجام می دهد.
سلنیوم یک چارچوب آزمون-نرمافزار قابل حمل برای برنامههای کاربردی وب است. سلنیوم یک ابزار به نام Selenium IDE را برای تست بدون نیاز به یادگیری زبان اسکریپتنویسی فراهم کرده است.
سلنیوم زبان خاص دامنه (Selenese) را برای نوشتن تست در تعدادی از زبان های برنامه نویسی وب محبوب مانند C#، Groovy، Java، Perl، PHP، Python، Ruby و Scala فراهم می کند. پس از آن، تست ها را می توان در بسیاری از مرورگرهای وب اجرا کرد.
آزمونهای نوشته شده روی بسیاری از مرورگر های مدرن وب کار میکنند. سلنیوم روی ویندوز، لینوکس و مک او اس اجرا میشود. سلنیوم یک برنامه متن باز است که تحت مجوز آپاچی منتشر شدهاست.
حدودا ده سال از معرفی Selenium می گذرد و امروزه به جرات می توان گفت که Selenium محبوب ترین ابزار open source برای تست پروژه ها است. دلایل محکمی برای میزان بالای محبوبیت آن وجود دارد.
مولفه های سلنیوم
سلنیوم از تعدادی مؤلفه تشکیل شدهاست که هر یک در توسعه آزمونهای وب نقشی به عهده دارند.
Selenium IDE
IDE یک محیط توسعه مجتمع (IDE) برای آزمونهای سلنیوم است که به عنوان یک افزونه فایرفاکس (Firefox Add-On) پیادهسازی شدهاست و امکان ضبط، ویرایش، و اشکال زدایی آزمونها را فراهم میکند. Selenium IDE پیشتر Selenium Recorder خوانده میشد.
Selenium IDE میتواند به صورت خودکار اسکریپتها را ضبط کند. پس از آن امکان ویرایش دستی دستورهای موجود در اسکیریپت وجود دارد. اسکریپتها در Selenese (زبان اسکریپتنویسی آزمون) ضبط میشوند. Selenese دستورهایی برای اجرای اعمالی مثل کیلک کردن روی کی لینک، انتخاب یک گزینه و … و همچنین بازیابی دادهها از صفحات حاصله از لینکها را فراهم میکند.
پس از بروزرسانی فایرفاکس به نسخه 55 Selenium IDE دیگر قادر به اجرا به عنوان افزونه روی این مرورگر نیست و از آن زمان توسعه آن متوقف شدهاست.
واسط برنامهنویسی مشتری Selenium
علاوه بر نوشتن آزمون ها در Selenese امکان نوشتن آزمون ها در زبانهای برنامه نویسی متنوعی وجود دارد. این آزمون ها میتوانند از طریق توابعی که در واسط برنامهنویسی Selenium وجود دارند با Selenium ارتباط برقرار نمایند. در حال حاضر برای زبان های برنامهنویسی مثل سی شارپ، جاوا، روبی، جاوا اسکریپت و پایتون واسط برنامهنویسی فراهم میکند.
Selenium WebDriver
جایگزین Selenium RC است. Selenium WebDriver دستورات را میپذیرد و آنها را به مرورگر فرستاده و نتایج (صفحات وب) را بازمیگرداند. این امکان از طریق درایور مرورگر (که برای هر مرورگر متفاوت است) انجام میشود. غالب درایورهای مرورگرها هنگام اجرای دستورات، مرورگر را اجرا میکند.
Selenium Remote Control
Selenium Remote Control یا (RC)، که به زبان جاوا نوشته شدهاست، دستورات مرورگر را بوسیله HTTP میپذیرد. RC امکان امکان نوشتن آزمونهای اتوماتیک برای برنامههای کاربردی وب به هر زبان برنامهنویسی ای را فراهم میکند.
Selenium Grid
Selenium Grid سرور نرمافزاری ای است که امکان استفاده از مرورگرها روی ماشینهای راه-دور برای اجرای آزمون را میدهد.
نگاهی دقیق تر به نحوه عملکرد سلنیوم
Selenium WebDriver ابزاری برای Test Automation به صورت Open Source است که از طریق درایور مخصوص مرورگر اجرا میشود، و با استفاده از آن دستورات را به مرورگر ارسال کرده و سپس نتایج را بازیابی میکند. آخرین نسخه Selenium 3 ویژگیهای جدید زیادی را به همراه دارد که شیوه استفاده و تنظیم Selenium WebDriver را تغییر میدهد.
از ابزار سلنیوم علاوه بر تست خودکار مرورگرها میتوان برای Screen Scraping و خودکارسازی فعالیتهای تکراری در یک پنجره مرورگر استفاده نمود. سلنیوم، اتوماسیون را در همه مرورگرهای اصلی از جمله Firefox ، Internet Explorer ، Google Chrome ، Safari و Opera پشتیبانی میکند.
Selenium WebDriver با استفاده از پروتکل JSON-Wire (که Client API نیز نامیده میشود) دستوراتی را پذیرفته و آن ها را برای مرورگری که توسط Driver Class خاص(مانند ChromeDriver ، FirefoxDriver یا IEDriver) راهاندازی شده ارسال میکند. چنین چیزی توسط یک Browser Driver خاص منظوره برای Browser عملیاتی میشود، که به صورت زیر کار میکند:
- Driver به دستوراتی که از سوی Selenium میآیند گوش فرا میدهد.
- Driver مذبور این دستورات را به API بومیِ Browser تبدیل میکند.
- Driver نتیجه دستورات بومی را گرفته و این نتایج را به سلنیوم ارسال میکند.
ما می توانیم از Selenium WebDriver برای انجام امور زیر استفاده کنیم:
- ایجاد یک اتوماسیون رگرسیون مستحکم و مبتنی بر مرورگر.
- توزین و توزیع اسکریپتها در بسیاری از مرورگرها و سیستم عاملها
- نوشتن اسکریپتها با زبان برنامهنویسی مورد علاقه نویسنده آن
بیان یک تجربه
در ترم های ابتدایی دانشگاه به صورت کارآموزی وارد یک شرکتی شدم. تا پیش از آن با اهمیت بالای تست آشنا نبودم چون همیشه در دانشگاه پروژه هایی با حجم کم را انجام می دادم و در حین انجام پروژه تست هایش را انجام می دادم و هیچ وقت به یک پروژه بزرگ بر نخورده بودم. وظیفه من انجام تست سلنیوم به زبان پایتون روی نرم افزار اسکایپ بود.
به خاطر دارم در آن زمان هیچ یک از دوستانم با سلنیوم آشنایی نداشت اما الان و با گذشت 3 سال محبوبیت این ابزار به شدت افزایش پیدا کرده و به خصوص به صورت فریلنسینگ می توان درآمد قابل قبولی از این طریق کسب کرد.
جمع بندی
Selenium می تواند برای کاربران وسوسه کننده باشد زیرا به افزایش سرعت کمک زیادی می کند.
افراد زیادی سعی می کنند استراتژی های مربوط به تست ها را با خودکارسازی و WebDriver توسعه بدهند ولی در طولانی مدت با شکست مواجه می شوند.
به عبارت دیگر کار کردن با Selenium می تواند تا حدودی مبهم باشد. اگر به قواعد و استراتژی های این تکنولوژی توجه کنیم و آن ها را به کار بگیریم می تواند تا میزان زیادی کار را برای ما آسان کند .
دیدگاهتان را بنویسید