CodedUIChrome

הרצת CodedUI על Chrome

זה ידוע כי בצורה ה- Native-ית ה-CodedUI מתממשק בצורה הטובה ביותר על האינטרנט אקספלורר, בכל זאת אותו אבא ואותה אמא (מייקרוסופט), אך האם ניתן להריץ את הבדיקה שלנו על דפדפן אחר, כרום למשל ? התשובה היא – כן. אבל לשם כך נצטרך להתקין ולהגדיר כמה דברים לפני כן בשביל ששתי הקומפוננטות ינגנו ביחד. אז מה […]

OnlineIDE

סביבות עבודה למפתחי Web בענן

בשנים האחרונות נושא פיתוח אפליקציות Web תפס תאוצה מטאורית וביחס ישר איתן גם סביבות העבודה בה המפתחים עושים שימוש. עם התפתחות הסביבות הדסקטופיות הוותיקות (אלו שיותר ואלו שפחות) קמו להן גם פלטפורומות ענניות בהן ניתן ליצור פרוייקט פיתוח מאפס בסביבת SaaS עם כל היתרונות של ענן כמובן – ללא צורך וידע בהתקנות, הטמעות, שידרוגים, ותחזוקה. […]

AutomationArchitecture1

המבנה הארכיטקטוני של מערכת אוטומציה

כולנו כבר מכירים בחשיבות של פרוייקט אוטומציה שרץ ומתפקד תחת מחלקת ה-QA. רבים גם מכירים את היתרונות והחסרונות, מה נבדוק ומה לא בבדיקות אוטומטיות. את הארכיטקטורה מאחורי הקלעים בודקים פחות מכירים כי: א. בד"כ כשמגיעים למקום עבודה חדש המערכת כבר קיימת (ואם לומדים על ארכיטקטורה, לומדים אותה על המוצר הנבדק בד"כ) ב. זה לא משהו […]

Selenium

סלניום – Selenium

אין ספק כי אחד מפתרונות האוטומציה הפופולריים ביותר בתעשייה כיום הוא ה-Selenium.  וזאת על אף מגבלותיו לצאת את תחומי הדפדפן. הוא חינמי, יש לו את קהל המשתמשים הגדול ביותר לכלי אוטומציה ובהתאם לכך מספר הרפרנסים, המדריכים, השאלות והתשובות הכי נרחב שתמצאו ברשת. אז מה זה למעשה הפיתרון הזה ? במאמר זה ארחיב על המודולים המרכיבים […]

AutomationReflection

Reflection לבדיקות אוטומטיות

בפוסט זה אראה ואדגים כיצד ניתן לאטמט בדיקות בצורה קצת שונה. ללא Gui , ללא Services , וכשאין איזושהיא מערכת שעומדת מאחורי ה-SUT. כל מה שעומד לרשותינו הוא קובץ Exe עליו נבצע את הבדיקות. במידה וקובץ זה מכיל טיפוסים ומשתנים ציבוריים ניתן פשוט לשייך את האסמבלי כרפרנס לפרויקט הבדיקות שלנו ולקרוא בצורה ישירה לאותם משתנים. […]

qtp1

איך באמת QTP עובד ?

אלו שיש להם נסיון עם QTP בעבר יודעים כי עבודה עם QTP = עבודה עם אובייקטים, ישנן 2 צורות עבודה עם אובייקטים בכלי: עבודה מול ה-Object Repository – בה האובייקט מוגדר לפני הריצה ונשמר במבנה נתונים פנימי של הכלי עבודה עם Descriptive Programing – בה אני מגדיר את האובייקט בזמן הריצה, בזמן זה הוא נשמר […]

WebdriverCourse00

הארכיטקטורה של Selenium WebDriver

לפני שנלמד כיצד לעבוד עם סלניום Webdriver, חשוב שנדע איך הוא עובד וממה הוא בנוי . הארכיטקטורה של ה-Webdriver אינה דומה לזו הקודמת אותה הוא בא להחליף, ה-Remote Control. בזמן שהשני ניסה להשתלט על הדפדפן בעזרת JS מתוך הדפדפן, ה-Webdriver עושה זאת מחוץ לדפדפן בעזרת API. ישנן אפליקציות שונות שמשתמשות ב-API הזה, ה-Webdriver עושה זאת […]

WebdriverCourse01

שיעור 1: התקנה

את הקורס הזה נתחיל ללמוד בהתקנה והגדרה של ה-Selenium Webdriver. את הכלי הזה ניתן להתקין על מגוון רחב של סביבות – מערכות הפעלה שונות, IDE שונים, שפות תכנות שונות ועוד. בשיעור זה אדגים כיצד ניתן להתקין את הכלי בשתי סביבות אולי הפופולריות ביותר, האחת ב-NET. והשניה ב-Eclipse. התקנת Selenium WebDriver בסביבת NET. ועבודה עם #C […]

WebdriverCourse02

שיעור 2: הדפדפן

הדבר הראשון שנרצה לעשות בסלניום הוא לפתוח ולסגור את הדפדפן, לשם כך נצטרך להכיר את הפקודות השונות שמטפלות בדפדפן.   פונקצית ה-Get: תיאור: פונקציה הפותחת  דף חדש בדפדפן , מקבלת מחרוזת בה כתובת האתר אליו אנו רוצים לנווט דוגמא: driver.get("www.YoniFlenner.Net"); פונקצית ה-GetTitle: תיאור: פונקציה אשר מביאה את הערך של ה-title בעמוד שאנו נמצאים דוגמא: driver.getTitle(); […]

WebdriverCourse03

שיעור 3: זיהוי אלמנטים

לאחר פתיחת הדפדפן וניווט לדף עימו אנחנו נרצה לבדוק, כדאי לנו להכיר כעת את העבודה עם האלמנטים השונים בדף וכיצד אנו נזהה אותם. שתי פונקציות עיקריות בהן עובדים לזיהוי אלמנטים בדף הן: FindElement ו- FindElements. הראשונה מחזירה אובייקט של WebElement (זורקת Exception במידה ולא מצאה) והשנייה מחזירה רשימה של WebElements (מחזירה רשימה ריקה במידה ולא […]

WebdriverCourse04

שיעור 4: זיהוי אלמנטים מתקדם

בשיעור הקודם למדנו כיצד לזהות אלמנטים מסויימים על המסך עם סלניום , השיטות שהראתי היו מוגבלות למדיי , כל עוד יש id ייחודי, אז זה מצויין לעבוד איתו, אך מה נעשה במידה ולא נמצא Attribute ייחודי ? ומה אם נרצה לעבוד עם Customize Attribute אחד כזה שקיים רק במוצר שאני בודק ? למשל כאשר אני […]

WebdriverCourse05

שיעור 5: טיפול בפקדים

בשיעורים הקודמים ראינו כיצד ניתן לזהות אלמנטים על ה-DOM בדרכים שונות. כעת נלמד מה ניתן לעשות איתם לאחר הזיהוי, כיצד ניתן לטפל בהם. לכל פקד (אלמנט) יש דרך התמודדות שונה, אותה אנו נראה מיד.   Radio Button: הפקד הראשון ואולי הפשוט ביותר הוא כפתור הרדיו, כפי שניתן לראות בדוגמא כאן: כאשר הקוד שלו נראה כך: […]