Πώς να τραβήξετε ένα στιγμιότυπο οθόνης στο Selenium WebDriver



Αυτό το άρθρο σχετικά με τον τρόπο λήψης στιγμιότυπου οθόνης στο Selenium WebDriver σάς βοηθά να μάθετε πώς να τραβάτε το στιγμιότυπο οθόνης χρησιμοποιώντας τη μέθοδο TakesScreenshot και τους ακροατές TestNG

Το Automation Testing έχει καθορίσει μια νέα βρύση των σύγχρονων δοκιμών και είναι εδώ για να μείνετε. Ωστόσο, εάν η διαδικασία δοκιμής αποτύχει, θα ήταν άβολο να δοκιμάσετε ξανά ολόκληρο το σενάριο. Αυτό είναι όπου τα στιγμιότυπα οθόνης είναι χρήσιμα, καθώς βοηθούν στην άμεση ανίχνευση αστοχιών δοκιμής. Μέσω αυτού του ιστολογίου θα μάθουμε πώς να τραβάμε ένα στιγμιότυπο οθόνης Πρόγραμμα οδήγησης Web.

Θα συζητήσω τα ακόλουθα θέματα:

Ας ξεκινήσουμε λοιπόν, φίλοι!





Στιγμιότυπο οθόνης στο Selenium WebDriver: Γιατί απαιτείται στιγμιότυπο οθόνης στις δοκιμές αυτοματισμού;

Τα στιγμιότυπα οθόνης είναι επιθυμητά για ανάλυση σφαλμάτων. μπορεί να τραβήξει αυτόματα στιγμιότυπα οθόνης κατά την εκτέλεση. Ας υποθέσουμε ότι γράφετε ένα δοκιμαστικό σενάριο για να αυτοματοποιήσετε μια ιστοσελίδα, δεν θα συνεχίσετε να παρακολουθείτε για να δείτε αν λειτουργεί σωστά κάθε φορά. Θα αφήνατε το σενάριο να κάνει τη δουλειά του και θα ασχοληθήκατε με κάποια άλλη δουλειά.

διαφορά php μεταξύ ηχώ και εκτύπωσης
  • Τα στιγμιότυπα οθόνης μας βοηθούν στην κατανόηση της ροής της εφαρμογής και ελέγχουν εάν συμπεριφέρεται ανάλογα.
  • Πρέπει να πληκτρολογήσετε την παρουσία WebDriver στο TakesScreenshot.
  • Βοηθά κατά την εκτέλεση δοκιμή cross-browsing όπως ο χρήστης απαιτεί να δει τις αναφορές της εκτέλεσης
  • Η παρακολούθηση της εκτέλεσης θα ήταν πολύ εύκολη εάν εργάζεστε σε ένα πρόγραμμα περιήγησης χωρίς κεφαλή.
  • Το στιγμιότυπο οθόνης των δοκιμών που απέτυχαν μπορεί επίσης να ληφθεί εύκολα.

Τώρα, ας προχωρήσουμε και να μάθουμε πώς ακριβώς μπορείτε να τραβήξετε ένα στιγμιότυπο οθόνης κατά τη δοκιμή μιας εφαρμογής.



Στιγμιότυπο οθόνης στο Σελήνιο WebDriver: Πώς να καταγράψετε το Στιγμιότυπο οθόνης στο Σελήνιο;

Για να τραβήξουμε ένα στιγμιότυπο οθόνης στο Σελήνιο, μπορούμε να χρησιμοποιήσουμε μια διεπαφή, που ονομάζεται Λήψη στιγμιότυπου οθόνης. Αυτή η μέθοδος iπροσδιορίζει το πρόγραμμα οδήγησης, ότι μπορεί να τραβήξει ένα στιγμιότυπο οθόνης και να το αποθηκεύσει με διαφορετικούς τρόπους.

Σύνταξη:



Αρχείο αρχείου = ((TakesScreenshot) πρόγραμμα οδήγησης) .getScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.BASE64)

που Τύπος εξόδου καθορίζει τον τύπο εξόδου για ένα στιγμιότυπο οθόνης.

Για να τραβήξετε στιγμιότυπο οθόνης και να το αποθηκεύσετε σε μια συγκεκριμένη τοποθεσία, υπάρχει μια μέθοδος που ονομάζεται ' getScreenshotAs '

Ας το καταλάβουμε λεπτομερώς

Για επέκταση WebDriver Λήψη στιγμιότυπου οθόνης μέθοδος, αυτό κάνει την καλύτερη προσπάθεια ανάλογα με το πρόγραμμα περιήγησης για να επιστρέψει τα ακόλουθα με προτιμώμενη σειρά:

  • Ολόκληρη η σελίδα
  • Τρέχον παράθυρο
  • Ορατό τμήμα του τρέχοντος πλαισίου
  • Ένα στιγμιότυπο οθόνης ολόκληρης της οθόνης που περιέχει το πρόγραμμα περιήγησης
  • Όλο το περιεχόμενο του στοιχείου HTML - Το ορατό τμήμα του στοιχείου HTML

Σύνταξη:

Το X getScreenshotAs (OutputType (X). Target) ρίχνει το WebDriverException

που

  • Το X είναι ο τύπος επιστροφής της μεθόδου
  • Ο στόχος κρατά τη διεύθυνση προορισμού
  • Ρίχνει εάν η υποκείμενη εφαρμογή δεν υποστηρίζει τη λήψη στιγμιότυπου οθόνης.

Η δοκιμαστική υπόθεση απέτυχε

έχει παρουσιάσει μερικές εξαιρετικές νέες λειτουργίες που κάνουν τη δοκιμή μιας εφαρμογής πολύ πιο εύκολη. Αυτό συμβαίνει επειδή το επιτρέπει την αλληλεπίδραση εκτός του Javascript sandbox. Μία από τις νέες χρήσιμες λειτουργίες είναι η λήψη στιγμιότυπων οθόνης από το WebDriver.

Μπορείτε να τραβήξετε στιγμιότυπα οθόνης σε οποιοδήποτε στάδιο της δοκιμής, αλλά κυρίως χρησιμοποιείται για τη δοκιμή αποτυγχάνει και η λήψη στιγμιότυπων οθόνης βοηθά την ανάλυση, ώστε να μπορούμε να δούμε τι πήγε στραβά κατά την αποτυχία του τεστ. Αυτό μπορεί να γίνει χρησιμοποιώντας Σχολιασμοί TestNG.

Για να το κάνω αυτό, πρώτα, θα πρέπει

  • Δημιουργήστε μια τάξη και μετά εφαρμόστεΔοκιμήNG » ITestListener ' .
  • Στη συνέχεια, καλέστε μια μέθοδο «OnTestFailure» .
  • Προσθέστε τον κωδικό για να τραβήξετε το στιγμιότυπο οθόνης σε αυτήν τη μέθοδο.
  • Αντί να τραβήξετε απλώς το στιγμιότυπο οθόνης, λάβετε το όνομα της μεθόδου δοκιμής και τραβήξτε ένα στιγμιότυπο οθόνης με το όνομα της δοκιμής και τοποθετήστε το στο φάκελο προορισμού.

Τώρα, το ερώτημα είναι πώς να αποκτήσετε το αντικείμενο προγράμματος οδήγησης στην τάξη TestListeners χρησιμοποιώντας το TestNG;

Θα σας βοηθήσω να καταλάβετε πόσο εύκολο είναι να το κάνετε αυτό.

Για να τραβήξουμε ένα στιγμιότυπο οθόνης στο Σελήνιο, πρέπει να έχουμε ένα αντικείμενο προγράμματος οδήγησης. Αποκτήστε το πρόγραμμα οδήγησης από το ITestContext που πρέπει να ρυθμιστεί στη βασική ρύθμιση όπου είναι εύκολο να δημιουργήσετε την παρουσία προγράμματος οδήγησης. Ελπίζω να είστε ξεκάθαροι με αυτό. Προχωρώντας, θα ρίξουμε μια ματιά στο demo όπου θα σας βοηθήσω να καταλάβετε πόσο απλό είναι να τραβήξετε ένα στιγμιότυπο οθόνης στο Selenium.

Θα εξηγήσω δύο διαφορετικά προγράμματα εδώ, ώστε να πάρετε μια σωστή ιδέα για το πώς να τραβήξετε ένα στιγμιότυπο οθόνης στο Selenium.

Το πρώτο πρόγραμμα ασχολείται με τον τρόπο λήψης ενός στιγμιότυπου οθόνης της δοκιμαστικής θήκης που εκτελείται με επιτυχία. Το δεύτερο πρόγραμμα σας βοηθά να κατανοήσετε πώς να τραβήξετε ένα στιγμιότυπο οθόνης κατά τη διάρκεια της αποτυχίας του τεστ.

Στιγμιότυπο οθόνης στο Selenium WebDriver: Διαδήλωση

Το πρώτο πράγμα που πρέπει να κάνετε όταν θέλετε να δοκιμάσετε μια εφαρμογή ιστού είναι να έχετε τα αρχεία Selenium Jar και τις βιβλιοθήκες Java. Μπορείτε να επιλέξετε ένα IDE της επιλογής σας. Προτιμώ να δουλεύω στο Eclipse IDE γιατί είναι φιλικό προς τον χρήστη.

  • Θα ρυθμίσω το πρόγραμμα οδήγησης του προγράμματος περιήγησης
  • Εγκαταστήστε την παρουσία προγράμματος οδήγησης με το ChromeDriver.
  • Λάβετε τη διεύθυνση URL της ιστοσελίδας.
  • Εκτελέστε αντίστοιχες ενέργειες.

Σε αυτήν την περίπτωση, θα τραβήξω ένα στιγμιότυπο οθόνης της επίσημης ιστοσελίδας μας

δημιουργήστε μια τυχαία συμβολοσειρά java

Ανατρέξτε στον παρακάτω κωδικό:

εισαγωγή java.io.File εισαγωγή java.io.IOException import org.apache.commons.io.FileUtils εισαγωγή org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver import org.openqa .selenium.chrome.ChromeDriver δημόσια κλάση Οθόνη {public static void main (String [] args) ρίχνει την Εξαίρεση {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver driver = νέο driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) πρόγραμμα οδήγησης Πηγή αρχείου = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (πηγή, νέο αρχείο ('./ Στιγμιότυπα / οθόνη) .png ')) System.out.println ('το στιγμιότυπο οθόνης έχει ληφθεί') driver.quit ()}}

Η έξοδος για τον παραπάνω κώδικα απεικονίζεται παρακάτω:

ScreenOutput - Πώς να τραβήξετε στιγμιότυπο οθόνης στο Selenium - Edureka

Και ο φάκελος περιέχει την εικόνα

Τώρα, ας καταλάβουμε πώς να τραβήξουμε ένα στιγμιότυπο οθόνης του τεστ απέτυχε

  • Πρώτα,
  • Προσθέστε το αρχείο TestNG XML.
  • Προσθέστε τις εξαρτήσεις maven.
  • Δημιουργήστε μια κλάση BaseClass που κρατά την παρουσία WebDriver.
  • Ορίστε δύο συναρτήσεις, δηλαδή την αρχικοποίηση () και την αποτυχία ()
  • Καλέστε αυτές τις δύο λειτουργίες σε άλλη τάξη, διαδήλωση που κληρονομεί το BaseClass.
  • Αυτή η κλάση επίδειξης περιέχει τις δύο μεθόδους setUp () που καλούν τη λειτουργία αρχικοποίησης (), το tearDown () βοηθά στο κλείσιμο του προγράμματος οδήγησης και του ScreenshotTest () όπου διεκδικούμε την πραγματική και την αναμενόμενη έξοδο.
  • Σε αυτήν την περίπτωση, θα υποστηρίξω τόσο το αληθινό όσο και το λάθος που οδηγεί στην αποτυχία της δοκιμαστικής υπόθεσης.
  • Δημιουργήστε μια άλλη τάξη, το ListenersClass που βοηθά το WebDriver να ακούει τα συγκεκριμένα συμβάντα.
  • Προσθέστε αυτόν τον κωδικό στην τάξη επίδειξης @Listeners (ListenersClass.class) πριν από την κύρια λειτουργία για να ακούσετε τη δοκιμαστική περίπτωση.

Μπορείτε να ανατρέξετε σε αυτόν τον κωδικό:

πώς να γράψετε ειδοποίηση σε javascript

BaseClass

πακέτο com.edureka import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Listeners δημόσια τάξη BaseClass {public static WebDriver driver public static void initialization () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver. exe ') driver = νέο ChromeDriver () driver.get (' http://www.edureka.co/ ')} το δημόσιο κενό απέτυχε () {File srcFile = ((TakesScreenshot) πρόγραμμα οδήγησης) .getScreenshotAs (OutputType.FILE) δοκιμάστε {CatchUtils.copyFile (srcFile, new File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

πακέτο com.edureka import org.testng.Assert import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeMethod import org.testng.annotations.Listeners import org.testng.annotations.Test @Listeners (ListenersClass.class) δημόσια το class demo επεκτείνει το BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Ακροατές

package com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult δημόσια τάξη ListenersClass επεκτείνει το BaseClass υλοποιεί το ITestListener {public void onTestStart (αποτέλεσμα ITestResult) {// TODO Αυτόματη μέθοδος stub} δημόσιο άκυρο onTestSu (Αποτέλεσμα ITestResult) {// TODO Αυτόματη μέθοδος stub} public void onTestFailure (αποτέλεσμα ITestResult) {System.out.println ('Failed Test') απέτυχε ()} δημόσιο κενό onTestSkipped (αποτέλεσμα ITestResult) {// TODO Auto- δημιουργήθηκε μέθοδος stub} public void onTestFailedButWithinSuccessPercentage (αποτέλεσμα ITestResult) {// TODO Αυτόματη μέθοδος stub} public void onStart (περιβάλλον ITestContext) {// TODO Αυτόματη μέθοδος stub} public void onFinish (περιβάλλον ITestContext) {// TODO Auto -δημιουργία μεθόδου stub}}

Η έξοδος απεικονίζεται με αυτόν τον τρόπο:

Με αυτό, καταλήγουμε σε αυτό το ιστολόγιο «Πώς να τραβήξετε ένα στιγμιότυπο οθόνης στο Selenium WebDriver». Ελπίζω να απολαύσατε αυτό το άρθρο και να καταλάβετε πώς να εκτελέσετε μια δοκιμαστική θήκη. Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων του 'Πώς να τραβήξετε ένα στιγμιότυπο οθόνης στο Selenium WebDriver' και θα επικοινωνήσουμε μαζί σας. Αν θέλετε να μάθετε περισσότερα για το Selenium WebDriver και να δημιουργήσετε μια καριέρα στο ίδιο, τότε ρίξτε μια ματιά στο δικό μας που έρχεται με ζωντανή εκπαίδευση με καθοδήγηση εκπαιδευτή και πραγματική εμπειρία έργου. Αυτή η εκπαίδευση θα σας βοηθήσει να κατανοήσετε σε βάθος τις δοκιμές σεληνίου και να σας βοηθήσουμε να επιτύχετε τον έλεγχο του θέματος.