用例失败后截图

Webdriver take screen shot when case failed use TestNG

Is there a good way to capture screenshots when running tests in parallel on the method level?

In order to run tests in parallel, each individual test needs a unique driver instance. So, at any given time you have x number of driver instances running. When it comes time to capture a screenshot, how do you determine which driver to use?


If you create a base test class with access to the driver, then that driver will always be the correct driver

The following will achieve this;

All test classes must extend a simple base test class;

  1. public asbtract baseTestCase() {  
  2.   
  3.     private WebDriver driver;  
  4.   
  5.     public WebDriver getDriver() {  
  6.             return driver;  
  7. }  
  8.   
  9.     @BeforeMethod  
  10.     public void createDriver() {  
  11.             Webdriver driver=XXXXDriver();  
  12.     }  
  13.   
  14.     @AfterMethod  
  15.         public void tearDownDriver() {  
  16.         if (driver != null)  
  17.         {  
  18.                 try  
  19.                 {  
  20.                     driver.quit();  
  21.                 }  
  22.                 catch (WebDriverException e) {  
  23.                     System.out.println("***** CAUGHT EXCEPTION IN DRIVER TEARDOWN *****");  
  24.                     System.out.println(e);  
  25.                 }  
  26.   
  27.         }  
  28.     }  

 

In your listener, you need to access the base class;

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
    1. public class ScreenshotListener extends TestListenerAdapter {  
    2.   
    3. @Override  
    4. public void onTestFailure(ITestResult result)  
    5. {  
    6.         Object currentClass = result.getInstance();  
    7.         WebDriver webDriver = ((BaseTest) currentClass).getDriver();  
    8.   
    9.         if (webDriver != null)  
    10.         {  
    11.   
    12.            File f = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);  
    13.   
    14.            //etc.   
    15.         }  
    16. }  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值