021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

سوالات مصاحبه Selenium

این وبلاگ شما را از طریق سوالات مهم مصاحبه سلنیوم راهنمایی می کند. تنها هدف این است که به شما کمک کند تا مصاحبه را مانند یک حرفه ای پیش ببرید. اما، قبل از اینکه به این سؤالات بپردازیم، بیایید آن را از ریشه درک کنیم.

مرحله مهم در چرخه عمر توسعه نرم افزار (SDLC) تست است. دو نوع تست وجود دارد.

  1. تست دستی
    • این شامل اجرای فیزیکی سناریوهای مورد آزمایش علیه برنامه‌ها برای شناسایی خطاها و اشکالات بود.
    • این چالش‌ها و تلاش‌های دستی سنگین را به همراه داشت.
  2. تست اتوماسیون
    • از سوی دیگر، Automation Testing راهی برای خودکارسازی فرآیندهای تست در اختیار ما قرار داد و تقاضا را افزایش داد.

 

در میان همه اینها، سؤالاتی مانند سلنیوم چیست؟ چرا مهم است و غیره؟

سلنیوم یک ابزار تست خودکار و منبع باز است که برای آزمایش برنامه های کاربردی وب در مرورگرهای مختلف استفاده می شود. با این حال، بخش غم انگیز این است که فقط می تواند برنامه های تحت وب را آزمایش کند و برنامه های موبایل و دسکتاپ را آزمایش نمی کند.

برخی از فروشندگان پیشرو مرورگر سلنیوم را به عنوان بخش اساسی مرورگر خود پذیرفتند و در نتیجه منجر به افزایش تقاضا برای آن شد.

 

فهرست مطالب پنهان

1. تست اتوماسیون چیست؟

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

 

2. مزایا/مزایای تست اتوماسیون چیست؟

این یکی از سوالات رایج مصاحبه است. برخی از مزایای تست اتوماسیون عبارتند از:

  • در پول و زمان صرفه جویی کنید.
  • تست اتوماسیون دقت را افزایش می دهد زیرا هیچ شانسی برای خطاهای انسانی وجود ندارد.
  • قابلیت استفاده مجدد کد یک بار ایجاد کنید و چندین بار با تعمیر و نگهداری کمتر یا بدون تعمیر اجرا کنید.
  • گزارش دهی آسان به طور خودکار گزارش ها را پس از اجرای موارد آزمایشی تولید می کند.
  • آسان برای تست سازگاری با فعال کردن اجرای موازی در ترکیب با سیستم عامل و محیط های مرورگر.
  • قابل اطمینان تر، قدرتمندتر و همه کاره تر.
  • Automation Tools به ما اجازه می دهد تا با Jenkins، GitHub و غیره یکپارچه شویم.
  • بیشتر برای تست رگرسیون استفاده می شود .
  • به نظارت بر پوشش تست و افزایش موارد تست بر این اساس کمک می کند.

 

3. روزانه چند مورد تست را خودکار کرده اید؟

این یکی از سوالات پیچیده مصاحبه سلنیوم است. در واقع، این به پیچیدگی و طول سناریوی مورد آزمایش بستگی دارد. هنگامی که پیچیدگی محدود است، می توانید دو تا پنج مورد تست و یک یا کمتر از موارد تست را زمانی که پیچیدگی در یک روز زیاد است، خودکار کنید.

 

4. سلنیوم چیست؟

سلنیوم یکی از محبوب‌ترین مجموعه‌های تست خودکار است. این یک ابزار پخش برای انجام تست عملکردی بدون دانش زبان برنامه نویسی تست است. سلنیوم مجموعه تست اتوماسیون مبتنی بر رابط کاربری وب منبع باز است. جیسون هاگینز این ابزار را در سال 2004 در ThoughtWorks توسعه داد.

 

5. اجزای مختلف مجموعه سلنیوم چیست؟

سلنیوم فقط یک ابزار یا ابزار منفرد نیست، بلکه مجموعه ای از چندین ابزار آزمایشی است و به همین دلیل به آن مجموعه سلنیوم می گویند. هر یک از این ابزارها به محیط های مختلف تست و آزمایش پاسخ می دهند.

شامل چهار جزء اصلی به شرح زیر است:

  1. محیط توسعه یکپارچه سلنیوم (IDE):

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

  1. کنترل از راه دور سلنیوم (RC):

کنترل از راه دور سلنیوم سروری است که کاربر می تواند با هر زبان برنامه نویسی دلخواه تست Case را ایجاد کند . دستورات موجود در اسکریپت های آزمایشی توسط سرور پذیرفته می شود و به عنوان دستورات اسکریپت Java هسته Selenium به مرورگرها ارسال می شود تا رفتار مرورگر بر این اساس حفظ شود.

  1. درایور وب سلنیوم:

Selenium Web Driver یک رابط برنامه نویسی برای ایجاد و اجرای موارد تست است. راهی برای عمل بر روی عناصر مختلف وب فراهم می کند. این درایور وب برخلاف کنترل از راه دور سلنیوم به سرور دیگری نیاز ندارد.

  1. شبکه سلنیوم:

شبکه سلنیوم برای توزیع همزمان دستورات به ماشین های مختلف استفاده می شود. این راه را برای اجرای موازی موارد تست در مرورگرهای مختلف و محیط های مختلف هموار می کند. همزمان و یکپارچگی را در اجرای مجموعه تست به دست می آورد.

 

6. چرا باید از سلنیوم استفاده کنم؟

  • متن باز
  • پشتیبانی بزرگ جامعه و پایگاه کاربران بسیار زیاد است
  • سازگاری بین مرورگرها (Firefox، Chrome، Edge و غیره،)
  • پشتیبانی از چندین زبان برنامه نویسی (پایتون، جاوا ، پرل و غیره،)
  • هر روز یا به طور منظم تحولات مخزن
  • تست توزیع شده نیز پشتیبانی می شود.

 

7. تفاوت عمده سلنیوم 3.0 و سلنیوم 2.0 چیست؟

سلنیوم 2.0 نشان دهنده ادغام پروژه اصلی سلنیوم با پروژه Web Driver است. سلنیوم RC منسوخ شد اما برای سازگاری با عقب استفاده شد.

سلنیوم 3.0 که اغلب به عنوان پسوند سلنیوم 2.0 نامیده می شود، ذاتاً با افزایش پایداری و رفع چندین اشکال سازگار است و به هیچ وجه سلنیوم RC را درگیر نمی کند.

 

8. منظورت از سلنی چیه؟

سلنیوم که فرمان سلنیوم نامیده می شود مجموعه ای از دستورات سلنیوم است که موارد تست شما را اجرا می کند. به عنوان مثال، open (URL) یک دستور سلنیوم است که URL مشخص شده را در مرورگر خاص باز می کند. یک اسکریپت تست دنباله ای از همه این دستورات است که در کنار هم قرار می گیرند. سه نوع سلنی وجود دارد. آن ها هستند،

  1. اقدامات: می توانیم از آن برای انجام تعاملات و عملیات روی عناصر هدف استفاده کنیم
  2. Accessors: برای ذخیره مقادیر در متغیرها استفاده می شود.
  3. اظهارات: اینها می توانند به عنوان نقاط بازرسی برای پیگیری جریان متوالی دستورات استفاده شوند.

9. دستورات سلنیوم حداقل چند پارامتر دارند؟

چهار پارامتر وجود دارد که باید در سلنیوم پاس کنید. آنها به شرح زیر هستند،

  • میزبان

ما می توانیم Selenium را به یک آدرس IP خاص به جای میزبان محلی در ماشین محلی خود متصل کنیم.

  • شماره پورت

ما می توانیم شماره پورت را نیز مشخص کنیم، یعنی پورت TCP/IP برای اتصال تست های سلنیوم به هاب Grid. ما باید مطمئن شویم که هیچ برنامه دیگری با شماره پورت یکسان در مکان دیگری در همان دستگاه وجود ندارد.

  • مرورگر

مرورگری که اسکریپت های سلنیوم باید در آن اجرا شوند.

  • URL

URL برنامه، موارد آزمایشی را در آن فعال می‌کند.

 

 

10. تفاوت مسیر مطلق و مسیر نسبی چیست؟

مسیر مطلق: 

  • این مسیر از گره ریشه شروع شده و به گره عناصر مورد نظر ختم می شود.
  • با یک اسلش (/) شروع می شود
  • مثال: /html.body/div/td/input

مسیر نسبی:

  • این مسیر از هر گره در بین و به گره عناصر مورد نظر شروع می شود.
  • با یک اسلش دوبل (//) شروع می شود
  • مثال: //input/example[@id=name]

 

11. تفاوت بین عبارات Assert و Verify در سلنیوم چیست؟

ادعا کنید:

  • ما می توانیم بررسی کنیم که آیا یک عنصر در صفحه وجود دارد یا خیر.
  • این آزمون با شکست مواجه می شود و هر زمان که در چک شکستی وجود داشته باشد، خاتمه می یابد. این است که جریان کنترل برنامه متوقف می شود.

تأیید کنید:

  • فقط برای تعیین درست یا نادرست بودن شرط داده شده است.
  • به همین دلیل جریان کنترل برنامه متوقف نمی شود.

به طور کلی، دستور Verify اجرای برنامه را متوقف نمی کند در حالی که دستور Assert اجرا را متوقف می کند.

 

12. تفاوت بین findElement() و findElements() چیست؟

findElement(): 

از مکانیسم مکان یابی داده شده برای یافتن اولین عنصر در صفحه فعلی و برگرداندن یک عنصر وب استفاده می کند.

findElements():

همچنین از مکانیسم مکان یابی داده شده برای یافتن تمام عناصر موجود در صفحه فعلی و بازگرداندن لیست همه عناصر وب استفاده می کند.

 

13. نقاط تاییدی که در سلنیوم موجود است چیست؟

  • Selenium IDE: دستورات را تأیید و تأیید کنید
  • درایور وب سلنیوم: این هیچ ویژگی داخلی برای تأیید ندارد و همیشه به سبک کدنویسی ما بستگی دارد. برخی از مثال‌ها می‌تواند مانند بررسی عنوان صفحه، بررسی متن خاصی در صفحه، بررسی عنصر خاصی مانند جعبه متن، کشویی، فیلد و غیره باشد.

 

14. انتظار ضمنی، انتظار صریح و انتظار روان را توضیح دهید؟

  • انتظار ضمنی:

ما می توانیم مدت زمان مشخصی را برای تمام عناصر وب متوالی تنظیم کنیم. در این زمان مشخص، درایور وب تمام عناصر وب را قبل از پرتاب NoSuchElementException جستجو می کند.

  • انتظار صریح:

می توانیم به درایور وب بگوییم که قبل از پرتاب ElemntNotVisibleException منتظر شرایط خاصی باشد.

  • انتظار روان:

این یک تمدید جزئی برای انتظار صریح است. به غیر از انتظار برای برآورده شدن شرایط خاص، ما همچنین می توانیم فرکانس را تعیین کنیم که با آن شرط را قبل از پرتاب ElementNotVisibleException بررسی می کنیم.

 

15. تفاوت عمده بین driver.close() و driver.quit() چیست؟

driver.close():

این دستوری است که با آن پنجره فعلی بسته می شود. به عنوان مثال، اگر چندین پنجره مرورگر باز داشته باشیم، با استفاده از این دستور می‌توانیم پنجره‌ای را که فوکوس با آن است، ببندیم.

driver.quit():

این دستور تمام پنجره های باز شده مرورگر را می بندد. به عنوان مثال، اگر ما چندین پنجره مرورگر باز داشته باشیم، این دستور می تواند همه پنجره ها را به طور همزمان ببندد.

 

16. آیا سلنیوم می تواند پاپ آپ مبتنی بر ویندوز را مدیریت کند؟

همانطور که می دانیم سلنیوم یک ابزار تست اتوماسیون است که فقط با برنامه های کاربردی وب کار می کند. بنابراین، پاپ آپ در ویندوز نمی تواند توسط سلنیوم مدیریت شود. اما، با ادغام با ابزارهای شخص ثالث، می توانیم بر این مشکل غلبه کنیم.

 

17. Object Repository چیست و توضیح دهید که چگونه می توانیم Object Repository را در Selenium ایجاد کنیم؟

مجموعه ای از عناصر وب که به برنامه تحت آزمایش به همراه مقادیر مکان یاب آنها تعلق دارد. این اغلب به عنوان Object Repository نامیده می شود. تنها چیزی که وجود دارد این است که مکان یاب ها در یک مکان متمرکز ذخیره می شوند تا اینکه آنها را در اسکریپت های آزمایشی کدگذاری کنید.

در حین ورود به سلنیوم، اشیاء را می توان در اکسل نیز ذخیره کرد و هر زمان که لازم باشد می توان از آنها برای پر کردن آنها در اسکریپت استفاده کرد.

 

18. انواع مختلف چارچوب ها چیست؟

  • چارچوب داده محور:

داده‌های آزمایشی از این نوع از فایل‌های خارجی مانند اکسل، CSV، XML، و غیره تولید می‌شوند. داده‌های مربوط به موارد آزمایشی به مقادیر ورودی و تأییدی که با استفاده از متغیرها حفظ می‌شوند، متکی هستند.

  • چارچوب کلید واژه محور:

جداول داده ها و کلمات کلیدی مستقل از موارد تست اتوماسیون توسعه یافته اند. در این چارچوب، عملکرد سناریوهای آزمایشی در جدول گام به گام مستند شده است.

  • چارچوب تست مبتنی بر ماژول:

ماژول های Isolated و Logical از برنامه ای که در حال آزمایش است ساخته شده اند. اسکریپت های تست مستقل برای هر ماژول نوشته شده است. سپس این اسکریپت ها به عنوان یک کل با هم ترکیب می شوند.

  • چارچوب تست رفتار محور:

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

  • چارچوب تست ترکیبی:

ترکیب بیش از یکی از فریمورک های ذکر شده در بالا با بهره گیری از مزایای هر یک، چارچوب تست ترکیبی نامیده می شود.

 

19. سیاست همان مبدأ چیست؟ چگونه می توانیم از آن اجتناب کنیم؟

این سیاست به دلایل امنیتی معرفی شده است.

  • با این خط‌مشی، تضمین می‌کند که ما نمی‌توانیم به اسکریپت از سایت دیگری دسترسی داشته باشیم.
  • کد منبعی که در مرورگر بارگیری می شود فقط در دامنه آن وب سایت قابل استفاده است.
  • با استفاده از روش تزریق پروکسی می توان از این سیاست جلوگیری کرد. در این روش، مرورگر با استفاده از سرور سلنیوم فریب داده می شود تا یک URL واقعی (URL ساختگی) باشد.

 

20. تفاوت بین getwindowhandle() و getwindowhandles() چیست؟

getwindowhandles(): برای دریافت آدرس تمام مرورگرهای باز استفاده می شود و نوع داده Set<String> را برمی گرداند.

getwindowhandle(): برای دریافت آدرس پنجره مرورگر فعلی که روی آن متمرکز شده است استفاده می شود و نوع داده String را برمی گرداند.

 

21. انواع مختلف حاشیه نویسی مورد استفاده در سلنیوم چیست؟

فراداده نحوی را می توان به کد منبع جاوا اضافه کرد که به عنوان حاشیه نویسی شناخته می شود. آنها را می توان بر روی متغیرها، پارامترها، بسته ها، کلاس ها و غیره اضافه کرد، برخی از آنها که در سلنیوم استفاده می شوند عبارتند از:

@Before, @Test, @After

 

22. تفاوت بین متدهای setSpeed() و sleep() چیست؟

این روش ها سرعت اجرا را به تاخیر می اندازد.

Thread.sleep(): رشته فعلی برای مدت زمان مشخصی متوقف خواهد شد. زمانی که دستور داده می شود فقط یک بار منتظر می ماند. فقط به یک آرگومان واحد نیاز دارد که فرمت عدد صحیح است.

set sleep(): این دستور اجرای هر دستور سلنیوم را متوقف می کند. این دستور فقط برای اهداف نمایشی و همچنین برای یک برنامه وب کند استفاده می شود.

 

23. مزایای درایور وب نسبت به سرور سلنیوم را فهرست کنید؟

  • اگر از درایور وب سلنیوم استفاده می شود، دیگر نیازی به استفاده از وابستگی سرور سلنیوم نیست.
  • سرور سلنیوم عملکرد سلنیوم RC را برای سازگاری با عقب در اختیار ما قرار می دهد.
  • سرور سلنیوم به عنوان یک میان افزار برای ارتباط بین مرورگرها و برنامه عمل می کند. در حالی که درایور وب سلنیوم مستقیماً با مرورگر تماس می گیرد تا از اتوماسیون پشتیبانی کند.

 

24. چگونه می توانید یک مقدار را در یک جعبه متن ذخیره کنید؟

دستوری که می تواند مقدار را از جعبه متن با استفاده از درایور وب ذخیره کند.

مثلا،

driver.findElement (By.id (“جعبه متن شما”)).sendKeys (“کلمه کلیدی شما”);

 

25. چگونه می توان تست ها را در Selenium IDE اشکال زدایی کرد؟

  • ابتدا باید نقاط شکست را در جایی که باید اشکال زدایی کنیم و تست را مرحله به مرحله اجرا کنیم، وارد کنیم.
  • بعداً، مورد آزمایشی را اجرا کنید.
  • پس از این، اجرا در نقطه ای که نقطه شکست نگه داشته می شود متوقف می شود.
  • می توانید بر روی دکمه Run کلیک کنید تا اجرای تمام دستورات به صورت متوالی ادامه یابد.

 

26. عبارات منظم چیست و چگونه می توان از عبارات منظم در سلنیوم استفاده کرد؟

الگوهای جستجو با استفاده از رشته متن خاص به نام عبارات منظم نشان داده می شوند. Regexp کلمه کلیدی است که می تواند به عنوان پیشوند برای استفاده از یک متن در Selenium به عنوان یک عبارت منظم استفاده شود.

 

27. چگونه می توانید کار با چندین پنجره را در سلنیوم انجام دهید؟

دستور selectWindow() در Selenium می تواند برای جابجایی بین پنجره های کار استفاده شود. وجه تمایز در بین تمامی پنجره ها عنوان پنجره است.

 

28. چگونه می توان پیام موجود در جعبه هشدار را بازیابی کرد؟

دستور storeAlert() می تواند برای بازیابی پیام از پنجره پاپ آپ هشدار و ذخیره آن در یک متغیر استفاده شود.

 

29. چگونه می توانید موقعیت خاص یک عنصر وب را تأیید کنید؟

از دستورات verifyElementPositionLeft و verifyElementPositionTop استفاده می شود. اینها با شناسایی موقعیت عنصر از سمت چپ و بالای صفحه وب، از مقایسه پیکسلی استفاده می کنند.

 

30. چرا از سلنیوم آرسی استفاده می کنیم؟

  • Selenium IDE دارای محدودیت هایی است که Selenium RC می تواند از نظر پشتیبانی مرورگر و پشتیبانی از زبان آنها را کاهش دهد.
  • IDE از بسیاری از توابع مانند Logging، تکرارها، عبارات شرطی، گزارش نتایج آزمایشی و غیره پشتیبانی نمی کند، زیرا فقط از زبان HTML پشتیبانی می کند.
  • به همین دلیل است که Selenium RC برای برقراری ارتباط با زبان های دیگر مانند Perl، Python و غیره استفاده می شود.

 

 

31. مزایا یا فواید سلنیوم RC چیست؟

مزایا یا مزایای RC عبارتند از:

  • داده ها را می توان در xlsx.، csv.، txt. و غیره خواند یا نوشت،
  • اشیاء پویا و عناصر رابط کاربری مبتنی بر Ajax را می توان مدیریت کرد.
  • عبارات شرطی و عملکردهای تکرار می توانند برای بهبود و افزایش عملکرد و انعطاف پذیری استفاده شوند.
  • پشتیبانی از هر زبان برنامه نویسی و سیستم عامل
  • سلنیوم RC را می توان در هر مرورگری که با اسکریپت جاوا فعال است استفاده کرد .

 

32. آیا می توانید محدودیت های فنی را در هنگام استفاده از سلنیوم RC فهرست کنید؟

  • سیاست منشا یکسان
  • در اجرای سناریوی آزمایشی، دسترسی به هر چیزی خارج از مرورگر نیز محدود شده است.

 

33. نیاز به استفاده از TestNG با سلنیوم RC چیست؟

اگر قرار است الزامات مجموعه تست اتوماسیون در برابر سرورهای مختلف و پلتفرم های مشتری کار کند، باید موارد تست را از خط فرمان فراخوانی کنیم. همچنین، ما به گزارش‌های نتایج آزمایشی به صورت دوره‌ای برای تخمین زدن و همچنین اجرای انعطاف‌پذیری در مورد نحوه ایجاد آزمون‌ها نیاز داریم. چنین نوع انعطافی توسط TestNG ارائه شده است.

 

34. از کدام زبان برای پیاده سازی مجموعه های آزمایشی در سلنیوم استفاده می کنید؟

ترجیح داده شده ترین زبان برای پیاده سازی سلنیوم پایتون نسبت به جاوا است. این به دلیل این هست که،

  • برنامه های جاوا در مقایسه با برنامه های پایتون کندتر اجرا می شوند .
  • پیاده سازی و پیچیدگی هر دو کاملاً متفاوت است و پایتون به خوبی کار می کند.
  • پایتون به صورت پویا تایپ می شود در حالی که جاوا به صورت ایستا تایپ می شود.
  • جاوا در مقایسه با پایتون برای نوشتن موارد تست ساده تر و فشرده تر نیست.

 

35. نقاط شکست و نقاط شروع در سلنیوم چیست؟

  • نقاط شکست:

جریان اجرا با استفاده از نقاط شکست متوقف می شود. با انجام این کار می توانیم بررسی کنیم که کد به شکل مورد انتظار کار می کند یا خیر.

  • نقاط شروع: 

نقطه ای که اجرا باید از آنجا شروع شود با نقاط شروع مشخص می شود. وقتی می خواهید یک اسکریپت آزمایشی را از وسط کد یا نقطه شکست اجرا کنید، از اینها استفاده می کنیم.

 

36. قابلیت مورد نظر از نظر سلنیوم چگونه مفید است؟

یک سری جفت کلید-مقدار را می توان برای ذخیره اطلاعاتی مانند نام مرورگر، نسخه مرورگر، مسیر درایور مرورگر در سیستم و غیره استفاده کرد تا رفتار مرورگر در زمان اجرا تعیین شود. این ویژگی یا عملکرد معمولاً به عنوان قابلیت مورد نظر شناخته می شود.

برای سلنیوم،

نمونه درایور را می توان با استفاده از این پیکربندی کرد.

زمانی عملی می شود که بخواهید موارد تست را در سیستم عامل ها ، مرورگرها و نسخه های مختلف اجرا کنید.

 

37. چه زمانی از AutoIT استفاده می کنید؟

همانطور که می دانیم سلنیوم فقط برای خودکارسازی برنامه های کاربردی وب استفاده می شود. اما اگر می‌خواهیم رابط کاربری گرافیکی، پنجره‌های پاپ‌آپ HTML را مدیریت یا مدیریت یا نگهداری کنیم، به استفاده از AutoIT نیاز داریم.

 

38. می توانید بگویید چرا به Session handling در سلنیوم نیاز دارید؟

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

 

39. آیا می توانید CAPTCHA را خودکار کنید؟

پاسخ خیر است. ما نمی‌توانیم CAPTCHA را در سلنیوم خودکار کنیم. مفهوم CAPTCHA این است که اطمینان حاصل شود که ربات ها یا اسکریپت های تست خودکار نباید به اطلاعات حساس دسترسی داشته باشند و به همین دلیل است که ما نمی توانیم آن را خودکار کنیم. کپچا باید به صورت دستی تایپ شود تا جریان اجرای مجموعه آزمایشی ادامه یابد.

 

40. چگونه مرورگرهای مختلف را در سلنیوم راه اندازی کنیم؟

  • یک نمونه درایور باید برای یک مرورگر خاص ایجاد شود که باید روی آن کار کنیم.
  • درایور WebDriver = جدید FireFoxDriver();
  • درایور WebDriver = جدید ChromeDriver();
  • در اینجا WebDriver رابطی است که فایرفاکس، کروم و سایر درایورهای مرورگر در آن پیاده سازی می شوند.

41. مکان یاب چیست و چگونه می توان یک عنصر را در سلنیوم پیدا کرد؟

عناصر صفحه وب با استفاده از مکان یاب برای تعامل پیدا می شوند و مطابقت داده می شوند. انواع مختلفی از مکان یاب برای شناسایی انواع مختلف عناصر در صفحه وب وجود دارد. آنها به شرح زیر هستند،

  • شناسه
  • نام
  • کلاس
  • پیوند جزئی
  • XPath
  • انتخابگر CSS
  • متن پیوند

 

 

42. چرا سلنیوم را به QTP (تست سریع حرفه ای) انتخاب می کنید؟

ویژگی سلنیوم تست سریع حرفه ای (QTP)
سازگاری مرورگر تقریباً همه مرورگرهای محبوب پشتیبانی می شوند. فایرفاکس، کروم، سافاری، اینترنت اکسپلورر، اج و غیره. این فقط از کروم، فایرفاکس و اینترنت اکسپلورر پشتیبانی می کند. همچنین فقط از سیستم عامل ویندوز پشتیبانی می کند.
توزیع به عنوان منبع باز توزیع شده و به صورت رایگان در دسترس است. به عنوان یک ابزار مجاز توزیع شده و تجاری می شود.
برنامه در حال آزمایش (AUT) برنامه های کاربردی مبتنی بر وب فقط در این نوع آزمایش خودکار پشتیبانی می شوند. این امر هم از برنامه های مبتنی بر وب و هم برای برنامه های ویندوز برای آزمایش خودکار پشتیبانی می کند.
مخزن اشیاء موجودیت جداگانه در سلنیوم برای ایجاد مخزن شی استفاده می شود. ایجاد خودکار مخزن Object اتفاق می افتد و حفظ می شود
پشتیبانی از زبان چندین زبان برنامه نویسی مانند جاوا، پایتون، پرل، روبی، سی شارپ و غیره توسط این سلنیوم پشتیبانی می شوند. فقط زبان VBScript توسط این QTP پشتیبانی می شود.
پشتیبانی فروشنده همانطور که قبلاً می دانیم که سلنیوم یک ابزار رایگان است، ما در عیب یابی مشکلاتی که با آن مواجه هستیم، پشتیبانی فروشنده را دریافت نمی کنیم. پشتیبانی فروشنده برای کاربرانی که از QTP استفاده می کنند تضمین شده است و از آنجایی که QTP تجاری و دارای مجوز است، پاسخ های سریع دریافت می کنند.

 

43. چالش ها و محدودیت های درایور وب سلنیوم چیست؟

همانطور که همه ما می دانیم که درایور وب سلنیوم برای تقلید از اعمال واقعی کاربر در وب در مرورگر استفاده می شود. برخی از چالش های سلنیوم به شرح زیر است:

  1. برای آزمایش برنامه های ویندوز یا دسکتاپ سازگار نیست.
  2. همچنین، نمی توان از آن برای آزمایش برنامه های کاربردی موبایل استفاده کرد.
  3. بدون گزارش داخلی و برای به دست آوردن گزارش ها باید با سایر ابزارها ادغام شود.
  4. پشتیبانی از تست تصویر محدود است.
  5. کاربر باید دانش برنامه نویسی قبلی داشته باشد.
  6. از آنجایی که منبع باز است، هیچ پشتیبانی فروشنده ای وجود ندارد.

44. انواع تست هایی که توسط سلنیوم پشتیبانی می شوند کدامند؟

تست رگرسیون و تست عملکرد عمدتا توسط سلنیوم پشتیبانی می شود.

  1. تست رگرسیون:

تمام موارد تست به طور مکرر به صورت جزئی یا کامل اجرا می شوند تا اطمینان حاصل شود که عملکردهای موجود مطابق طراحی کار می کنند. شامل مراحل زیر است،

  • تست مجدد: همه موارد تست در مجموعه تست اجرا می شوند که زمان بر و گران قیمت است.
  • انتخاب مورد آزمون رگرسیون: موارد آزمون به عنوان تست ویژگی ها، تست های ادغام و غیره طبقه بندی یا طبقه بندی می شوند و برخی از موارد تست انتخاب می شوند.
  • اولویت بندی موارد آزمایشی: موارد آزمایشی انتخاب شده بر اساس عملکردهای حیاتی و تأثیر تجاری اولویت بندی می شوند.
  1. تست عملکردی:

در این، تمام عملکردهای برنامه با یک نیاز خاص تأیید می شوند. این در درجه اول تست جعبه سیاه است زیرا به کد منبع برنامه مربوط نمی شود. شامل مراحل زیر است،

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

45. انواع Exception ها در درایور وب سلنیوم را توضیح دهید؟

استثناها در درایور وب سلنیوم نیز مشابه استثناهای هر زبان برنامه نویسی دیگری مانند جاوا، سی شارپ و غیره هستند، برخی از رایج ترین استثناها به شرح زیر است:

  • TimeOutException: این استثنا می تواند زمانی ایجاد شود که یک عملیات خاص در یک زمان مشخص یا تعیین شده تکمیل نشود.
  • NoSuchElementException: هنگامی که یک عنصر در مجموعه مشخصه های داده شده در صفحه وب وجود ندارد، این استثنا می تواند پرتاب شود.
  • ElementNotVisibleException: ممکن است مواردی وجود داشته باشد که یک عنصر خاص در DOM (مدل شیء سند) وجود داشته باشد اما در صفحه وب قابل مشاهده نباشد. در چنین مواردی، این استثنا را می توان پرتاب کرد.
  • StaleElementException: هنگامی که یک عنصر یا حذف می شود یا دیگر در DOM وجود ندارد، این استثنا می تواند پرتاب شود. ما معمولاً زمانی با این استثنا مواجه می شویم که عنصری که در حال تعامل با آن هستیم یا از بین می رود یا دوباره ایجاد می شود.

 

48. آیا می توانید به چالش هایی که هنگام رسیدگی به تماس های Ajax در درایور وب سلنیوم با آن مواجه هستید، اشاره کنید؟

چالش‌هایی که در هنگام رسیدگی به تماس‌های AJAX با آن‌ها روبرو هستیم، به شرح زیر است.

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

49. می توانید توضیح دهید که چگونه می توانید رنگ ها را در درایور وب مدیریت کنید؟

می توانیم از دستور getCssValue(arg0) برای واکشی رنگ ها با ارسال رنگ به عنوان آرگومان استفاده کنیم.

50. کدام یک از درایور وب سریعتر اجرا می شود؟

اجرای درایور وب HTML Unit Driver از همه سریعتر است. این به این دلیل است که این درایور تست ها را در مرورگر اجرا نمی کند، بلکه فقط HTTP ساده را اجرا می کند که همانطور که انتظار می رود سریعتر است.

 

موضوعات مهم در سلنیوم چیست؟

  • Selenium Webdriver 3. x.
  • تفاوت بین نسخه های سلنیوم مانند IDE، RC، WEB DRIVER
  • سلسله مراتب کلاس های سلنیوم/رابط/روش ها از بالا به پایین
  • اجرای سلنیوم GRID برای گره های محلی و راه دور.
  • مفاهیم جاوا به تفصیل
  • چارچوب TestNG.
  • گزارش پیشرفته
  • مدل شیء صفحه.
  • صفحه Factory Framework.
  • چارچوب داده محور
  • استفاده از بازتاب در چارچوب Page Object برای ایجاد صفحات به صورت پویا.
  • استفاده از سلنیوم با کارگر بارانداز .
  • جزئیات پروتکل سیم سلنیوم JSON.
  • ادغام سلنیوم با ابزارهای مختلف مانند JMeter، cucumber، AutoIt، Jenkins.
  • چارچوب های سلنیومی مانند صفحه کارخانه، هیبرید و غیره.

سلنیوم در چه مواردی قابل استفاده است؟

سلنیوم برای تست اتوماسیون در مرورگرهای وب مختلف مانند کروم، موزیلا، فایرفاکس، سافاری و IE استفاده می شود. با کمک یک درایور وب سلنیوم، می توان به راحتی تست مرورگر را خودکار کرد.

دستورات سلنیوم چیست؟

دستور WebDriver استفاده
گرفتن() یک مرورگر جدید راه‌اندازی می‌کند و URL مشخص شده را باز می‌کند و یک پارامتر از نوع رشته واحد
می‌گیرد driver.get();
getClass() این دستور برای بازیابی شیء کلاس
driver.getClass();
getCurrentUrl() • این دستور برای بازیابی URL صفحه وب استفاده می شود و به هیچ پارامتری نیاز ندارد.
driver.getCurrentUrl();
getPageSource() • این دستور برای بازیابی منبع صفحه استفاده می شود و به هیچ پارامتری نیاز ندارد و یک مقدار رشته ای
نتیجه boolean = driver.getPageSource().contains(“String to find”);
getTitle() • این دستور برای بازیابی عنوان صفحه وب که کاربر در حال حاضر روی آن کار می کند استفاده می شود. • این دستور به هیچ پارامتری نیاز ندارد و یک مقدار رشته بریده شده را برمی گرداند
String title = driver.getTitle();
getText() • این دستور برای بازیابی متن داخلی عنصر وب مشخص شده

String Text = driver.findElement(By.id(“Text”)).getText();

getAttribute() • دستور برای بازیابی مقدار مشخصه مشخص شده استفاده می شود و به یک پارامتر رشته واحد نیاز دارد.
getWindowHandle() • از این دستور در شرایطی استفاده می شود که بیش از یک پنجره داریم و کاربر می تواند در صورت تمایل به پنجره قبلی برگردد.
private String winHandleBefore;winHandleBefore = driver.getWindowHandle();driver.switchTo().window(winHandleBefore);
getWindowHandles() • دستور مشابه دستور “getWindowHandle()” است اما در اینجا فقط با بیش از 2 پنجره سروکار دارند.

اصول اولیه سلنیوم چیست؟

سلنیوم در ابتدا توسط Jason Huggins در سال 2004 به عنوان یک ابزار داخلی به عنوان یک رابط وب منبع باز برای تست اتوماسیون توسعه یافت. سلنیوم از اتوماسیون در مرورگرهای مختلف مانند اینترنت اکسپلورر، موزیلا فایرفاکس، گوگل کروم و سافاری، پلتفرم هایی مانند ویندوز، لینوکس ، سولاریس و مکینتاش و زبان های برنامه نویسی مانند سی شارپ، جاوا، پرل، پی اچ پی، پایتون و روبی و اکنون پشتیبانی می کند. همچنین با جاوا و سی شارپ محبوب است.

مضرات سلنیوم چیست؟

  • نمی توان به پشتیبانی فنی تکیه کرد – از آنجایی که این نرم افزار منبع باز است، تکیه بر پشتیبانی فنی دشوار است.
  • این برنامه فقط از برنامه های مبتنی بر وب پشتیبانی می کند.
  • سلنیوم برای ایجاد موارد آزمایشی زمان بیشتری می برد زیرا فقط یک رابط برنامه نویسی دارد.
  • تنظیم محیط تست با ابزارهایی مانند UFT، RFT، SilkTest و غیره دشوار است.
  • پشتیبانی محدود برای تست تصویر.
  • ویژگی های جدید ممکن است به درستی کار نکنند.
  • بدون ادغام ابزار تست برای مدیریت تست.
  • بدون امکانات گزارش دهی داخلی

چرا سلنیوم اینقدر محبوب است؟

  • شفافیت
  • پلتفرم مستقل
  • TTM و TTD را سریع می کند
  • تلاش های یکپارچه سازی مستمر را تقویت می کند
  • قابلیت مشاهده در تست پایان به انتها
  • زمان چرخش را کاهش می دهد
  • ادغام با سایر ابزارها

آیا سلنیوم یک چارچوب است؟

بله، سلنیوم یک چارچوب تست نرم افزار برای برنامه های کاربردی وب است که به شما امکان می دهد تست برنامه های وب را خودکار کنید. با زبان هایی مانند جاوا، پایتون، روبی، سی شارپ، می توانید اسکریپت های آزمایشی بنویسید تا در برابر مرورگرها و ماشین های مجازی اجرا شوند.

کدام زبان برای سلنیوم بهتر است؟

Python و Ruby بهترین زبان‌های اتصال برای سلنیوم هستند، زیرا اگر نرم‌افزار درایور در همان پوشه سیستم شما یا در مسیر پایتون وجود داشته باشد، ممکن است به طور خودکار درایور را بارگیری کند.
دیگران:

  • جاوا: جاوا همچنان محبوب ترین زبان برنامه نویسی برای اتوماسیون تست است اما خوب نیست زیرا یک زبان برنامه نویسی نیست.
  • جاوا اسکریپت: جاوا اسکریپت برای اتوماسیون تست توسط 35 درصد از کاربران ما که تست های خود را به این زبان می نویسند استفاده می شود.

 

 

 

 

محمدرضا حسنی

224 مطلب منتشر شده

دانش آموخته رشته فناوری اطلاعات / موسس پایتونی ها

درباره این مطلب نظر دهید !

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
2