את הפוסט הנוכחי החלטתי לכתוב מכיוון שכבר כמה תלמידים שלי נתקלו בבאותה שאלה שנשאלת בראיונות עבודה , זוהי השאלה המעידה על הבנה ב- Page Objects Pattern והיא הולכת כך: מהו ההבדל בין אנוטציית ה-FindAll לבין אנוטציית ה-FindBys ב-Page Objects ? אז כל מי שאי פעם התעסק עם Page Objects באוטומציה, לבטח יכיר את […]
סלניום
המתנה חכמה
נושא ההמתנות באוטומציה הוא נושא חשוב מאין כמוהו, בפרוייקט שלנו נהיה חייבים להכניס איזשהו מנגנון של המתנות בשביל שנוכל לשמור על יציבות הבדיקות. מה הכוונה ? אנו נרצה לסנכרן בין המערכת הבודקת לבין המערכת הנבדקת שלנו, במילים אחרות אנו נרצה לסנכרן בין הקוד של הבדיקות שלנו, למשל סלניום, לבין האפליקציה אותה אנו בודקים (האתר למשל). […]
Coypu Wrapper
בפוסט זה אנו נסקור מעטפת מעניינת שכתבו מעל ספריות הסלניום, גבירותיי ורבותיי, הכירו את ה-Coypu. את ה-Coypu בטבע ניתן לראות באגמון החולה שבצפון הארץ למשל, בשפה העברית אנו קוראים לה נוטריה והשם בא כאיזה ספין אוף לפריימוורק אחר – Capybara (בשפת הרובי) שה-Coypu נכתב בהשראתו, רק לשפת #C ה-Coypu (מבטאים זאת: קוואי-פו) הוא למעשה Wrapper […]
סלניום עם Python, חלק ב
קורס סלניום עם Python – חלק ב' בחלק א' של מדריך זה למדנו כיצד ניתן להוריד ולהתקין את פייתון , למדנו קצת על פקודות השפה דרך ה-Shell שהוא למעשה Command Line שמפרש את קוד השפה ופולט תוצאה, אח”כ למדנו כיצד להטמיע את הפלאג-אין של פייתון ב-Eclipse IDE שאנו כבר מכירים. בחלק זה של המדריך נלמד לפתוח […]
סלניום עם Python, חלק א
פייתון היא היא שפת תכנות מונחית עצמים, בעלת יכולת תכנות פונקציונלי, היא רצה על מערכות לינוקס, חלונות ומק. זוהי שפת סקריפטים כך שאין צורך בהידור (Compilation) ובקישור (Linkage) של תוכניות. פייתון נבנתה בדגש על קריאוּת והקטנת מאמצי המתכנת, ולכן אינה יכולה להתחרות כלל בביצועי המהירות של שפות נמוכות יותר, כשפת C למשל. עם זאת, פייתון […]
סלניום עם Ruby, חלק ב
בחלק א' של מדריך זה למדנו להורדינ ולהתקין את רובי , למדנו קצת על פקודות השפה דרך ה-irb שהוא למעשה Command Line שמפרש את קוד השפה ופולט תוצאה, אח"כ למדנו כיצד להטמיע את הפלאג-אין של רובי ב-Eclipse IDE שאנו כבר מכירים. בחלק זה של המדריך נלמד מושג חדש – Gems , נתקין דרכו את הסלניום […]
סלניום עם Ruby, חלק א
רובי (Ruby) היא שפת תכנות מונחת עצמים פופולרית מאוד כיום בעיקר לפיתוח סביבות קליינט, היא פותחה על ידי יוקיהירו מאטסומוטו ביפן באמצע שנות התשעים ובשנים האחרונות צברה תאוצה מטאורית , בין האתרים הגדולים המפותחים ברובי ניתן למצוא את גרופון, shopify ו-GitHub. ב-2004 הוקמה לשפה זו תשתית (Framework) בשם – Ruby On Rails או RoR. מה […]
סלניום עם NUnit – חלק ב
בחלקו הראשון של המדריך, הורדנו והתקנו את ה-Visual Studio , הורדנו והתקנו את NUnit , כעת נראה כיצד אנו מתקדמים עם הבדיקות הכרת ה-NUnit , מודול ה-GUI אז דבר ראשון שנראה כשנפתח את קובץ ההפעלה של NUnit יהיה המסך הבא: בחלון השמאלי (עם הרקע הלבן) אנו אמורים לראות את הטסטים שאנו ניצור בקוד. מצד ימין מלמעלה […]
סלניום עם NUnit – חלק א
כתיבת בדיקות אוטומטיות עם סלניום מאוד פופולרית בסביבת ה-NET. אחת מסביבות הריצה הכי מבוקשות בשוק הזה היא ה-NUnit הנשענת על Unit Testing לבניה והרצת הבדיקות. ה-NUnit היא הסביבה המקבילה ל-Junit (שמשתמשים בה ב-Java), והיא מתחלקת לשני מודולים: מודול הספרייה ומודול ה-UI מודול הספריה הוא למעשה קובץ DLL אשר מכיל בתוכו את הפונקציונליות של סביבת ההרצה והמבניות […]
סלניום עם HTML5 Video
סלניום יודע להתמודד ולעבוד עם כל (טוב נו, רוב) הפקדים המופיעים על הדפדפן, מול חלקם ניתן לעבוד בצורה טריביאלית – לחיצה על כפתור , הכנסת מלל לשדה טקסט, בחירת נתון מתוך רשימה יורדת (Drop Down) ועוד… ישנם פקדים מעט מסובכים ועבודה מולם עם סלניום דורשת מאיתנו קצת יותר מאמץ כמו בחירת תאריך ושעה מתוך ה-Date […]
MyTable API
במהלך עבודתי בפיתוח אוטומציה, יוצא לי לעבוד לא מעט על טבלאות. עם הזמן ניסיתי כל מיני דרכים לשכלל וליעל את עבודתי, אז בין ה-TR ל-TD התחלתי לכתוב לולאות ורשימות, עבדתי עם APIs שונים כמו ה-HTMLAgilityPack וה-jSoup (שהוא מעולה אך לא מספיק אינטואטיבי לטעמי), ובסופו של דבר החלטתי לכתוב API משל עצמי, אחד כזה שיהיה ברור, […]
קורס אוטומציה פרונטלי עם Selenium Webdriver
לאורך השנים האחרונות, עם התפתחות הבדיקות האוטומטיות במישור אחד וההתפתחות המטאורית של פיתוח אפליקציות על גבי ה-Web במישור השני, קהילת הבודקים הייתה זקוקה לפלטפורמת בדיקות חזקה ויציבה, שעובדת על דפדפנים ועליה ניתן ליצור סטים שלמים של בדיקות פונקציונליות. אין ספק כי אחד מפתרונות האוטומציה הפופולריים ביותר בתעשייה כיום הוא ה-Selenium Webdriver וזאת על אף מגבלותיו […]