基于Java+Selenium的WebUI自动化测试框架

Posted generalli2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Java+Selenium的WebUI自动化测试框架相关的知识,希望对你有一定的参考价值。

     基于上一篇的内容,这里我们开始写监听类Listener。我这里写监听类的思路是,继承TestListenerAdapter这个类,然后对其中的方法进行重写。网上也有很多资料,建议先学习一下,然后写出来。

package webui.xUtils;

import org.openqa.selenium.WebDriver;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.Reporter;
import org.testng.TestListenerAdapter;


public class TestNGListener extends TestListenerAdapter
   private static WebDriver driver; 
   logUtil log = new logUtil(TestNGListener.class); 
   public static void setDriver(WebDriver driver)     
      TestNGListener.driver = driver;    

     

  @Override

  //用例执行结束后,用例执行成功时调用
  public void onTestSuccess(ITestResult tr)     
    log.info("测试步骤成功完成。"+"------Test Success!");    
    Reporter.log("测试步骤成功完成。"+"------Test Success!");
    super.onTestSuccess(tr);    
     
  @Override

  //用例执行结束后,用例执行失败时调用
  public void onTestFailure(ITestResult tr)     
    log.error("测试步骤执行失败。"+"------Test Failure!");    
    Reporter.log("测试步骤执行失败。"+"------Test Failure!");
    super.onTestFailure(tr);

    //发生错误后截图的功能可以根据实际需求进行添加。
    //ScreenShot screenShot = new ScreenShot(driver);    
    //获取当前project目录    
    //String path = System.getProperty("user.dir").replace("\\", "/");    
    //加上时间戳以区分截图    
    //    String curTime = TimeUtil.formatDate("yyyy-MM-dd");    
    //screenShot.saveScreenShot(path + "/img/", "testFail" + ".png");    
     
  @Override

  //用例执行结束后,用例执行skip时调用
  public void onTestSkipped(ITestResult tr)     
    log.error("测试执行步骤跳过。"+"------Test Skipped!");    
    Reporter.log("测试执行步骤跳过。"+"------Test Skipped!");
    super.onTestSkipped(tr);    
     
  @Override

  //每次调用测试@Test之前调用
  public void onTestStart(ITestResult tr)     
    log.info("------测试开始。内容:" + tr.getMethod().getDescription() +"------Start!");    
    Reporter.log("------测试开始。内容:" + tr.getMethod().getDescription() +"------Start!");
    super.onTestStart(tr);    
     
  @Override

  //在所有测试运行之后调用,并且所有的配置方法都被调用
  public void onFinish(ITestContext testContext)     
    log.info("------结束:"+" ------Test Finish!");    
    Reporter.log("------结束:"+" ------Test Finish!");
    super.onFinish(testContext);    
     

     这样,我们完成了对监听类的编写,在实际写测试用例的代码时候,加入注释@Listener(TestNGListener.class),并且在进行初始化driver的时候来设置driver即可。例如:TestNGListener.setDriver(driver);

以上是关于基于Java+Selenium的WebUI自动化测试框架的主要内容,如果未能解决你的问题,请参考以下文章

基于Java+Selenium的WebUI自动化测试框架--IE浏览器的设置

webUI自动化之基本框架搭建(python + selenium + unittest)

Selenium高手必备:基于WebDriver的Web UI自动化

基于python实现UI自动化1.0 selenium工具介绍

webUI自动化测试框架---”pyswat“介绍

Selenium 上手:Selenium扫盲区