לאחרונה פנה אלינו לקוח עם בעיה כזו:
על החברה שלו להזין הזמנות מורכבות של פריטים שמגיעות במסמכי אקסל ארוכים שאת תוכנם יש להזין ידנית לתוך אתר שאליו ההזמנות אמורות להכינס.
אני יודע מה אתם חושבים ישר, מה הבעיה אפשר לעשות שימוש ב API
וגם אין עם מי לדבר שייצר לו API… אז זהו שבאתר הזה אין API
הפתרון שייצרנו ללקוח הוא אוטמציה באמצעות כלי שנקרא סלניום.
יצרנו ללקוח אפליקציה שבה הוא בוחר את קובץ האקסל הרצוי. האפליקציה יודעת להכנס לאתר (לעשות לוגין) להגיע למסך הנכון ולהזרים את ההזמנה מהאקסל ישרות למסך ההזמנה.
יש לציין שהאפליקציה הביאה תוך זמן קצר לחיסכון בעובד במשרה מלאה שתפקידו היה להזין את ההזמנות לאתר. כך שתוך מספר חודשים עלות הפיתוח כוסתה והלקוח התחיל לחסוך הרבה כסף.
להלן הסבר על הטכנולוגיה שבה השתמשנו:
אוטומציה באמצעות Selenium
היא שיטה נפוצה ואפקטיבית לביצוע בדיקות אוטומטיות על יישומי אינטרנט. Selenium הוא כלי מבוסס קוד פתוח המאפשר אוטומציה של דפדפנים, והוא יכול לבצע אינטראקציות עם דפי אינטרנט בדיוק כפי שמשתמש אנושי היה עושה. המאמר הבא יסביר את היתרונות של אוטומציה עם Selenium, השימושים העיקריים שלו, והשלבים ליצירת אוטומציה בסיסית.
מה זה Selenium?
Selenium הוא פרויקט קוד פתוח שמציע מגוון כלים ואפשרויות לאוטומציה של דפדפנים שונים (כגון Chrome, Firefox, Safari). הוא מאפשר להריץ בדיקות אוטומטיות על ממשקי משתמש של אתרים ולבדוק את התפקודיות שלהם במגוון תרחישים ובדפדפנים שונים.
המערכת כוללת כמה מרכיבים עיקריים:
- Selenium WebDriver: המרכיב המרכזי שמאפשר לאוטומציה לפעול באמצעות פקודות ישירות לדפדפן.
- Selenium IDE: כלי פשוט שמאפשר להקליט תסריטים של אינטראקציות עם דפדפן ולהריץ אותם שוב, מתאים במיוחד למתחילים.
- Selenium Grid: מערכת שמאפשרת הרצת בדיקות על פני מספר מכונות ודפדפנים במקביל.
יתרונות השימוש ב Selenium
- תמיכה במספר דפדפנים: Selenium תומך במגוון רחב של דפדפנים (Chrome, Firefox, Edge וכו'), מה שהופך אותו לפתרון מצוין לבדיקת יישומים שמיועדים לעבודה על מספר פלטפורמות.
- קוד פתוח וקהילה פעילה: כיוון ש-Selenium הוא כלי חינמי, עם קהילת מפתחים רחבה, ניתן למצוא הרבה משאבים, תיעוד ותמיכה עבורו.
- תמיכה בשפות תכנות רבות: Selenium תומך בשפות תכנות רבות כמו Java, Python, C#, JavaScript ועוד. זה מאפשר למפתחים לעבוד עם השפה המועדפת עליהם.
- גמישות ואינטגרציה עם כלים אחרים: Selenium ניתן לשילוב עם כלים נוספים כמו Jenkins לאוטומציה של בנייה ו-CI/CD, או עם כלים כמו TestNG או JUnit לניהול בדיקות.
שלבי בניית תסריט אוטומציה עם Selenium
- התקנת Selenium WebDriver: הדבר הראשון שצריך לעשות הוא להתקין את ה-WebDriver המתאים לדפדפן שבו תרצו להשתמש. עבור Chrome, לדוגמה, יש להתקין את ChromeDriver.
- הגדרת סביבה לפרויקט: יש לבחור שפת תכנות שבה תכתבו את התסריט. לדוגמה, אם תבחרו ב-Python, ניתן להתקין את Selenium על ידי הפקודה:
bash
Copy code
pip install selenium
- כתיבת תסריט בדיקה: כתיבת תסריט אוטומציה בסיסי תכלול פתיחת דפדפן, ניווט לאתר, ביצוע פעולות מסוימות כמו לחיצה על כפתורים, מילוי טפסים או בדיקת אלמנטים בדף.
דוגמה לתסריט פשוט ב-Python:
python
Copy code
from selenium import webdriver
from selenium.webdriver.common.by import By
# יצירת אובייקט של הדפדפן
driver = webdriver.Chrome()
# פתיחת דף אינטרנט
driver.get("https://example.com")
# חיפוש אלמנט על פי שם
element = driver.find_element(By.NAME, "search")
# שליחת טקסט לאלמנט
element.send_keys("Selenium automation")
# לחיצה על כפתור חיפוש
driver.find_element(By.ID, "search_button").click()
# סגירת הדפדפן
driver.quit()
- הרצת הבדיקה: לאחר שכתבתם את התסריט, ניתן להריץ אותו כדי לבדוק האם הוא עובד בצורה תקינה. חשוב לבדוק את התוצאות ולוודא שהתסריט פועל כמצופה.
שימושים נפוצים של Selenium
- בדיקות פונקציונליות: בדיקת פונקציות שונות של האתר, כמו התחברות, הוספת מוצרים לעגלה, תהליך רכישה ועוד.
- בדיקות רגרסיה: כל פעם שמשתנה קוד באתר, ניתן להריץ מחדש את הבדיקות כדי לוודא ששום דבר לא נשבר.
- בדיקות תואמות לדפדפנים שונים: ווידוא שהאתר פועל בצורה תקינה בכל דפדפן.
- אוטומציה של תהליכים חזרתיים: ניתן להשתמש ב-Selenium כדי לבצע אוטומציה של תהליכים כמו מילוי טפסים או הפקת דוחות חוזרים.
אתגרים והגבלות
אף על פי ש הוא כלי חזק וגמיש, ישנם כמה אתגרים בעבודה איתו:
- תחזוקת תסריטים: כשהאתר משתנה לעיתים קרובות, ייתכן שיהיה צורך לעדכן את תסריטי הבדיקות בהתאם לשינויים במבנה האתר או האלמנטים שלו.
- זמן ריצה ארוך: אוטומציה שמבוססת על דפדפן היא לעיתים איטית יותר בהשוואה לאוטומציה של ממשקי API, כיוון שהדפדפן נדרש לטעון דפים מלאים.
- תמיכה מוגבלת בבדיקות על מובייל: על אף ש-Selenium תומך גם בבדיקות על דפדפנים במובייל, לעיתים נדרש להשתמש בכלים נוספים כמו Appium לצורך בדיקות של אפליקציות נייטיב.
סיכום
סלניום הוא כלי רב עוצמה לאוטומציה של בדיקות על דפדפנים, והוא מעניק גמישות רבה בעבודה עם מגוון פלטפורמות ושפות תכנות. עם זאת, חשוב להיות מודעים לאתגרים בתחזוקה ובזמני הריצה, ולשלב אותו בתהליכים ובכלים נוספים כדי למקסם את היעילות.
שימוש נכון ב-Selenium יכול לחסוך זמן רב ולשפר את איכות הבדיקות, במיוחד באתרים מורכבים עם הרבה אלמנטים אינטראקטיביים.