سلنیوم (Selenium ) چیست و چالشهای کلیدی آن کدام است؟
سلنیوم یک فریمورک اتوماسیون تست متنباز محبوب است که به آزمایش کنندگان نرم افزار کمک میکند تا اسکریپتهای تست خودکار را بسازند و اجرا کنند. Selenium رابطی را ارائه میکند که به آزمایشکنندگان کمک میکند تا اسکریپتهای تست را در زبانهای برنامهنویسی محبوب مانند Ruby، Node JS، Python، Java، C#، PHP و غیره ایجاد کنند. این مطلب به چالشهای موجود در تست اتوماسیون سلنیوم و نحوه غلبه بر آنها میپردازد.
سلنیوم در تست نرم افزار چیست؟
تست سلنیوم به شرکتها اجازه میدهد تا اپلیکیشنهای وب را برای عملکرد و سازگاری آنها در مرورگرهای مختلف تایید کنند. فریمورک سلنیوم شامل مجموعهای از ابزارهای نرمافزاری است که هر کدام نیازهای مختلف تست QA یک شرکت را برای پیادهسازی فناوری منحصربهفردشان برآورده میکنند.
سلنیوم به آزمایشکنندگان امکان میدهد تا اسکریپتهای آزمایشی را به زبان برنامهنویسی ترجیحی (preferred ) بنویسند، و میتوان آن را روی یک نمونه مرورگر در هر دستگاه هدف مانند یک گوشی هوشمند، تبلت ، لپ تاپ یا PC اجرا کرد که به تیمهای تست اجازه میدهد ساعتهای بیشماری در زمان تست، صرفهجویی کنند، که در صورتی که مجبور شوند هر ماژول یک برنامه را به صورت دستی در یک محیط run-time واقعی خارج از توسعه تایید کنند، میتوان از آن اجتناب کرد. بدون تست اتوماسیون سلنیوم، اطمینان از کیفیت یک برنامه گسترده سازمانی از دیدگاه end-to-end ممکن است روزها یا هفتهها طول بکشد تا تکمیل شود.
چالشهای حیاتی در اتوماسیون سلنیوم
استفاده از سلنیوم اغلب منجر به شرایط چالش برانگیز برای شرکتها می شود. برنامه ریزی استراتژیک ضعیف، ریشه بسیاری از مشکلات در اتوماسیون تست است. عدم آگاهی از استفاده از قابلیتهای مختلف ابزار اتوماسیون تست با توجه به ویژگیهای منحصر به فرد برنامههای تجاری یک چالش مهم است.
اجازه دهید چالشهای حیاتی در اتوماسیون سلنیوم را بررسی کنیم.
-
مدیریت محتوا یا عناصر صفحه وب داینامیک
وبسایتهای مدرن اکنون بر روی حفظ نسخه تک صفحهای تمرکز میکنند و سپس به صورت پویا عناصر مخفی مختلف را از سرورهای درخواستی به داخل صفحه میکشند. این میتواند چالشهایی را برای آزمایش کنندگان در هنگام استفاده از سلنیوم برای اسکریپتها ایجاد کند. وب سایتهای جدیدی که با استفاده از فناوری پیشرفته توسعه یافتهاند دارای محتوای پویا هستند که در طول زمان تغییر میکند و آنهایی که در سطح جهانی قابل دسترسی هستند ممکن است محتوایی بر اساس موقعیت جغرافیایی داشته باشند. خودکار کردن چنین اپلیکیشنهایی با سلنیوم چالش برانگیز میشود زیرا مکان یابهای موجود ممکن است با عناصر وب تعامل نداشته باشند. به طور مشابه، لود محتوای وب مبتنی بر AJAX ممکن است زمان ببرد، که دلیل احتمالی شکست اسکریپت تست است.
-
تست برای سیستم عاملهای موبایل
سلنیوم از تست برنامههای موبایل بومی یا اپلیکیشنهای وب تلفن همراه پشتیبانی نمیکند. در حالی که میتوان از فریمورک متنباز دیگری مانند Appium که یک فریمورک پرکاربرد برای تست برنامههای موبایل و برنامههای وب iOS و Android استفاده کرد، آزمایشکنندگان باید درایورها و اسکریپتهای مختلفی را برای تست یک برنامه وب واحد در یک مرورگر دسکتاپ و موبایل ایجاد کنند.
-
تست Cross-browser
یک وبسایت نبایداز کروم در دسترس بوده و از مرورگرهای دیگر قابل دسترسی نباشد. با مرورگرهای متعدد موجود در بازار، انجام تست اتوماسیون در هر مرورگر ممکن است دشوار باشد. هنوز باید بررسی دقیقی انجام شود که آیا برنامه تحت آزمایش با اکثر مرورگرهای مورد استفاده مانند فایرفاکس، سافاری، اج و IE سازگاری کامل دارد یا خیر. آزمایش بر روی چنین مرورگرهای پرکاربرد هنوز باید کامل باشد و آزمایش بر روی نسخه های پرکاربرد این مرورگرها، همراه با سیستم عاملها و رزولیشنهای مختلف، ضروری است. در حالی که Selenium Grid هنوز در دسترس است، فقط به انجام آزمایش بین مرورگرها بر روی ماشینهای فیزیکی یا مرورگرها کمک میکند.
-
کنترل پاپ آپ/هشدار (Pop-up/ Alert)
پاپ آپ مانند؛ Allow/Decline camera access ، Allow/Decline microphone access و غیره، معمولا اعلانهای سطح مرورگر بسته به مرورگرها به طور متفاوتی مدیریت میشوند. برای مرورگر کروم، میتوان از Options کروم استفاده کرد. به طور مشابه، Options فایرفاکس یا Profile فایرفاکس را میتوان برای مرورگر فایرفاکس استفاده کرد.
سایر پنجرههای بازشو و هشدارها هنگام تعامل با یک برنامه وب، مجوزهای مبتنی بر وب هستند، مانند Do you want to leave the site? و پاپ آپ های سطح سیستم عامل. هشدارهای مبتنی بر وب را میتوان با استفاده از کلاس از پیش تعریف شده سلنیوم Alerts مدیریت کرد، که روشهای مختلفی مانند accept () ، dismiss() و غیره را ارائه میدهد. پاپآپ در سطح سیستم عامل را نمیتوان با استفاده از locator سلنیوم مدیریت کرد.
-
رسیدگی به درخواست های کپچا و OTP
کپچا و OTP را نمیتوان پیش بینی کرد زیرا مقادیر آنها هر بار در تراکنشهایی مانند دروازه پرداخت، ثبت حساب جدید و غیره متفاوت است. این برای آزمایش کنندگان اتوماسیون چالش برانگیز میشود و همچنین ثابت میکند که یک برنامه نمی تواند 100٪ خودکار باشد و نمی توان از آزمایش دستی اجتناب کرد.
-
مشکلات مقیاس پذیری
همانطور که برنامه در استفاده و افزودن ویژگیها رشد میکند، دامنه و پوشش چشم انداز تست نیز افزایش مییابد. سلنیوم به آزمایشکنندگان اجازه میدهد بیلدهای آزمایشی را به ترتیب در محیطهای مختلف اجرا کنند، اما ممکن است پس از افزایش اندازه برنامه موثر نباشد. اتوماسیون مرحله تست نرم افزار تنها زمانی موثر است که تسترها بتوانند تستهای بیشتری را اجرا کنند و تمام سناریوهای ممکن را پوشش دهند. در حالی که Selenium WebDriver راهی برای اجرای آزمایشها به صورت متوالی ارائه میکند، روشهای موثرتری برای انجام آزمایش بین مرورگرها وجود دارد. از این رو، مسائل مقیاس پذیری در نهایت میتواند بر کیفیت کلی تست تاثیر بگذارد.
-
قابلیتهای گزارش دهی محدود
ریپورتهای تست، پلی هستند بین توسعه دهندگان و آزمایش کنندگان. تولید و نگهداری گزارشات چالشی، حیاتی است که تسترهای اتوماسیون با آن روبرو هستند. به طور کلی، فریمورکهای مبتنی بر زبان برنامه نویسی برای ایجاد طراحی کد و گزارش بهتر استفاده میشود. از آنجایی که سلنیوم امکانات گزارش گیری نتیجه built-in ندارد، برای تولید نتایج آزمایش به فریمورکهای آزمایشی مانند JUnit یا TestNG و غیره وابسته است که میتواند راحت تر باشد.
خرید وی پی اس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
نتیجه گیری
اگرچه ممکن است حذف این چالشها با رویکرد صحیح، تنظیمات استراتژیک و اصلاحات آسان به نظر برسد، اما تقاضا برای چنین تخصصی بالاست. علیرغم فهرست مطلوبی از ویژگیها در فریمورک سلنیوم، رسیدگی به معایب در تست اتوماسیون سلنیوم میتواند زمان و تلاش لازم را داشته باشد. لیست ویژگیهای سلنیوم ستودنی است، اما یک توسعه دهنده همچنان میتواند در هنگام ایجاد تستهای خودکار با چالشها و محدودیتهایی روبرو شود.