我正在尝试通过电子邮件发送我的范围报告。报告正在发送。问题是电子邮件中缺少我的范围报告中的屏幕截图。如果我在本地设备中打开报告,屏幕截图就在那里。
这是为了正在进行的 Selenium 测试。我正在为我的日志使用范围报告。我正在尝试通过电子邮件发送我的范围报告。报告正在发送。问题是电子邮件中缺少我的范围报告中的屏幕截图。如果我在本地设备中打开报告,屏幕截图就在那里。下面是我的 Listeners.java 的代码
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
public class Listeners implements ITestListener {
protected static WebDriver driver;
protected static ExtentReports reports;
public static ExtentTest test;
Base B = new Base();
public void onTestStart(ITestResult result) {
test = reports.startTest(result.getMethod().getMethodName());
test.log(LogStatus.INFO, result.getMethod().getMethodName() + " test started");
}
public void onTestSuccess(ITestResult result) {
test.log(LogStatus.PASS, result.getMethod().getMethodName() + " test passed");
}
public void onTestFailure(ITestResult result) {
test.log(LogStatus.FAIL, result.getMethod().getMethodName() + " test failed");
try {
B.getScreenshot(result.getName());
String file =
test.addScreenCapture("/Users/username/Documents/Eclipse-Workspace/Test/test-output/"+result.getName()+"screenshot.png");
test.log(LogStatus.FAIL, result.getMethod().getMethodName() + "test failed", file);
} catch (IOException e) {
e.printStackTrace();
}
}
public void onTestSkipped(ITestResult result) {
test.log(LogStatus.SKIP, result.getMethod().getMethodName() + " test skipped");
}
public void onStart(ITestContext context) {
System.out.println("Started");
driver = new ChromeDriver();
reports = new ExtentReports( "./test-output/Extentreports.html");
}
public void onFinish(ITestContext context) {
driver.close();
reports.endTest(test);
reports.flush();
}
}
我希望在收到电子邮件时查看测试失败时截取的屏幕截图。但现在我在通过电子邮件发送的范围报告中看到一个空的缩略图。
这个问题过去已被多次提出。快速搜索将为您指明正确的方向。
解决方案是以 zip 文件的形式通过电子邮件发送报告和屏幕截图,并确保图像相对于 Html 文件保存。
我是一名优秀的程序员,十分优秀!