开源自动测试怎么搭建?

wen 开源项目 61

本文目录导读:

开源自动测试怎么搭建?

  1. 第一阶段:选型与基础环境搭建 (工具安装)
  2. 第二阶段:核心框架搭建 (代码与结构)
  3. 第三阶段:持续集成与自动化执行 (CI/CD)
  4. 进阶开源方案推荐 (不同场景)
  5. 常见问题与避坑指南
  6. 总结:一个“最小可行”搭建步骤

搭建开源自动化测试框架并没有一个“万能公式”,因为最佳方案取决于你测试的对象(Web、App、API)、团队的技术栈和预算,但你可以遵循一套成熟且成本极低的组合方案。

下面是一个使用Java (或 Python) + Selenium (Web) / Appium (App) + TestNG (或 Pytest) + Allure (报告) + Jenkins (CI/CD) 的通用搭建流程。

这是目前互联网公司最主流的开源全链路方案。

第一阶段:选型与基础环境搭建 (工具安装)

你需要安装以下工具:

  1. 编程语言环境:Java 8/11 (或 Python 3.8+),并配置好环境变量。
  2. 开发工具:IntelliJ IDEA (社区版免费) 或 VS Code。
  3. 构建工具
    • Java 选 Maven 或 Gradle。
    • Python 选 pip + virtualenv。
  4. 浏览器驱动:ChromeDriver(需与本地Chrome版本匹配),或 geckodriver(Firefox)。
  5. 测试运行器:Java 选 TestNG (或 JUnit5),Python 选 Pytest。

第二阶段:核心框架搭建 (代码与结构)

以一个典型的 Java + Maven + Selenium + TestNG + Allure 项目为例:

步骤 1:创建 Maven 项目并配置 pom.xml

在 IDEA 中新建 Maven 项目,在 pom.xml 中添加关键依赖:

<!-- Selenium 核心库 -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>最新稳定版</version>
</dependency>
<!-- 测试框架 TestNG -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>最新版</version>
</dependency>
<!-- Allure 报告适配与日志 -->
<dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-testng</artifactId>
    <version>最新版</version>
</dependency>
<!-- WebDriverManager (自动管理浏览器驱动) -->
<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>最新版</version>
</dependency>

步骤 2:封装核心基类 (解耦与复用)

BaseTest.java - 公共测试基类(包含启动/关闭浏览器,截图等):

import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
public class BaseTest {
    protected WebDriver driver;
    @BeforeClass
    public void setUp() {
        // 自动下载匹配的ChromeDriver (无需手动配置)
        WebDriverManager.chromedriver().setup();
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--headless"); // 无头模式(服务器运行)
        // options.addArguments("--remote-allow-origins=*");
        driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get("https://www.example.com");
    }
    @AfterClass
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

步骤 3:编写实际测试用例 (业务逻辑)

LoginTest.java

import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.Test;
public class LoginTest extends BaseTest {
    @Test(description = "验证用户使用有效凭据登录")
    public void testSuccessfulLogin() {
        driver.findElement(By.id("username")).sendKeys("admin");
        driver.findElement(By.id("password")).sendKeys("password123");
        driver.findElement(By.id("loginBtn")).click();
        String welcomeText = driver.findElement(By.cssSelector(".welcome-msg")).getText();
        Assert.assertTrue(welcomeText.contains("Welcome"));
    }
}

步骤 4:配置测试套件与报告

testng.xml - 控制哪些用例执行:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Suite">
    <test name="Login Test">
        <classes>
            <class name="com.yourpackage.LoginTest"/>
        </classes>
    </test>
</suite>

第三阶段:持续集成与自动化执行 (CI/CD)

步骤 1:配置 Jenkins (或其他CI工具,如GitLab CI、GitHub Actions)

  1. 安装 Jenkins:下载 war 包或使用 Docker 运行。

  2. 安装插件:Maven Integration、Allure Jenkins Plugin、Git Plugin。

  3. 新建流水线任务

    • 源码管理:关联你的 Git 仓库。
    • 构建触发器:配置 Poll SCM 或 Webhook(代码提交自动触发)。
    • Build:调用 Maven 执行 clean test

    Jenkinsfile (流水线脚本)

    pipeline {
        agent any
        tools {
            maven 'maven-3.8'
            jdk 'jdk11'
        }
        stages {
            stage('Checkout') {
                steps {
                    git 'https://github.com/your/repo.git'
                }
            }
            stage('Run Tests & Generate Report') {
                steps {
                    sh 'mvn clean test -DsuiteXmlFile=testng.xml'
                }
                post {
                    always {
                        allure includeProperties: true
                    }
                }
            }
        }
    }

步骤 2:查看报告

构建完成后,Jenkins 上会生成 Allure Report,包含:测试通过率、耗时、失败截图、步骤日志等。

进阶开源方案推荐 (不同场景)

  • 接口测试Postman + Newman (配合 Jenkins 运行),或 Java Rest Assured / Python Requests
  • 移动端测试 (App)Appium + Appium Inspector (定位元素)。
  • 性能测试JMeter (开源,非常成熟),或 Gatling (基于Scala,性能报表更酷)。
  • UI 低代码Katalon Studio (免费版功能也够用),适合非技术团队。
  • 前端测试 (单测):Jest (React)、Vitest / Mocha (Vue)。

常见问题与避坑指南

  1. 元素定位不到:优先使用 idname,其次是 data-testid (前端埋点),再次是 XPath (尽量用相对路径)。
  2. 等待问题永远不要用 Thread.sleep(),统一使用 显式等待 (WebDriverWait + ExpectedConditions)。
  3. 环境隔离:把 URL、账号密码等信息写在 config.propertiesYAML 中,通过读取配置文件切换 (测试环境/预发布环境)。
  4. 数据准备:用 ExcelJSON 文件驱动数据 (Data Driven Testing)。

一个“最小可行”搭建步骤

  1. 安装 IDEA + JDK + Maven + Chrome。
  2. 创建 Maven 项目,把上面的 pom.xmlBaseTest 代码粘贴进去。
  3. 写一个测试用例类(如 LoginTest.java)。
  4. 右键 testng.xml -> Run -> 运行成功
  5. 配置 Jenkins 拉取代码并执行 mvn test

这个流程走下来,你的第一套开源自动测试框架就跑起来了,之后可以慢慢加入 Page Object Model (POM) 模式、重试机制、邮件通知等功能。

抱歉,评论功能暂时关闭!