我目前分别重写TestListenerAdapter方法onTestFailure和onTestSuccess的方式捕获的失败和成功的截图TestNG中。 为了做到这一点,你需要指定要采取的截屏的驱动程序。
我的问题:是否有方法级并行运行测试时捕获屏幕截图的好办法?
为了并行运行测试,每个测试需要一个唯一的驱动程序实例。 所以,在任何给定的时间,你必须运行驱动程序实例的x个。 当谈到时间来捕获屏幕截图,你如何确定要使用的驱动程序?
代码摘录如下:
public class OnFailureListener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult tr) {
Screenshots.captureScreenshot(tr);
super.onTestFailure(tr);
}
-
public static void captureScreenshot(ITestResult tr) {
WebDriver driver = TestClass.driver;
if (driver instanceof TakesScreenshot) {
String filename = "path/to/screenshot/file";
try {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(filename));
} catch (IOException e) { e.printStackTrace(); }
}