« לעמוד הראשי

שילוב בדיקות ו- CI/CD – דוגמא לשילוב Selenium ו – GitLab CI/CD

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

האתר שלנו הוא אתר אינטרנט מסחרי שמכיל תוכן רב ומגיעים אליו גולשים רבים מכל העולם ובכל יום. חשוב לנו להריץ regression tests לאחר ביצוע שינויים באתר, בכדי לוודא ששום דבר לא השתנה או נהרס לאחר ביצוע השינויים.

לשם כך השתמשנו ב- Selenium לבדיקות אוטומטיות ובמעטפת של המוצר GitLab CI ע"מ לבנות ריצה אוטומטית בכל פעם שאנו מבצעים שינוי בקבצים של האתר. למעשה השתמשנו ב-   Selenium WebDriver  ובמגוון כלים נוספים:

gitlab kubernetes selenium google cloud logo

 

ובהרחבה:

האתר שלנו נמצא ב- git והוכנס ל- GitLab

הוספנו את GitLab CI – הוספנו את כל הבדיקות הכלולות בו (בגירסת Ultimate).

כך נראה ה- pipeline שבנינו  (המבוסס על כל בדיקות Auto DevOps ובנוסף הרצת Selenium שאנחנו הוספנו) . לחצו להגדלה.

gitlab ci pipelines

 

בנינו סביבת Kubernetes כדי להריץ runners מעליהם (מה שיתן לנו kubernetes מנוהל) – השתמשנו ב- GCP לשם כך .

ב- Selenium כתבנו סקריפט מבוסס Python, שכרגע מבצע כמה בדיקות בסיסיות של בדיקת תקינות לינקים ובדיקת תקינות סרטוני Youtube.

למעשה Selenium סורק את האתר וסורק זאת על דפים שהגדרנו מראש – ומדווח האם תקין או לא תקין.

את הפלט אנו שולחים ל- stdout כך שגם GitLab יכול לאסוף זאת – וניתן לראות את התוצאות בסיום הריצה.

מהו Auto DevOps ?

תבנית ראשונית של אוסף של 8 בדיקות שניתן ללהריץ על הקוד שלנו ועל האתר עצמו (אפשר גם לשנות את זה בהתאם לצרכים שלנו כפי שעשינו)

זהו פיצ'ר ייחודי ל- GitLab .

הנה כך נראית היסטורית הריצות: (לחצו להגדלה)

gitlab ci dashboard pipelines

 

ניתן לראות את תוצאות הריצה בהקלקה על pipeline ספציפי.

הנה פלט לדוגמא של סבב ריצה (כרגע הפלט די בסיסי ופרימיטיבי – אנו נשכלל אותו כמובן בהמשך. לחצו להגדלה).

gitlab ci history output

 

כמובן שניתן לשלוט בפלט הריצה כפי שנרצה, ולבצע פעולות מסויימות במקרה של הצלחה/ כשלון ועוד.

הנה לדוגמא דו"ח מעוצב ב- Excel שנבנה אוטומטית לכל pipeline

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

קצת על השיקולים שלנו בבניית התשתית והסביבה:

  • למה סלניום? הסלניום הינו כלי הבדיקות האוטומטיות הנפוץ ביותר בעולם הבדיקות כיום
  • למה GitLab CI? זה הכלי המתקדם ביותר כיום ל CI/CD  – בפרט כשרוצים לעשות שימוש בקוטיינרים ו Kubernetes
  • למה קונטיינרים ו-  Kubernetes? הם מאפשרים לנו להרים סביבות רזות לבדיקות , להרים אותן במהירות ובעלויות נמוכות (תשלום ע"פ שימוש בפועל / ע"פ צריכה)
  • למה העדפנו בענן? כי לא רצינו להחזיק חומרה ו "ברזלים" לצורך זה
  • למה GCP בפרט? כי מאפשר Kubernetes מנוהל ברמה גבוהה

מה אנחנו מתכננים להוסיף בעתיד הקרוב לסביבת הבדיקות:

  • בדיקות פונקציונליות נוספות
  • בדיקות ולידציה של תקינות הזנת טפסים
  • בדיקות API
  • בדיקות עומסים וביצועים

 

חברת ALM-Toolbox מתמחה בכתיבת אוטומציית בדיקות מקצה לקצה, כולל תכנון ובניית תהליך בדיקות מלא; הקמת סביבות on-demand בענן או על תשתית שלכם, וחיבור לכלי ניהול הגירסאות ולכלי ניהול הבדיקות והבאגים ; DevOps ו- ALM, מעבר לענן, בניית תהליכי CI/CD כולל "Self Service" , תכנון ופריסת פתרונות HA / DR אפליקטיביים ועוד, ובפרט בכלים git, GitLab, Jenkins  Docker, Rancher, Spotinst, Kubernetes (ונוספים) ובעננים AWS, GCP, Azure .
אנו גם מייצגים יצרנים ומוכרים רישוי שלהם ( GitLab, Spotinst, Rancher, Spotinst ועוד – הרשימה המלאה כאן)
לשאלות נוספות או לקבלת רשיון התנסות בכלים הנ"ל , ניתן לפנות אלינו במייל devops@almtoolbox.com או טלפונית: 072-240-5222