כיצד לקחת צילום מסך בסלניום



מאמר זה על אופן צילום מסך ב- Selenium WebDriver עוזר לכם ללמוד כיצד לצלם את המסך באמצעות שיטת TakesScreenshot ומאזינים TestNG

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

אדון בנושאים הבאים:

אז בואו נתחיל, אנשים!





צילום מסך ב- Selenium WebDriver: מדוע נדרשת צילום מסך בבדיקות אוטומציה?

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

  • צילומי מסך עוזרים לנו להבין את זרימת היישום ובודקים אם זה מתנהג בהתאם.
  • עליך להקליד מופע WebDriver ל- TakesScreenshot.
  • זה עוזר בזמן שאתה מופיע בדיקת גלישה רוחבית כפי שהמשתמש דורש להציג את דוחות הביצוע
  • מעקב אחר הביצוע יהפוך לקל בהרבה אם אתה עובד על דפדפן ללא ראש.
  • ניתן לצלם בקלות גם צילום מסך של הבדיקות שנכשלו.

עכשיו, הבה נתקדם ונלמד כיצד בדיוק אתה יכול לצלם צילום מסך תוך כדי בדיקת יישום.



צילום מסך בסלניום WebDriver: כיצד לצלם צילום מסך בסלניום?

כדי לצלם צילום מסך בסלניום, נוכל להשתמש בממשק שנקרא TakesScreenshot. שיטה זו iמציין את הנהג שהוא יכול לצלם צילום מסך ולאחסן אותו בדרכים שונות.

תחביר:



קובץ קובץ = ((TakesScreenshot) הנהג) .getScreenshotAs (OutputType.FILE) מחרוזת screenshotBase64 = ((TakesScreenshot) מנהל התקן) .getScreenshotAs (OutputType.BASE64)

איפה OutputType מגדיר את סוג הפלט לצילום מסך.

על מנת לצלם צילום מסך ולאחסן אותו במיקום מסוים, קיימת שיטה הנקראת “ getScreenshotAs '

בואו נבין זאת בפירוט

להרחבת WebDriver TakesScreenshot בשיטה, זה עושה את מירב המאמצים בהתאם לדפדפן להחזיר את הדברים הבאים בסדר עדיף:

  • כל העמוד
  • חלון נוכחי
  • חלק גלוי מהמסגרת הנוכחית
  • צילום מסך של כל התצוגה המכילה את הדפדפן
  • כל התוכן של אלמנט ה- HTML - החלק הגלוי של אלמנט ה- HTML

תחביר:

X getScreenshotAs (OutputType (X). יעד) זורק WebDriverException

איפה

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

מקרה הבדיקה נכשל

העלה כמה פונקציות חדשות נהדרות שהופכות את בדיקת היישום לקלה בהרבה. הסיבה לכך היא ש מאפשר אינטראקציה מחוץ לארגז החול של Javascript. אחת הפונקציונליות השימושית החדשה היא היכולת לצלם צילומי מסך מ- WebDriver.

אתה יכול לצלם צילומי מסך בכל שלב במבחן, אך בעיקר, הוא משמש למבחן נכשל וצילומי מסך עוזרים לניתוח כדי שנוכל לראות מה השתבש במהלך כשל במבחן. ניתן לעשות זאת באמצעות הערות TestNG.

כדי לעשות זאת, ראשית, אצטרך

  • צור כיתה ואז יישםTestNG ‘ ITestListener ' .
  • ואז קוראים לשיטה 'OnTestFailure' .
  • הוסף את הקוד כדי לצלם את המסך בשיטה זו.
  • במקום פשוט לקחת את צילום המסך, קבל את שם שיטת הבדיקה וצלם צילום מסך עם שם הבדיקה והניח אותו בתיקיית היעד.

כעת, השאלה היא כיצד להשיג את אובייקט הנהג בכיתה TestListeners באמצעות TestNG?

כיצד להשתמש בכוח בפייתון

אני אעזור לך להבין כמה קל לעשות את זה.

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

אסביר כאן על שתי תוכניות שונות כדי שתקבל מושג נכון כיצד לצלם צילום מסך בסלניום.

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

צילום מסך ב- Selenium WebDriver: הַדגָמָה

מיין אלגוריתמים c ++

הדבר הראשון שיש לעשות כאשר אתה רוצה לבדוק יישום אינטרנט הוא לקבל את קבצי Selenium Jar ואת ספריות Java. אתה יכול לבחור IDE לפי בחירתך. אני מעדיף לעבוד על Eclipse IDE מכיוון שהוא ידידותי למשתמש.

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

במקרה זה אקח צילום מסך של דף האינטרנט הרשמי שלנו

עיין בקוד שלהלן:

ייבא java.io.File ייבוא ​​java.io.IOException ייבא org.apache.commons.io.FileUtils יבוא org.openqa.selenium.OutputType ייבוא ​​org.openqa.selenium.TakesScreenshot ייבוא ​​org.openqa.selenium.WebDriver ייבוא ​​org.openqa .selenium.chrome.ChromeDriver מחלקה ציבורית מסך {public static void main (String [] args) זורק Exception {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') מנהל התקן WebDriver = ChromeDriver חדש driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) מנהל התקן מקור קובץ = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (מקור, קובץ חדש ('./ Screenshots / Screen .png ')) System.out.println (' צילום המסך נלקח ') driver.quit ()}}

הפלט של הקוד לעיל מתואר להלן:

ScreenOutput - כיצד לצלם צילום מסך בסלניום - אדוריקה

והתיקיה מכילה את התמונה

עכשיו, בואו להבין כיצד לצלם צילום מסך של הבדיקה נכשל

  • ראשון,
  • הוסף את קובץ ה- XML ​​של TestNG.
  • הוסף את התלות של maven.
  • צור מחלקת BaseClass המחזיקה את מופע WebDriver.
  • הגדר שתי פונקציות כלומר אתחול () ונכשל ()
  • קרא לשתי הפונקציות האלה בכיתה אחרת, הַדגָמָה אשר יורש את ה- BaseClass.
  • מחלקת הדגמה זו מחזיקה בשתי השיטות setUp () המכנה את פונקציית האתחול (), tearDown () מסייע בסגירת מנהל ההתקן ו- ScreenshotTest () שם אנו קובעים את הפלט הממשי והצפוי.
  • במקרה זה, אני אצהיר נכון וגם לא נכון, מה שמביא לכישלון מקרה הבדיקה.
  • צור מחלקה אחרת, ListenersClass המסייעת ל- WebDriver להאזין לאירועים הספציפיים.
  • הוסף קוד זה בכיתת ההדגמה @Listeners (ListenersClass.class) לפני הפונקציה הראשית על מנת להאזין למקרה הבדיקה.

אתה יכול להתייחס לקוד זה:

BaseClass

חבילה com.edureka יבוא java.io.File ייבוא ​​java.io.IOException ייבוא ​​org.apache.commons.io.FileUtils יבוא org.openqa.selenium.OutputType ייבוא ​​org.openqa.selenium.TakesScreenshot יבוא org.openqa.selenium.WebDriver ייבוא ​​org.openqa.selenium.chrome.ChromeDriver ייבוא ​​org.testng.annotations.Listeners מחלקה ציבורית BaseClass {נהג WebDriver סטטי ציבורי אתחול ריק סטטי פומבי () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriverrwin_32. exe ') driver = ChromeDriver () driver.get חדש (' http://www.edureka.co/ ')} חלל ציבורי נכשל () {File srcFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE) נסה {FileUtils.copyFile (srcFile, קובץ חדש ('/ C: / משתמשים / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} לתפוס (IOException e) {e.printStackTrace ()}} }

DemoClass

חבילה com.edureka יבוא org.testng.Assert ייבוא ​​org.testng.annotations.AfterMethod ייבוא ​​org.testng.annotations.BeforeMethod ייבוא ​​org.testng.annotations.Listeners יבוא org.testng.annotations.Test @Listeners (listenersClass.class) ציבורי הדגמת מחלקה מרחיבה את BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public ruid tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

מאזינים קלאס

חבילה com.edureka ייבוא ​​org.testng.ITestContext ייבוא ​​org.testng.ITestListener ייבוא ​​org.testng.ITestResult מחלקה ציבורית listenersClass מרחיב BaseClass מיישם ITestListener {חלל ציבורי onTestStart (תוצאת ITestResult) {// TODO אוטומטית שיטה שנוצרה stub} בטל ציבורי onTestTest (תוצאת ITestResult) {// TODO שיטה שנוצרה אוטומטית stub} חלל ציבורי onTestFailure (תוצאת ITestResult) {System.out.println ('בדיקה נכשלה') נכשל ()} חלל ציבורי onTestSkipped (תוצאת ITestResult) {// TODO אוטומטי- שיטה שנוצרה stub} חלל ציבורי onTestFailedButWithinSuccessPercentage (ITestResult תוצאה) {// TODO שיטה שנוצרה אוטומטית stub} בטל ציבורי onStart (הקשר ITestContext) {// TODO שיטה שנוצרה אוטומטית stub} בטל ציבורי onFinish (הקשר ITestContext) {// TODO אוטומטי שורש שיטה נוצר}}

התפוקה מתוארת באופן זה:

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