צעדים ראשונים באוטומציה וסלניום

במאמר זה נדבר על הצעדים הראשונים שלנו בעולם האוטמציה עם סלניום

למה צריך אוטומציה בכלל?

  • בגלל ההתפתחות והמורכבות של פרויקטי תוכנה והמעבר לשיטות עבודה אג'יליות, בהן מועלות גרסאות רבות בזמנים קצרים, אנשי האיכות נדרשים להריץ איטרציות הולכות וגדלות של בדיקות רגרסיה.
  • עקב הסיבות הבאות, הרצת הבדיקות מקבלת חשיבות גבוהה:
  • לא יעיל לשחוק את צוות הבדיקות בהרצה חוזרת ונשנית של אותם תסריטי בדיקות.
  • רגרסיה היא עבודה סיזיפית (חזרה על אותם טסטים שוב ושוב), שהסבירות ששגיאות יתבצעו במהלכה גבוהה יותר ככל שהיא מורצת.
  • האוטומציה יכולה לרוץ בכל עת (לא תלויה בזמן / מקום).
  • האוטומציה יכולה לרוץ על מספר רב של תצורות (סביבות / דפדפנים / מכשירים ניידים) במקביל.

עכשיו, כאשר אנו יודעים מדוע ישנו צורך באוטומציה, חשוב לדעת שהיא אינה מתאימה עבור כל מצב.

מתי לא נבצע אוטומציה?

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

הכלי העיקרי השולט כיום בשוק האוטומציה ל-WEB נקרא סלניום.

מה זה סלניום?

  • Framework לביצוע אוטומציה לפעולות הדפדפן.
  • קיים מ-2004, הגרסה הנוכחית היא סלניום 3.
  • מגרסה 2 ואילך נקרא Selenium WebDriver, כלומר הפעולות המתבצעות באמצעות כלי זה מצריכות קידוד בסביבת פיתוח משולבת (IDE), כגון Eclipse ו-Visual Studio.
  • בעבר היה קיים מקליט בשם Selenium IDE. כיום, בגרסת פיירפוקס האחרונה, המוצר אינו נתמך.
  • ישנו כלי משלים המכונה Selenium Grid, בעזרתו ניתן לנהל הרצה של מספר טסטים במקביל (ל-Grid קיימות חלופות בתשלום בענן, לדוגמה BrowserStack או (Sauce Labs.

בעבר שלט בשוק כלי שנקרא QTP/UFT.

מהם ההבדלים בין UFT לסלניום?

  • הראשון הוא קוד פתוח, המתוחזק על ידי קהילה, בעוד שהשני הינו כלי בתשלום של חברת HP.
  • סלניום פועל על דפדפנים בלבד, בניגוד ל-UFT, אשר עובד גם על מובייל.
  • UFT מאפשר גם בדיקות במובייל, בניגוד לסלניום, המצריך ספריות נוספות, כדוגמת Appium.
  • בעוד UFT מצריך ידע ב- VBScript בסלניום ניתן לכתוב בהמון שפות תכנות שונות.
  • כרגע הביקוש בשוק נוטה משמעותית לטובת הסלניום (כפי שניתן לראות, למשל, בלוחות דרושים).
  • סלניום לא ירוץ בצורה אוטומטית אם לא יקושר למריץ שייתן לו טריגר לריצה (במילים אחרות, אנו נצטרך להיכנס לפרויקט ולהריצו בצורה ידנית).

מה ההבדל בין הקלטות תסריטים לבין קידוד תסריטים?

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

ההקלטות נחותות מהקידוד מהסיבות הבאות:

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

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

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

דרישות קדם

  • נדרש חיבור לאינטרנט והתקנה של Eclipse.
  • התקנה של הדרייברים של דפדפני Chrome / Firefox על מנת שהבדיקות ירוצו בהצלחה, דבר המבוצע עם https://chocolatey.org/.

אופציות להקמת פרויקט האוטומציה

  • הטמעה של JAR בתוך הפרויקט שלנו. כתוצאה מכך כל הקוד יהיה רשום בתוך Main Class והתוכנית תרוץ כ-Java Application (האופציה שנבחרה במאמר זה).
  • כחלק מהטמעה של Maven, כתלות בספריות טסטים שהן ה- Executorשל הקוד שלנו. במצב כזה תרוץ התוכנה על ידי מנוע טסטים, שיריץ את הטסטים כפרויקט טסטים.

לינק שימושי להסבר:

http://www.assertselenium.com/eclipse-2/how-to-setup-a-webdriver-project-in-eclipse/

הקמנו את הפרויקט! מה עכשיו?

צעדים ראשונים בפרויקט האוטומציה

לאחר שפתחנו פרוייקט חדש, נביא את ה- JAR לתוך הפרויקט וניצור אובייקט חדש של דרייבר.

ראשית, נאתחל את האובייקט של ה-Driver על ידי קריאה למחלקת WEBDRIVER ואתחולה על ידי אתחול ה- Driver שנבחר (כלומר פנייה לבנאי של אותה מחלקה). חשוב שכל Driver שאנו מאתחלים יהיה מותקן במחשב ומוגדר כמשתנה מערכת (יש דרייבר יחודי לכרום, לפיירפוקס הנקרא geckodriver, לספארי, לאדג' ולאקספלורר).

יש לייבא את התלות של ה-WebDriver אל הפרויקט שלנו, שכן לא אנחנו כתבנו את קוד המקור, ועל מנת שהקוד שלנו ידע להתממשק אליו – עליו להיות מיובא.

Driver הוא מעטפת לדפדפן; הוא "משתלט" על הדפדפן ומריץ דרכו את הפעולות, שהן הפקודות שאנו מקודדים.

על מנת לזהות אלמנטים נצטרך להעזר ב-Chrome Development Tools.

לאחר שאיתרנו אלמנט בהצלחה, נבצע עליו פעולות:

נקליק עליו, נשלח אליו טקסט, נקרא ממנו ערכים, נבחר בו (אם מדובר ב-dropdown) ועוד.

לינק שימושי להסבר:

https://loadfocus.com/blog/2013/09/05/how-to-locate-web-elements-with-selenium-webdriver/

כאן תמצאו רשימת אתרים עשירי פונקציונאליות, עליהם ניתן להתאמן:

http://www.techbeamers.com/websites-to-practice-selenium-webdriver-online/

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

http://toolsqa.com/selenium-webdriver/first-test-case/.

ניר טל

ניר טל

בעל 6 שנות ניסיון הכוללות:
ניהול צוות QA, הקמת מערכי QA
בסטרטאפ ובחברה גדולה

המדריך המלא לבודק התוכנה המתחיל

ב-QA Experts כתבנו את המדריך המקיף בארץ למעוניינים ללמוד בדיקות תוכנה
52 עמודים עם כל האינפורמציה שתצטרכו 
+בונוס!
מדריך מפורט אודות צבירת ניסיון ועבודה כבודק תוכנה עצמאי

רוצה לקבל את המדריך?