רשומות

מציג פוסטים מתאריך נובמבר, 2017

Nunit | בדיקות מבוססות נתונים - Data Driven Tests

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



בדוגמאות אציג: קבלת פרמטרים רגילים לבדיקה - Parametrized Testקבלת רשימת פרמטרים לבדיקה - TestCaseSourceקבלת פרמטרים לבדיקה מקובץ חיצוני - External TestCaseSource הנושא הינו נושא בסיסי ומוכר מאוד בתחום הבדיקות וחשוב להכירו לעומק.

דרישות קדם: תכנות בסיסי בC#, היכרות עם NUnit
תחילה נדבר על תרחיש הבדיקות עליו נתבסס במהלך המדריך


התרחיש בסיסי מאוד - מקבל מספר כפרמטר ומדפיס את המספר בכפולה של 2.

איך התרחיש יקבל מספר כפרמטר? קבלת פרמטרים רגילים לבדיקה - Parametrized Test באמצעות הכנסת פרמטרים ב-TestCase attribute, ניתן לתת לתרחיש הבדיקה שלנו נתונים לעבוד איתם. זה יקרה באופן הבא:
[TestCase(123)] public void DoubleTheNumber(int num) {         Console.WriteLine(num * 2); }
כעת num יקבל את השלם - 123 כפרמטר.
נריץ את הבדיקה ונוכל לצפות בפלט שלה באופן הבא:

זוהי הדרך הבסיסית והפשוטה ביותר להכנסת פרמטרים לTest.

אבל מה אם יהיה לנו יותר מתרחיש בדיקה אחד במחלקה ונרצה להכניס…

מדריך | אוטומציה באמצעות Selenium | חלק 4 - מציאת אלמנטים (המחלקה By)

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

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

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

דרישות קדם: ידע בסיסי בC# וביצוע שלושת המדריכים הקודמים בסדרה (1,2,3).


המחלקה By במדריך על אובייקט WebDriver הצגתי את הפעולה FindElement אשר מקבלת את אובייקט מסוג By כפרמטר.
במילים אחרות, הפעולה FindElement שואלת: "לפי מה תרצה שאמצא לך אלמנט?"

המחלקה By מכילה מספר פעולות סטטיות אשר יתנו לפעולה FindElement את המענה הנדרש.

אז מהן האופציות למציאת אלמנט? המחלקה By מכילה את הפעולות הבאות:

By.ClassName() ל HTML  יש מגוון רחב של attributes. attributes יופיעו בתוך האלמנטים, לדוגמה: <a href="automatzia.com">המקום לפיתוח תוכנה ואוטומציה</a> href הינו attribute של האלמנט a.
מכאן ניתן להבין כי ()By.ClassName, ימצא את האלמנט על פי הערך של Attribute בשם Class. By.CssSelector() CSS Selectors משמשים בעיקר במציאת אלמנטי H…

מדריך | אוטומציה באמצעות Selenium | חלק 3 - WebElement

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

במדריך של היום אדבר על מהו WebElement ואסקור את ממשק IWebElement.

מה זה WebElement? WebElement היא המחלקה בC# אשר מייצגת אלמנט HTML.
כל דף HTML מורכב מתגיות שונות, כל אחת בעלת יעוד ומשמעות שונה - לרוב תגית פתיחה ולאחר מכן תגית סגירה. ניתן לראות דוגמה לכך באמצעות לחיצה על המקש הימני בשטח הדפדפן ולאחר מכן לחיצה על צפה במקור הדף (ctrl+U).

לדוגמה, התגית <head> - יכולה להכיל את כותרת הדף, סקריפטים, קבצי עיצוב ועוד..
לפני שניכנס לפרטי האובייקט, כדאי שנבין כיצד אנחנו יוצרים ומאתחלים אותו.
במדריך המבוא הצגתי בקצרה פקודה שנקראת FindElement, פקודה מורכבת בפני עצמה שעליה אדבר לעומק בפוסט הבא. יצרנו אובייקט בממשק IWebElement ודרך פקודה זו קיבלנו WebElement לאתחל באובייקט.

ניתן לראות שהאלמנט נמצא באמצעות Id, ולאחר מציאת האלמנט ניתן היה לשלוח לו פקודות.
פקודות IWebElement לממשק מגוון פקודות שתפקידן לשל…

מדריך | אוטומציה באמצעות Selenium | חלק 2 - אובייקט WebDriver

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

דרישות קדם: הכירות עם תכנות בסיסי ב C#, היכרות עם תשתית הבדיקה NUnit, קריאת המדריך הראשון על Selenium.

על מנת לבצע פעולות על הדפדפן אנחנו מאתחלים אובייקט WebDriver (לדוגמה Chrome) בממשק IWebDriver.



ממשק IWebDriver מחצין עבורנו את הפונקציונליות אשר ניתנת לביצוע על הדפדפן שלנו.
היום אסקור חלק קטן אך חשוב ובסיסי מאוד מהפונקציונליות שתשתית Selenium נותנת לנו לבצע על דפדפן.

IWebDriver לאחר שיצרנו עצם בממשק IWebDriver, נוכל לצפות בIntellisense של העצם שיצרנו ולראות את כל הפונקציונליות הקיימת והמוחצנת עבור העצם:


כעת אדבר בקצרה על כל הפונקציות הרלוונטיות לנו כרגע. driver.Close() ניתן לצפות בהסבר על כל פונקציה, כולל מה היא מקבלת ומחזירה, באמצעות סימונה:
כאן לדוגמה ניתן לראות ש Close היא פונקציה שמחזירה Void (זאת אומרת כלום) ולא מקבלת פרמטר. הפונקציה תסגור את החלון הנוכחי או את הדפדפן עצמו. driver.FindElement…