כלי ניהול בדיקות Selenium IDE | רחל ברוך

הכרות

כשרוצים לבצע בדיקות אוטומטיות על גבי דפדפני Web, אחד מהכלים הידועים כיום בשוק הינו ה"סלניום".

לסלניום קיימים 3 סוגי מוצרים: Selenium IDE, Selenium Grid ו-Selenium Web Driver

בעוד ש-Selenium Grid מאפשר ניהול הרצות במקביל על מכונות שונות ודפדפנים שונים במקביל, Selenium WebDriver  מצריך שימוש בספריות וידע בקוד.

Selenium IDE הוא כלי אשר אינו מצריך ידע בקוד מכוון שהוא מבצע הקלטה והרצה (Record & Play) של פעולות שביצענו בדפדפן וזאת על ידי שימוש בפקודות של סלניום. 

הכלי נתמך על ידי דפדפני Chrome-ו Firefox.

 

תכונות מרכזיות

  1. הקלטה והרצת בדיקות
  2. פקודות גם תוך כדי הקלטה
  3. לוקייטורים נוספים
  4. פקודות תנאי ולולאות
  5. Debugging
  6. Command Line Runner
  7. Logs
  8. Code Export
  9. Reuse - שימוש חוזר של מקרי בדיקות

 

הקלטה והרצת בדיקות

בכדי לעבוד עם הכלי צריך להוסיף את התוסף לדפדפן מ-https://www.selenium.dev/selenium-ide/

לאחר הוספת התוסף, יש ליצור פרויקט חדש ובתוך הפרויקט החדש, יש לייצר מקרה בדיקה.

ראשית מגדירים את הכתובת של האתר שרוצים לעבוד איתו ואז לוחצים על כפתור הקלטה (Rec), ומיד לאחר מכן יופיע האתר בדפדפן חדש. מה שנשאר לעשות זה לבצע את הפעולות הרצויות בדפדפן.

בינתיים ברקע כל פעולה שלנו מוקלטות ובסיום ההקלטה ניתן לראות את כל הפעולות שמבצעים תחת כותרות "פקודה, יעד וערך (command, target, value)".

ב – command ניתן לבחור את הפקודות איתן אנו נרצה לעבוד, ב-target מוקלטים הלוקייטורים וב-value מוסיפים את הערכים שאיתם רוצים לעבוד.

עכשיו אפשר ללחוץ על כפתור Stop בכדי לעצור את ההקלטה ולצפות בפעולות שביצענו. ניתן ליצור מנות בדיקה (Suites Test) המאפשרים לארגן את כל תסריטי הבדיקה לפי הצורך.

ניתן להוסיף עוד מקרי בדיקה או מנות בדיקה ע"י לחיצה על כפתור ה-"+" ובסוף ניתן לשמור את הפרויקט במחשב עם סיומת side. ניתן להריץ את מקרי בדיקות או מנות בדיקה במהירות הרצויה ע"י כפתור השעון שנמצא ב-toolbar.

 

 

פקודות גם תוך כדי הקלטה

בנוסף להקלטה וצפייה של כל הפעולות שביצענו ניתן להוסיף פקודות לצורך מתן תוקף (Validation) ולא לחזור על אותם פעולות ולידציה עם נתונים שונים באופן ידני. 

הפקודות הן ב-3 קבוצות: Action ,Accessors& Assertions.

פקודות Action הן באינטראקציה עם web elements ביישומון  כמו: open, set windows size, click, close, echo.

פקודות Accessors הן אחסון הנתונים בתוך משתנים שהמשתמש הגדיר ע"י :

Store, Store Value, Store Text, Store Title

פקודות Assertions הן ולידציות מסוג: assert, verify, wait for

כאשר:

  • assert עוצר את הריצה במקרה של כישלון.
  • verify זורק הודעת שגיאה וממשיך להריץ את הבדיקה.
  • Wait for הריצה ימתין עד לקבלת התוצאה ע"י : wait for element visible או wait for element not present וכו. 

ניתן לבחור את הפקודות:

ניתן לבחור את הפקודות גם תוך כדי הקלטה ע"י לחיצה בכפתור ימני בעכבר ובחירה מרשימה וזה חוסך בזמן.

פקודות שניתן לבחור תוך כדי הקלטה הן:

Assert, Store ,Verify, Wait For, Mouse Over 

 

לוקייטורים נוספים

בזמן הקלטה, הכלי שומר לוקייטורים נוספים בנוסף ללוקייטור הראשי. בזמן הריצה, אם הלוקייטור הראשון לא יכול למצוא את האלמנט אז הוא ממשיך ללוקייטור הבא, עד למציאת האלמנט. הבדיקה תכשל רק במקרה ושום לוקייטור לא ימצא את האלמנט.

ניתן לראות זאת ב-Target:

  

פקודות תנאי ולולאות

ניתן להגדיר תנאים כגון:  if, else if, else, end 

ולולאות כגון: while, end, do, repeat if, times, for each.

לדוגמא ניתן להוסיף מוצר לסל במקרה שהוא בהנחה:

 

 

 איתור באגים (Debbuging)

לחיצה ליד שורת הפקודה תוסיף את האפשרות "דיבאג" לצורך עצירה של הרצה בשלב הרצוי. ע"י לחיצה על הכפתור שבצילום ניתן להמשיך להריץ את הבדיקה שלב אחרי שלב .

 

Command Line Runner

ניתן להריץ את הפרויקט במספר דפדפנים שונים על ידי שימוש ב-Command Line.  לצורך זה צריכים להתקין את node (גרסה 8 או 10) , Selenium-side-runner  ו-browser driver. 

https://nodejs.org/en/download/

C:\Users\USER\Desktop>nmp install -g selenium-side-runner

C:\Users\USER\Desktop>nmp install -g chromedriver

לאחר התקנה של כל מה שנדרש ניתן להריץ את הפקודה:

Logs

בתחתית המסך בלשונית הלוגים ניתן לראות את כל ביצועי ההרצה של כל פקודה ומה התקבל לאחר הרצה כולל התוצאה הסופית. ניתן לקבל ב"לוגים" הדפסה רצויה ע"י שימוש בפקודת echo ב-command.

Code Export

ניתן לייצא את הקוד עבור המשך העבודה בסביבת פיתוח.

לחיצה על הכפתור הימני בעכבר על הבדיקה תראה את אפשרויות הייצוא ל:

Java JUnit, C# NUnit, C# xUnit, JavaScript Mocha, Python pytest, Ruby RSpec

 

 

שימוש חוזר של מקרי שימוש (Reuse)

אחת התכונות שמאוד אהבתי היא שניתן לכתוב סקריפט ולהריץ אותו במקרה בדיקה אחר. במקרה הבדיקה מגדירים משתנה בפורמט {...}$  ומאחסנים אותו במקרה בדיקה נוסף (לדוגמא  ב-Invalid Login)  עם הערכים שרוצים להריץ אתו ע"י פקודת Run, תכונה הזו יכול לחסוך לנו זמן.

 

יתרונות

  • כלי חינמי
  • ממשק משתמש אינטואיטיבי 
  • אפשרות ליצור מנות בדיקה לצורך שימוש חוזר של מקרי בדיקה נוספים
  • אפשרות הוספת פקודות תוך כדי הרצה
  • הכלי שומר לעצמו מספר רב של לוקייטרים בזמן הקלטה 
  • הרצה מדפדפן או מ-CLI
  • אפשרות להריץ את הבדיקה משלב שרוצים
  • הצגת מידע מפורט בלוגים 
  • מדריך למשתמש מובן ומורחב
  • תמיכה וקהילה זמינה, קיבלתי מענה לשאלות שאלתי

 

חסרונות

  • בזמן ההרצה לפעמים התוסף לא מגיב ודורש לסגור ולהפעיל מחדש
  • אין בכלי תמיכה מובנית ל-data driven. אין אופציה לטעון מראש קובץ נתונים וה-Selenium IDE ידע לרוץ עליו מיידית. ניתן לממש data driven אך רק בתמיכת פקודות javascript אשר ניתן לקרוא להן דרך פקודת execute script
  • קיימים כלים מתקדמים יותר בשוק אך בתשלום
  • לדעתי מתאים רק לפרויקטים קטנים  

 

ציון

מענה לצרכים של החברה 8/10

נותן למשתמש חווית שימוש 9/10

תמיכה וקהילה 8.5/10

סה"כ 8.5