Taoの小窝
首页项目博客照片墙音乐技能栈说说杂谈友链关于
封面

软件测试项目集:从手工测试到自动化测试的完整实践

写作时间:2025-09-05 14:30:00
# 软件测试
# 自动化测试
# 项目总结
# Playwright
# Selenium

项目背景

软件测试是保障软件质量的关键环节。对于测试初学者来说,最常见的问题不是没有学过理论知识,而是缺乏完整的项目实践经验。本项目集整合了 4 个完整的软件测试项目,覆盖 Web 功能测试、API 接口测试、Playwright UI 自动化测试、Selenium UI 自动化测试四大领域,形成一条从手工测试到自动化测试的完整学习路径。

项目目标

  • 建立完整的软件测试项目经验
  • 覆盖功能测试、接口测试、UI 自动化测试三大领域
  • 输出企业标准的测试计划、测试用例、Bug 报告、测试报告
  • 为简历提供可直接使用的项目描述与面试话术

项目总览

序号 项目名称 测试类型 技术栈 用例数 周期 通过率
1 Web 功能测试 手工测试 Chrome DevTools + Excel 30 条 2 周 83.3%
2 API 接口测试 接口测试 Postman + JavaScript 16 条 1 周 100%
3 Playwright 自动化 UI 自动化 Python + Playwright 10 条 1 周 90%
4 Selenium 自动化 UI 自动化 Python + Selenium 17 条 1 周 94.1%
合计 - - - 73 条 5 周 92%

项目结构

SoftwareTestingPortfolio/
├── Project1_WebFunctionalTesting/    # Web 功能测试
│   ├── 01_TestPlan/                  # 测试计划
│   ├── 02_TestCases/                 # 30 条测试用例
│   ├── 03_BugReports/                # 5 个 Bug 报告
│   └── 04_TestSummary/               # 测试总结报告
├── Project2_API_Testing/             # API 接口测试
│   ├── 01_RequirementsAnalysis/      # 需求分析
│   ├── 02_TestCases/                 # 16 个接口测试用例
│   ├── 03_PostmanScripts/            # Postman Tests 脚本
│   └── 04_TestReport/                # API 测试报告
├── Project3_PlaywrightTesting/       # Playwright 自动化测试
│   ├── 01_TestCode/                  # Page Object 框架 + 10 条用例
│   ├── 02_TestCases/                 # 自动化测试用例文档
│   └── 03_TestReport/                # 执行报告
├── Project4_SeleniumTesting/         # Selenium 自动化测试
│   ├── 01_TestCode/                  # Page Object 框架 + 17 条用例
│   ├── 02_TestCases/                 # 自动化测试用例文档
│   └── 03_TestReport/                # 执行报告
└── Resume/                           # 可直接投递的简历模板

项目一:Web 功能测试

测试对象

OpenCart 开源电商系统,一个功能完整的在线商城系统。

技术栈

  • 手工测试
  • Chrome DevTools(抓包、查看元素、模拟网络)
  • Xmind(思维导图梳理测试点)
  • Excel(测试用例与缺陷管理)

测试范围

覆盖电商系统的核心业务流程:

  • 用户注册与登录
  • 商品搜索与筛选
  • 购物车管理
  • 订单提交与支付

项目成果

  • 测试计划文档:包含测试策略、测试范围、准入准出标准、风险评估、资源安排。
  • 30 条测试用例:覆盖正向、逆向、边界场景。
  • 5 份 Bug 报告:其中包含 1 个 S1 级别严重 Bug——订单支付后库存未扣减。
  • 测试总结报告:缺陷统计、覆盖率分析、遗留风险。

印象深刻的 Bug

Bug 标题:订单支付成功后,商品库存未扣减

严重等级:S1(严重)

复现步骤:

  1. 登录系统并选择商品加入购物车。
  2. 进入结算页面完成支付。
  3. 查看商品库存数量。

预期结果:支付成功后,商品库存应相应扣减。

实际结果:库存数量没有变化,导致超卖风险。

根因分析:支付回调接口未正确触发库存扣减逻辑。

这个 Bug 直接体现了测试对业务风险的把控能力,也是面试中非常有说服力的案例。

项目二:API 接口测试

测试对象

JSONPlaceholder(https://jsonplaceholder.typicode.com/),一个免费的 REST API 练习平台。

技术栈

  • Postman
  • JavaScript 断言
  • Newman(命令行执行)

测试范围

分析并测试 8 个核心接口,覆盖:

  • GET:查询单个/列表资源
  • POST:创建资源
  • PUT:更新资源
  • DELETE:删除资源

项目成果

  • API 需求分析文档:梳理接口地址、请求方法、参数、响应结构。
  • 16 个接口测试用例:覆盖正常场景、异常场景、参数边界。
  • 5 个 Postman Tests 断言脚本:含逐行注释,便于学习。
  • API 测试报告:通过率 100%,平均响应时间 245ms。

Postman 断言示例

// 状态码断言
pm.test("状态码为 200", function () {
    pm.response.to.have.status(200);
});

// 响应时间断言
pm.test("响应时间小于 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});

// JSON 字段断言
pm.test("返回数据包含 id 字段", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("id");
});

项目三:Playwright 自动化测试

测试对象

OpenCart 演示网站。

技术栈

  • Python 3.10+
  • Playwright
  • Pytest
  • Page Object Model(POM)

项目成果

  • 完整的 Page Object 自动化测试框架。
  • 10 个自动化测试用例。
  • 详细的代码注释和项目说明。
  • 测试执行报告,通过率 90%。

核心设计

Page Object 模式将页面元素定位和页面操作封装到单独的类中,测试用例只关注业务流程。例如登录操作:

LoginPage(driver).open_login().login("test@example.com", "Password123")

这样当页面元素变化时,只需要修改页面对象类,而不需要改动大量测试用例。

项目四:Selenium 自动化测试

测试对象

TodoMVC Vue.js 版本,一个经典的待办事项应用。

技术栈

  • Python 3.10+
  • Selenium 4.15
  • Pytest
  • Page Object Model
  • pytest-html

项目成果

  • 完整的 Selenium 自动化测试框架。
  • 17 个自动化测试用例。
  • 包含数据驱动测试和参数化测试。
  • 测试执行报告,通过率 94.1%。

Selenium 与 Playwright 对比

对比项 Selenium Playwright
安装复杂度 需要手动下载浏览器驱动 自动安装驱动
API 设计 传统 WebDriver 协议 现代化 API,支持自动等待
执行速度 相对较慢 更快
社区生态 社区更大,资料更多 更新,功能更强大
浏览器支持 支持多种浏览器 主要支持 Chromium、Firefox、WebKit

技术栈覆盖

✅ 功能测试:手工测试
✅ 接口测试:Postman + JavaScript 断言
✅ Web 自动化:Playwright + Selenium
✅ 测试框架:Pytest
✅ 设计模式:Page Object 模式
✅ 数据驱动:Pytest 参数化
✅ 测试报告:Pytest-html

面试话术

问:你做过什么测试项目?

我做过 4 个测试项目,累计覆盖功能测试、接口测试和 UI 自动化测试。

项目一是电商网站的 Web 功能测试,设计了 30 条测试用例,覆盖注册登录、商品搜索、购物车、订单支付,发现 5 个 Bug,其中 1 个是 S1 级别的库存未扣减问题。

项目二是 REST API 接口测试,使用 Postman 对 JSONPlaceholder 进行测试,设计 16 个用例,编写 Tests 断言脚本,通过率 100%。

项目三是基于 Python + Playwright 的 Web UI 自动化测试,使用 Page Object 模式完成 10 个用例。

项目四是基于 Python + Selenium 的自动化测试,完成 17 个用例,通过率 94.1%。

问:测试用例怎么设计?

主要使用三种方法:

  1. 等价类划分:把输入数据分成若干等价类,每个类选一个代表测试。
  2. 边界值分析:重点测试边界条件,很多 Bug 出现在边界处。
  3. 正逆向思维:正向验证功能正常,逆向验证系统容错能力。

此外还要考虑优先级划分、场景覆盖和异常处理。

问:发现 Bug 后怎么处理?

  1. 确认问题:多次复现,排除环境和操作因素。
  2. 记录信息:标题、复现步骤、预期结果、实际结果、截图/日志、严重等级。
  3. 提交报告:通过 Bug 管理系统提交。
  4. 跟进修复:与开发沟通,修复后进行回归测试。

写在最后

这个项目集最大的价值在于完整性和可复用性。从测试计划到测试报告,从手工测试到自动化测试,每个项目都有明确的输入、过程和输出。无论是作为学习材料,还是作为简历中的项目经验,都能清晰展示测试工程师应有的系统性思维和实践能力。

avatar

Tao

在数据与代码间探索的普通人 / 数据科学与大数据技术专业大三学生,坐标陕西西安。热爱技术实践与数据分析,正在找测试、数据分析方向的实习。

RECOMMENDED

Python + Pytest + Requests 接口自动化测试框架:从零搭建可维护的分层式测试工程

2025-12-20 12:00:00

数据分析入门:从数据清洗到可视化

2025-09-15 10:00:00

从零开始的数据分析学习项目:清洗、探索、可视化与机器学习入门

2025-08-15 10:00:00

Table of Contents