Снимок экрана не отображается в TestNGResults под Jenkins - PullRequest
1 голос
/ 06 июня 2019

Я использую метод onTestFailure для отображения скриншота ошибки в результатах TestNG.Я использую Jenkins для запуска своего теста, но изображение не отображается в результатах TestNG, однако оно отображается как ссылка, и при нажатии на эту ссылку разбросанного изображения ничего не происходит.Когда я копирую ссылку на изображение с помощью мыши и пытаюсь открыть ее в браузере, изображение отображается правильно, что означает, что путь к изображению правильный.

public class ScreenshotListener extends  TestListenerAdapter {

    @Override
    public void onTestFailure(ITestResult result) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
        String methodName = result.getName();
        //String pathToScreen;

        if(!result.isSuccess()){
            File scrFile = ((TakesScreenshot)GlobalVar.wDriver).getScreenshotAs(OutputType.FILE);
            try {
                String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "/target/surefire-reports";
                File destFile = new File((String) reportDirectory+"/failure_screenshots/"+methodName+"_"+formater.format(calendar.getTime())+".png");

                FileUtils.copyFile(scrFile, destFile);
                Reporter.log("<a href='"+ destFile.getAbsolutePath() + "'> <img src='"+ destFile.getAbsolutePath() + "' height='100' width='100'/> </a><br />");
            }catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

Я ожидаю, что ссылка на изображение должна отображать правильный скриншот ошибки, но этопоказывает пустой скриншот.Я приложил скриншот TestNGResults enter image description here

ДАЛЬНЕЙШИЙ РЕЗУЛЬТАТ ИССЛЕДОВАНИЯ:

Я исследовал его дальше и нашел причину не показывать скриншот.На самом деле путь к скриншоту выглядит как ** C: \ SelWrokspaceLuna 18 мая \ RDTest \ target \ surefire-reports \ fault_screenshots \, но путь к рабочей области jenkin равен **http://localhost:8080/job/firstjob/ws/target/surefire-reports/failure_screenshots/

Может кто-нибудь подсказать, как получить путь к Jenkinрабочая область в сценарии селена?так что я могу дать путь к рабочей области jenkin в моем HTML.Как узнать этот путь http://localhost:8080/job/firstjob/ws в сценарии селена

...