测试工程师能力展示平台
基于图书馆管理系统实战项目的测试技能演示
🔗 关联项目:图书馆管理系统
本平台的所有测试演示都基于 图书馆管理系统 进行。
系统地址:http://oywangzhan.cn/library/
后台管理:http://oywangzhan.cn/phpmyadmin/
测试账号:admin / password
📡 API 接口自动化测试
📌 模块说明
基于 pytest + requests 框架,对图书馆管理系统的 RESTful API 进行自动化测试。
测试目标:http://oywangzhan.cn/library/api.php
覆盖接口:获取图书、搜索、添加、用户、分类、借阅记录、统计数据
# test_api.py - API 接口测试用例 import requests import pytest BASE_URL = "http://oywangzhan.cn/library/api.php" class TestLibraryAPI: def test_get_books(self): """测试获取图书列表""" resp = requests.get(f"{BASE_URL}?action=get_books") assert resp.status_code == 200 assert len(resp.json()["data"]) > 0 def test_search_books(self): """测试搜索功能""" resp = requests.get(f"{BASE_URL}?action=search_books&keyword=算法") assert len(resp.json()["data"]) >= 1 def test_get_stats(self): """测试统计数据""" resp = requests.get(f"{BASE_URL}?action=get_stats") data = resp.json()["data"] assert "total_books" in data
🗄️ 数据库完整性测试
📌 模块说明
使用 Python pymysql 连接 MySQL 数据库,验证表结构、数据完整性、约束条件。
数据库:library | 地址:phpMyAdmin
测试内容:表是否存在、数据是否完整、字段类型是否正确
# test_database.py import pymysql class TestDatabase: def setup_class(self): self.conn = pymysql.connect( host="localhost", user="wpuser", password="WpPass2024!", database="library" ) def test_tables_exist(self): """验证所有表都存在""" cursor = self.conn.cursor() cursor.execute("SHOW TABLES") tables = [t[0] for t in cursor.fetchall()] assert "books" in tables assert "users" in tables
🌐 Selenium UI 自动化测试
📌 模块说明
使用 Selenium WebDriver 模拟用户操作浏览器,验证 Web 页面功能。
测试目标:http://oywangzhan.cn/library/
测试内容:页面加载、登录流程、搜索功能、添加图书弹窗
# test_ui.py - Selenium UI 测试 from selenium import webdriver from selenium.webdriver.common.by import By class TestLibraryUI: def setup_method(self): self.driver = webdriver.Chrome() self.driver.get("http://oywangzhan.cn/library/") def test_login_success(self): self.driver.find_element(By.ID, "loginUsername").send_keys("admin") self.driver.find_element(By.ID, "loginPassword").send_keys("password") self.driver.find_element(By.CLASS_NAME, "btn-primary").click() def test_book_search(self): search = self.driver.find_element(By.ID, "searchInput") search.send_keys("算法")
⚡ API 性能测试
📌 模块说明
模拟多用户并发访问 API,测试响应时间和系统稳定性。
测试目标:获取图书接口
可配置并发数和请求数,实时显示 QPS、平均响应时间
📋 测试用例管理
📌 模块说明
管理测试用例的全生命周期:设计 → 执行 → 结果记录
支持按模块、状态筛选,实时统计通过率
🐛 Bug 管理系统
📌 模块说明
缺陷生命周期管理:发现 → 分配 → 修复 → 验证 → 关闭
支持优先级分类、状态流转、筛选过滤
🔌 API 在线调试工具
📌 模块说明
类似 Postman 的在线 API 调试工具,可直接调用图书馆系统 API。
API 地址:http://oywangzhan.cn/library/api.php
🔄 CI/CD 持续集成流程
📌 模块说明
基于 Jenkins 的自动化流水线,实现代码提交 → 自动测试 → 构建部署 → 通知
工具:Jenkins + Docker + Git
# Jenkinsfile pipeline { agent any stages { stage('Checkout') { steps { git '...' } } stage('Install') { steps { sh 'pip install -r requirements.txt' } } stage('Test') { steps { sh 'pytest tests/ --junitxml=report.xml' } } stage('Build') { steps { sh 'docker build -t app .' } } stage('Deploy') { steps { sh 'docker-compose up -d' } } } }
📊 标准测试流程
需求分析
分析产品需求文档,提取测试点,确定测试范围和优先级
测试计划
制定测试策略、安排测试资源、估算测试周期、确定测试环境
用例设计
编写测试用例,覆盖功能、边界、异常场景,评审用例
环境搭建
部署测试环境,准备测试数据,配置测试工具
执行测试
运行测试用例,记录缺陷,回归验证,输出测试报告
测试报告
汇总测试结果,评估发布风险,输出测试报告,给出发布建议
📄 测试文档模板
📌 模块说明
标准测试文档体系,包含测试计划、测试用例、缺陷报告、测试报告
| 项目名称 | 图书馆管理系统 |
| 测试范围 | 图书管理、用户管理、借阅管理、搜索功能 |
| 测试类型 | 功能测试、接口测试、性能测试、安全测试 |
| 测试环境 | Ubuntu 22.04 / Apache / MySQL 8.0 / PHP 8.1 |
| 测试工具 | pytest、Selenium、requests、JMeter |
| 完成标准 | 用例通过率 ≥ 95%,无严重缺陷 |
| 编号 | 测试点 | 步骤 | 预期结果 | 优先级 |
|---|---|---|---|---|
| TC001 | 获取图书列表 | 访问图书管理页面 | 显示所有图书 | P0 |
| TC002 | 搜索图书 | 输入关键词搜索 | 显示匹配结果 | P0 |
| TC003 | 添加图书 | 填写信息并提交 | 图书添加成功 | P0 |
| TC004 | 借阅图书 | 选择图书借阅 | 库存减少,记录生成 | P1 |
| TC005 | 归还图书 | 点击归还 | 库存恢复,状态更新 | P1 |
| 缺陷ID | BUG-2026-001 |
| 标题 | 搜索中文关键词时返回空结果 |
| 严重程度 | P1 高 |
| 复现步骤 | 1. 打开图书管理页面 2. 在搜索框输入"算法" 3. 观察结果 |
| 预期结果 | 显示包含"算法"的图书 |
| 实际结果 | 显示空结果 |
| 状态 | 已修复 |
| 测试结论 | 系统功能基本完善,满足上线要求 |
| 遗留缺陷 | 2个低优先级缺陷,不影响主流程 |
| 风险评估 | 低风险,建议发布后持续监控 |
| 建议 | 增加性能测试,优化数据库查询 |
🎨 文档展示
专业测试文档,可在线预览或下载
📊 流程图集
专业测试流程图与架构图