本文目录导读:

- 第一阶段:选型与基础环境搭建 (工具安装)
- 第二阶段:核心框架搭建 (代码与结构)
- 第三阶段:持续集成与自动化执行 (CI/CD)
- 进阶开源方案推荐 (不同场景)
- 常见问题与避坑指南
- 总结:一个“最小可行”搭建步骤
搭建开源自动化测试框架并没有一个“万能公式”,因为最佳方案取决于你测试的对象(Web、App、API)、团队的技术栈和预算,但你可以遵循一套成熟且成本极低的组合方案。
下面是一个使用Java (或 Python) + Selenium (Web) / Appium (App) + TestNG (或 Pytest) + Allure (报告) + Jenkins (CI/CD) 的通用搭建流程。
这是目前互联网公司最主流的开源全链路方案。
第一阶段:选型与基础环境搭建 (工具安装)
你需要安装以下工具:
- 编程语言环境:Java 8/11 (或 Python 3.8+),并配置好环境变量。
- 开发工具:IntelliJ IDEA (社区版免费) 或 VS Code。
- 构建工具:
- Java 选 Maven 或 Gradle。
- Python 选 pip + virtualenv。
- 浏览器驱动:ChromeDriver(需与本地Chrome版本匹配),或 geckodriver(Firefox)。
- 测试运行器: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)
-
安装 Jenkins:下载 war 包或使用 Docker 运行。
-
安装插件:Maven Integration、Allure Jenkins Plugin、Git Plugin。
-
新建流水线任务:
- 源码管理:关联你的 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)。
常见问题与避坑指南
- 元素定位不到:优先使用
id、name,其次是data-testid(前端埋点),再次是XPath(尽量用相对路径)。 - 等待问题:永远不要用
Thread.sleep(),统一使用 显式等待 (WebDriverWait + ExpectedConditions)。 - 环境隔离:把 URL、账号密码等信息写在
config.properties或 YAML 中,通过读取配置文件切换 (测试环境/预发布环境)。 - 数据准备:用 Excel 或 JSON 文件驱动数据 (Data Driven Testing)。
一个“最小可行”搭建步骤
- 安装 IDEA + JDK + Maven + Chrome。
- 创建 Maven 项目,把上面的
pom.xml和BaseTest代码粘贴进去。 - 写一个测试用例类(如
LoginTest.java)。 - 右键
testng.xml-> Run -> 运行成功。 - 配置 Jenkins 拉取代码并执行
mvn test。
这个流程走下来,你的第一套开源自动测试框架就跑起来了,之后可以慢慢加入 Page Object Model (POM) 模式、重试机制、邮件通知等功能。