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

本文详细介绍了使用Selenium Java进行自动化测试的方案,包括测试用例设计、数据驱动、报告生成等方面。同时,文章探讨了持续集成的概念,解释了Jenkins在持续集成中的作用,以及如何配置和实践Jenkins Job。强调了自动化测试在项目中的重要性和团队建设的策略,推荐使用Jenkins进行自动化冒烟测试。
摘要由CSDN通过智能技术生成

自动化测试方案

自动化测试框架图

 

  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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
    <test name="SolutionSelenium">
        <classes>
            <class name="cases.LoginTests">
                <methods>
                      <!-- 添加指定的测试 -->
                    <include name="testLoginByCsv"/>
                      <include name="testLoginByCsv2"/>
                      <include name="testLoginByCsv3"/>
                </methods>
            </class> <!-- cases.LoginTests -->
            <class name="cases.AdminTests">
                <methods>
                      <!-- 去除指定的测试 -->
                    <exclude name="testAddMember"/>
                </methods>
            </class>
        </classes>
    </test> <!-- SolutionSelenium -->
</suite> <!-- Default Suite -->
    • 指定测试的类
    • 指定测试的类中的方法
      • include: 一个个方法包含进来
      • exclude: 去除指定的方法

Main.java

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

测试报告

TestNG 自带的测试报告 xml / html  

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

           

Report detail page.

ExtentReport 测试报告

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

步骤

引入 ExtentReport 到 pom.xml

<dependency>

  <groupId>com.relevantcodes</groupId>

  <artifactId>extentreports</artifactId>

  <version>2.41.2</version>

</dependency>

编写 Listener : ExtentReporterNgListener

@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> 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<String, ISuiteResult> result = suite.getResults();

    for (ISuiteResult r : result.values()) {
      ITestContext context = r.getTestContext();
      // 创建测试节点
      buildTestNodes(context.getPassedTests(), LogStatus.PASS);
      b
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值