Files
makemd/docs/04_Test_Guide.md
2026-03-30 16:55:04 +08:00

5.7 KiB
Raw Blame History

测试指南

1. 测试概述

Crawlful Hub 项目采用了全面的测试策略,包括单元测试、集成测试和系统测试,确保系统的稳定性和可靠性。本指南详细介绍了项目的测试方法和测试策略。

2. 测试环境

2.1 硬件要求

  • CPU: 至少 2 核
  • 内存: 至少 4GB
  • 磁盘: 至少 50GB 可用空间

2.2 软件要求

  • Java: JDK 17 或更高版本
  • MySQL: 8.0 或更高版本
  • Redis: 6.0 或更高版本
  • Maven: 3.6 或更高版本
  • JUnit 5: 项目集成的测试框架

3. 测试类型

3.1 单元测试

单元测试是对系统中最小的可测试单元进行测试,通常是对单个方法或类的测试。单元测试的目的是验证每个单元是否按照预期工作。

核心测试类

  • AuthServiceTest.java:测试认证服务的功能
  • OrderServiceTest.java:测试订单服务的功能
  • ProductServiceTest.java:测试商品服务的功能

3.2 集成测试

集成测试是对系统中多个组件的交互进行测试,验证组件之间的协作是否正确。集成测试的目的是确保系统的各个组件能够正确地协同工作。

核心测试类

  • SystemIntegrationTest.java:测试整个系统的集成功能

3.3 系统测试

系统测试是对整个系统的功能进行测试,验证系统是否满足需求规格。系统测试的目的是确保系统能够按照预期工作,满足用户的需求。

测试方法

  • 使用 API 文档测试 API 接口
  • 使用健康检查端点测试系统状态
  • 使用监控端点测试系统性能

4. 测试工具

4.1 JUnit 5

JUnit 5 是 Java 中最流行的测试框架用于编写和运行单元测试。Crawlful Hub 项目使用 JUnit 5 进行单元测试和集成测试。

4.2 Mockito

Mockito 是一个用于 Java 的 mocking 框架用于创建和配置模拟对象。Crawlful Hub 项目使用 Mockito 模拟依赖对象,便于单元测试。

4.3 Spring Test

Spring Test 是 Spring 框架提供的测试工具,用于测试 Spring 应用。Crawlful Hub 项目使用 Spring Test 测试 Spring 组件。

4.4 Postman

Postman 是一个用于测试 API 的工具,用于发送 HTTP 请求并查看响应。Crawlful Hub 项目使用 Postman 测试 API 接口。

5. 测试执行

5.1 运行单元测试

  1. 进入项目目录:

    cd d:\trae_projects\makemd\makemd\serverjava
    
  2. 执行单元测试:

    mvn test
    

5.2 运行集成测试

  1. 进入项目目录:

    cd d:\trae_projects\makemd\makemd\serverjava
    
  2. 执行集成测试:

    mvn verify -Pintegration-test
    

5.3 运行系统测试

  1. 启动系统:

    java -jar target/serverjava-0.0.1-SNAPSHOT.jar
    
  2. 使用 Postman 测试 API 接口:

    • 访问 http://localhost:3001/api/api-docs,获取 API 文档
    • 使用 Postman 发送请求,测试 API 接口
  3. 使用健康检查端点测试系统状态:

    • 访问 http://localhost:3001/api/v1/monitoring/health
  4. 使用监控端点测试系统性能:

    • 访问 http://localhost:3001/api/v1/monitoring/metrics

6. 测试策略

6.1 测试覆盖率

Crawlful Hub 项目的测试覆盖率目标是:

  • 单元测试覆盖率:至少 80%
  • 集成测试覆盖率:至少 60%
  • 系统测试覆盖率:至少 40%

6.2 测试用例设计

测试用例设计遵循以下原则:

  • 边界值测试:测试边界条件,如空值、最大值、最小值等
  • 等价类测试:测试等价类,如有效输入、无效输入等
  • 异常测试:测试异常情况,如参数错误、系统错误等
  • 场景测试:测试实际场景,如用户注册、登录、下单等

6.3 测试数据

测试数据的设计遵循以下原则:

  • 真实数据:使用真实的业务数据进行测试
  • 边界数据:使用边界值进行测试
  • 异常数据:使用异常数据进行测试
  • 覆盖所有场景:确保测试数据覆盖所有业务场景

7. 测试报告

7.1 单元测试报告

运行单元测试后Maven 会生成单元测试报告,位于 target/surefire-reports 目录。

7.2 集成测试报告

运行集成测试后Maven 会生成集成测试报告,位于 target/failsafe-reports 目录。

7.3 代码覆盖率报告

使用 JaCoCo 插件生成代码覆盖率报告,位于 target/site/jacoco 目录。

8. 测试最佳实践

8.1 单元测试最佳实践

  • 测试单个方法:每个单元测试只测试一个方法
  • 使用断言:使用断言验证测试结果
  • 模拟依赖:使用 Mockito 模拟依赖对象
  • 测试边界条件:测试边界值和异常情况
  • 保持测试简单:测试代码应该简洁明了

8.2 集成测试最佳实践

  • 测试组件交互:测试组件之间的协作
  • 使用真实依赖:使用真实的依赖对象
  • 测试业务流程:测试完整的业务流程
  • 保持测试独立:每个集成测试应该独立运行

8.3 系统测试最佳实践

  • 测试完整功能:测试系统的完整功能
  • 使用真实环境:使用真实的环境进行测试
  • 测试用户场景:测试实际的用户场景
  • 性能测试:测试系统的性能

9. 测试自动化

Crawlful Hub 项目使用 Maven 进行测试自动化,配置了以下测试目标:

  • mvn test:运行单元测试
  • mvn verify:运行单元测试和集成测试
  • mvn clean package:构建项目并运行测试

10. 总结

本测试指南详细介绍了 Crawlful Hub 项目的测试方法和测试策略。通过本指南,您可以了解如何编写和运行测试,确保系统的稳定性和可靠性。