小编try*_*an3的帖子

使用TestNG运行并行测试时捕获WebDriver屏幕截图

我目前正在通过分别覆盖TestTistenerAdapter方法onTestFailure和onTestSuccess来捕获有关TestNG失败和成功的屏幕截图.为此,您需要指定要截取屏幕截图的驱动程序.

我的问题:在方法级别并行运行测试时,是否有一种捕获屏幕截图的好方法?

为了并行运行测试,每个单独的测试都需要一个唯一的驱动程序实例.因此,在任何给定时间,您都有x个驱动程序实例在运行.在捕获屏幕截图时,您如何确定使用哪个驱动程序?

代码摘录如下:

public class OnFailureListener extends TestListenerAdapter {    

@Override   
public void onTestFailure(ITestResult tr) {     
   Screenshots.captureScreenshot(tr);

   super.onTestFailure(tr);             
}
Run Code Online (Sandbox Code Playgroud)

-

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(); }
}
Run Code Online (Sandbox Code Playgroud)

parallel-processing testng selenium screenshot webdriver

3
推荐指数
1
解决办法
4090
查看次数