自动化测试——Selenium Java 测试方案

自动化测试方案

自动化测试框架图

 自动化测试——Selenium Java 测试方案_第1张图片

  1. 测试用例使用单元测试框架
  2. 测试业务使用 Page-Object 设计模式
  3. 测试数据使用 数据驱动的方式 进行传入
    1. flat-file
      1. csv
      2. xml
      3. txt
      4. ...
    2. DataBase
      1. MySQL
      2. SQL Server
      3. MongoDB
  4. 底层封装 WebDriver

测试用例组织与执行

  • 测试集合 test suite
    • 测试用例的集合
      • 多个测试用例的类
      • 测试用例类的方法
  • 测试运行 运行 test suite

TestNG

testng.xml




    
        
            
                
                      
                    
                      
                      
                
             
            
                
                      
                    
                
            
        
     
 
    • 指定测试的类
    • 指定测试的类中的方法
      • include: 一个个方法包含进来
      • exclude: 去除指定的方法

Main.java

public class Main {
    public static void main(String[] args) {
        TestNG test = new TestNG();
        List suites = new ArrayList<>();
        suites.add("testng.xml");
        test.setTestSuites(suites);
        test.run();
    }
}

测试报告

TestNG 自带的测试报告 xml / html  

ReportNG 测试报告的插件,停止开发和支持。

          自动化测试——Selenium Java 测试方案_第2张图片 

Report detail page.

ExtentReport 测试报告

  • TestNG有默认的测试报告生成器 Listener
    • 使用 ExtentReport 重写一个 Listener
    • 让 TestNG 使用我们写好的 Listener 生成报告

步骤

引入 ExtentReport 到 pom.xml

  com.relevantcodes

  extentreports

  2.41.2

  • 目前 ExtentReport 有两个版本:2 和 3
    • 3 有付费版和开源版
    • 2 全部开源的
    • 官方网址:http://extentreports.com/community/ 

编写 Listener : ExtentReporterNgListener

@Override
public void generateReport(List xmlSuites, List suites, String outputDirectory) {
  Date date = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd_HHmmss");
  String time = formatter.format(date);

  String reportName = String.format("ExtentReportTestNG_%s.html", time);
  // 创建报告
  // NetworkMode.OFFLINE 支持断网查看报告
  this.extent = new ExtentReports(
    outputDirectory + File.separator + reportName,
    true, NetworkMode.OFFLINE);

  for (ISuite suite : suites) {
    Map result = suite.getResults();

    for (ISuiteResult r : result.values()) {
      ITestContext context = r.getTestContext();
      // 创建测试节点
      buildTestNodes(context.getPassedTests(), LogStatus.PASS);
      buildTestNod

你可能感兴趣的:(Java,自动化测试,java)