Как сделать снимок экрана неудачных тестов с помощью Selenium WebDriver:
Ранее я публиковал подробный пост о том, как сделать снимок экрана с помощью Selenium WebDriver. Если вы пропустили это, вы можете проверить подробный пост о том, как сделать снимок экрана с помощью Selenium WebDriver.
Если скрипт не работает, нам нужно знать, где была ошибка в скрипте. Решением этой проблемы является создание снимка экрана веб-страницы в случае сбоя тестового примера. Мы могли бы легко определить, где именно произошел сбой скрипта, увидев снимок экрана.
Для этого мы могли бы поместить весь код в блок try-catch. Это означает размещение тестовых шагов в блоке try и оператора захвата экрана в блоке catch. Если тестовый шаг завершается ошибкой в блоке try, он переходит в блок catch и делает снимок экрана веб-страницы.
В приведенном ниже сценарии показано, как сделать снимок экрана неудачных тестов с помощью Selenium WebDriver.Java
123456789101112131415161718192021222324252627282930 | пакет программного обеспечения TestingMaterial; импорт java.io.File; импорт org.apache.commons.io.FileUtils; импорт org.openqa.selenium.OutputType; импорт org.openqa.selenium.TakesScreenshot; импорт org.openqa.selenium.WebDriver; импорт org.openqa. selenium.firefox.FirefoxDriver;импорт org.testng.annotations.Test; public class CaptureScreenshot {@Testpublic static void captureScreenMethod() throws Exception{ System.setProperty(“webdriver.gecko.driver”,”D://Selenium Environment//Drivers//geckodriver.exe”);WebDriver driver = new FirefoxDriver( );driver.manage().window().maximize(); try{ driver.get(“https://www.softwaretestingmaterial.com”); водитель.навигация().обновить(); //driver.findElement(By.xpath(“//*[@id='cse-search-box']/div/input[4]”)).sendKeys(“agile”); //Утверждение с правильным Xpath driver.findElement(By.xpath(“//*[@id='cse']”)).sendKeys(“agile”); //Утверждение с неправильным Xpath }catch(Exception e){ File screenshotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(screenshotFile, new File(“D:\SoftwareTestingMaterial.png”));} driver.close();driver.quit();}} |
Еще один способ сделать снимок экрана с ошибкой тестовые случаи с использованием Selenium WebDriver должны использовать интерфейс ITestResult.
Интерфейс ITestResult предоставляет статус выполнения тестового набора и имя тестового набора
Мы помещаем шаги захвата экрана в отдельный метод, используя аннотацию AfterMethod TestNG. Если мы используем аннотацию TestNG AfterMethod, то этот конкретный метод (AfterMethod) выполняется после каждого выполнения теста.
В приведенном ниже сценарии показано, как сделать снимок экрана с помощью ITestResult Interface.Java
12345678910111213141516171819202122232425262728293031323333435363738394041424344454647 | пакет softwareTestingMaterial;импорт java.io.File;импорт org.apache.commons.io.FileUtils;импорт org.openqa.selenium.By;импорт org.openqa.selenium.OutputType;импорт org.openqa.selenium.TakesScreenshot;импорт org. .openqa.selenium.WebDriver;импорт org.openqa.selenium.firefox.FirefoxDriver;импорт org.testng.ITestResult;импорт org.testng.annotations.AfterMethod;импорт org.testng.annotations.Test; public class ScreenshotFailedCases {//Create Webdriver referencestatic WebDriver driver; @Testpublic static void captureScreenMethod() throws Exception{System.setProperty(“webdriver.gecko.driver”,”D://Selenium Environment//Drivers//geckodriver.exe” );драйвер = новый FirefoxDriver();driver.manage().window().maximize();driver.get(“https://www.softwaretestingmaterial.com”);driver.navigate().refresh(); //driver.findElement(By.xpath(“//*[@id='cse-search-box']/div/input[4]”)).sendKeys(“agile”); //Утверждение с правильным Xpathdriver.findElement(By.xpath(“//*[@id='cse']”)).sendKeys(“agile”); //Утверждение с неправильным Xpath}@AfterMethod //Аннотация AfterMethod — этот метод выполняется после каждого выполнения теста ==result.getStatus()){try{//Чтобы создать ссылку на драйвер TakesScreenshotTakesScreenshot screenshot=(TakesScreenshot);//Вызовите метод для захвата скриншотаFile src=screenshot.getScreenshotAs(OutputType.FILE);//Скопируйте файлы в указанное место //result.getName() вернет имя тестового примера, так что имя снимка экрана будет таким же, как имя тестового примера nameFileUtils.copyFile(src, new File(“D:\”+result.getName()+”.png”) );System.out.println(“Снимок экрана успешно сделан”);}catch (Exception e){System.out.println(“Исключение при создании снимка экрана”+e.getMessage());}}driver.quit() ;}} |
Если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вам подписаться на бесплатную рассылку новостей по электронной почте по ссылке ниже.
TAG: qa