Selenium WebDriver

Selenium IDE Roundel
Selenium Roundel

امروزه با افزایش تمایل بازار به تحویل سریع محصولات توسط شرکت‌های انفورماتیک، تمام همّ و غمّ در عرصه تست نرم‌افزار موضوع افزایش سرعت در اجرای تست است. همین موضوع باعث شده است که Test Automation یا اتوماتیک‌سازی تست نرم‌افزار به یکی از پرطرفدارترین راهکارهای موجود در دنیا بدل شود. راهکاری که برای ورود به آن باید از یک ابزار Test Automation استفاده نمود. در میان تمام ابزارهای اتوماسیون تست، به ضرس قاطع می‌توان گفت Selenium پرطرفدارترین ابزار تست در تمام دنیاست، چرا که از امتیازاتی از قبیل Open Source بودن، رایگان بودن، برخورداری از یک تیم پشتیبانی قوی و همراهی اکثر مرورگرها بهره می‌گیرد.

Selenium WebDriver ابزاری برای Test Automation به صورت Open Source است که از طریق درایور مخصوص مرورگر(Browser Specific Driver) اجرا می‌شود، و با استفاده از آن دستورات را به مرورگر ارسال کرده و سپس نتایج را بازیابی می‌کند. آخرین نسخه Selenium 3 ویژگی‌های جدید زیادی را به همراه دارد که شیوه استفاده و تنظیم Selenium WebDriver را تغییر می‌دهد. این دوره تمام آن ویژگی‌ها، به همراه Source Code، و یک وبسایتِ دِمو که به شما امکان می‌دهد با یک برنامه HMTL5 و نمونه‌های دیگر در سراسر دوره کار کنید، را ارائه می‌دهد.

از ابزار سلنیوم علاوه بر تست خودکار مرورگرها می‌توان برای Screen Scraping و خودکارسازی فعالیت‌های تکراری در یک پنجره مرورگر استفاده نمود. سلنیوم، اتوماسیون را در همه مرورگرهای اصلی از جمله Firefox ، Internet Explorer ، Google Chrome ، Safari و Opera پشتیبانی می‌کند.

Selenium WebDriver با استفاده از پروتکل JSON-Wire (که Client API نیز نامیده می‌شود) دستوراتی را پذیرفته و آنها را برای مرورگری که توسط Driver Class خاص(مانند ChromeDriver ، FirefoxDriver یا IEDriver) راه‌اندازی شده ارسال می‌کند. چنین چیزی توسط یک Browser Driver خاص منظوره برای Browser عملیاتی می‌شود، که به صورت زیر کار می‌کند:

  1. Driver به دستوراتی که از سوی Selenium می‌آیند گوش فرا می‌دهد.
  2. Driver مذبور این دستورات را به API بومیِ Browser تبدیل می‌کند.
  3. Driver نتیجه دستورات بومی را گرفته و این نتایج را به سلنیوم ارسال می‌کند.

ما می توانیم از Selenium WebDriver برای انجام امور زیر استفاده کنیم:

  • ایجاد یک اتوماسیون رگرسیون مستحکم و مبتنی بر مرورگر.
  • توزین و توزیع اسکریپت‌ها در بسیاری از مرورگرها و سیستم عامل‌ها
  • نوشتن اسکریپت‌ها با زبان برنامه‌نویسی مورد علاقه نویسنده آن

Selenium WebDriver مجموعه‌ای از Bindingهای خاص زبان(Client Library) را برای Drive کردن مرورگر ارائه می‌دهد. WebDriver با مجموعه‌ای از API ها ارائه می‌شود که انتظارات اکثر توسعه دهندگان را با شبیه بودن به برنامه نویسی شی گرا در اجرای آن، برآورده می‌کند. Selenium Client API یک کتابخانه Selenium مخصوص به زبان است که Selenium API سازگار با زبان‌های برنامه نویسی مانند Java ، C # ، Python ، Ruby و JavaScript را فراهم می‌کند. این Binding به زبان‌ها به شما امکان می‌دهد تا یک WebDriver session راه‌اندازی کرده و با مرورگر یا سرور سلنیوم ارتباط برقرار کنند.

ما در این دوره قصد داریم تا استفاده از سلنیوم را، با بهره‌گیری از زبان Java، آموزش دهیم.

انواع برگزاری: حضوری/مجازی آنلاین

برگزاری‌های مختلف این دوره: لیست ادوار

وضعیت ثبت نام: در حال ثبت نام

  • رئوس مطالب
  • مدت
  • پیشنیاز
  • مخاطبین رویداد
  • انتظارات پس از رویداد
  • ملاحظات مهم
  • مدرس/سخنران

این دوره آموزشی مشتمل بر دو قسمت است:

آموزش پیشنیازها(Java و تکنولوژی‌های جانبی) | حدود ۳۵ ساعت

آموزش پیشنیازها(Java و تکنولوژی‌های جانبی) | حدود ۳۵ ساعت

نکته: عزیزانی که در این پیشنیازها توانمندی دارند، لزومی به گذارندن این بخش از دوره ندارند و می‌توانند صرفا بلیت دوره Selenium WebDriver 3 را تهیه نمایند.

آموزش تمام پیشنیازها تا حدی انجام می‌شود که برای کار کردن در Selenium WebDriver 3 به آن نیاز دارید. سرفصل‌ها عبارتند از:

  • کدنویسی به زبان Java
    • نصب و راه‌اندازی Java و یک IDE
    • Variableها و Data Typeها
    • Operatorها
    • ساختارهای کنترلی(شرط و حلقه)
    • Class و مفاهیم حاکم بر آن
    • آرایه‌ها و رشته‌ها
    • ارث‌بری(Inheritance)
    • Packageها
    • Interfaceها
    • Errorها، Exceptionها و دیباگ کردن
  • تکنولوژی‌های جانبی
    • آموزش HTML
    • آموزش CSS
    • آموزش JSON
    • آموزش xPath

Selenium WebDriver 3 | حدود ۵۵ ساعت

Selenium WebDriver 3 | حدود ۵۵ ساعت

  • معرفی WebDriver و WebElements
    • ابزار تست Selenium
    • تفاوت‌ها میاین Selenium 2 و Selenium 3
    • ستاپ کردن پروژه در Eclipse با Maven و TestNG با استفاده از Java
    • WebElementها
    • مکان‌یابی(Locating) WebElementها با استفاده از WebDriver
    • تعامل با WebElementها
  • WebDriverهای موجود
    • Firefox Driver
    • Chrome Driver
    • IE Driver
    • Edge Driver
    • Safari Driver
  • استفاده از امکانات Java 8 در Selenium
    • Java 8 Stream API
    • استفاده از Stream API در Selenium WebDriver
  • امکانات WebDriver
    • Screenshot گرفتن
    • مکان‌یابی(Locating) برای Windowها و Frameهای مورد نظر
    • Navigate و هدایت
    • انتظار برای بارگذاری WebElementها
    • Handle کردن کوکی‌ها
  • تعاملات پیشرفته WebDriver
    • Build کردن و اجرای Actionها
    • تعاملات مبتنی بر Mouse
    • تعاملات مبتنی بر Keyboard
  • درک Eventهای WebDriver
    • کلاس‌های eventFiringWebDriver و eventListener
    • ایجاد Instance از EventListener
    • EventListener مختلف در WebDriver

فصولی که در ادامه می‌آیند(از فصل هشتم به بعد)، مباحث از Selenium WebDriver صرف خارج شده، و مباحث دیگری از Selenium، مطرح می‌شوند.

  • RemoteWebDriver
    • درک و استفاده از RemoteWebDriver
    • درک JSON wire protocol
  • ستاپ کردن Selenium Grid
    • کاوشی در Selenium Grid
    • درک Hub
    • درک Node
    • اصلاح Test Script موجود برای استفاده Selenium Grid
    • پیکربندی Selenium Grid
    • استفاده از Gridهای Cloud Base برای Cross-Browser Testing
  • PageObject Pattern
    • ایجاد Test Caseها برای یک بلاگ WordPress
    • PageObject Pattern چیست؟
    • Practiceهای خوب برای طراحی PageObject ها
    • کار روی یک مثال End-to-End از WordPress
  • تست موبایل روی iOS و Android با استفاده از Appium
    • اشکال مختلف در Mobile Application
    • ابزارهای نرم‌افزاری موجود
    • اتوماتیک‌سازی تست‌های iOS و Android با استفاده از Appium
  • Data-Driven Testing با استفاده از TestNG
    • مروری بر Data-Driven Testing
    • پارامتریزه کردن تست‌ها با استفاده از Suite Parameterها
    • پارامتریزه کردن تست‌ها با استفاده از Data Providerها

بخش پیشنیاز کارگاه سلنیوم پیش از این به مدت ۳۰ ساعت برگزار می‌شد، که اکنون این زمان به ۳۵ ساعت افزایش یافته است. ضمنا بخش آموزش سلنیوم نیر سابقا به مدت ۴۰ ساعت برگزار می‌شد، که اکنون این زمان به ۵۵ ساعت ارتقا یافته است. علت این ارتقائات نیز مشخص شدن کمبود زمان برای تدریس سیلابس مورد نظر بوده است. لذا سیلابس این دوره که سابقا به صورت ۷۰ ساعته برگزار می‌شد، با ۲۰ ساعت رشد به مدت ۹۰ ساعت ارتقا یافته است. جلسات برگزار شده، بسته به طول هر جلسه شامل ساعات تنفس محدودی نیز می‌شوند، که مجموع زمان تدریس و تنفس در کل دوره کارگاهی برابر با ۹۰ ساعت خواهد بود.

در صورت گذراندن تمام دوره کارگاهی ۹۰ ساعته(مشتمل بر پیشنیازها و Selenium WebDriver)، نیازی به هیچگونه پیشنیازی نخواهید داشت. اما اگر صرفا بنا دارید در ۵۵ ساعت دوره آموزشی  Selenium WebDriver 3 حضور داشته باشید، باید تمام سرفصل‌های آموزشی پیشنیاز را به صورت شخصی بیاموزید.

تمامی نقش‌های زیر که به دنبال ایجاد مجموعه‌ای از تست‌های اتوماتیک برای اپلیکیشن‌های وب هستند:

  • متخصص QA
  • متخصص تست
  • توسعه دهنده نرم‌افزار(وب اپلیکیشن)

  • کسب دانش کامل در مورد Selenium WebDriver
  • توانایی نوشتن تست‌های اتوماتیک با استفاده از Selenium WebDriver
  • کسب دانش پایه کدنویسی به زبان Java که می‌توانید آنرا برای تبدیل شدن به کدنویس حرفه‌ای Java تعمیم داده و گسترش دهید.

آنچه باید داشته باشید

  • اکانت اسکایپ. این دوره در بستر اسکایپ برگزار می‌شود.
  • داشتن یک دستگاه لپتاپ، با حداقل مشخصات سخت افزاری که توانایی بارگذاری سریع Windows 10، مرورگر Chrome، Firefox، Edge، و IE.
  • علیرغم اینکه سلنیوم روی اکثر OSها امکان اجرای عملیات دارد، اما آموزش الزاما باید در بستر یک OS انجام شود، که در این میان Windows 10 انتخاب شده است. لذا شرکت کنندگان الزاما باید دارای یک سیستم Windows 10 باشند، و باقی OSها در زمان آموزش توسط مدرس پشتیبانی نخواهند شد.

امکانات دوره

  • اجازه صدابرداری و Capture کردن صفحه مانیتور دانش‌پژوه توسط خود وی وجود دارد. اما دانش پژوه به لحاظ اخلاقی و حرفه‌ای مجاز به انتشار فیلم ضبط شده نخواهدد بود.
  • در صورتی که دانش‌پژوه در حین برگزاری دوره دچار یک مشکل عملیاتی در راستای آموزش شود، مدرس دوره با استفاده از نرم‌افزار AnyDesk به سیستم دانش‌پژوه متصل شده و در صورت امکان، مشکل را رفع می‌نماید.

استرداد وجه

  • پس از تهیه بلیت و پرداخت وجه، امکان مرجوعی بلیت وجود ندارد. لطفا در خرید خود دقت فرمایید.
  • در صورتیکه کارگاه به هر دلیلی لغو شود، که مقصر آن ثبت نام کنندگان نباشند، وجه ثبت نام به طور کامل و بدون کم و کاست، حداکثر ظرف ۴۸ ساعت به شماره کارت ثبت نام کننده مسترد شده و واریز می‌گردد.

محدودیت‌های برگزاری دوره

  • کارگاه راس ساعت آغاز می‌گردد، حتی اگر فقط یک نفر از ثبت نام شدگان در کلاس حضور داشته باشد. لذا خواهشمند است راس ساعت و یا کمی قبلتر از آن در جلسه کارگاهی حضور یابید.

مطول شدن برگزاری دوره

  • بسته به شرایط برگزاری از جمله پرسش و پاسخ زیاد، یا عدم برگزاری برخی از کلاس‌ها به دلیل رویدادهای فورس ماژور، احتمالا اینکه دوره از ۹۰ ساعت فراتر رود، و یا روزهایی به عنوان جایگزین به علت رویدادهای فورس ماژور در نظر گرفته شود وجود. به هر حال در هیچ یک از موارد هزینه اضافه‌ای شامل حال دانشپژوهان نخواهد شد.

Abolfazl Khajeh Dizaji

ابوالفضل خواجه دیزجی، مشاور، مدرس، مترجم و مولف کتب دوره‌های تست نرم‌افزار

آموزش