测试工程师能力展示平台

基于图书馆管理系统实战项目的测试技能演示

🔗 关联项目:图书馆管理系统

本平台的所有测试演示都基于 图书馆管理系统 进行。
系统地址:http://oywangzhan.cn/library/
后台管理:http://oywangzhan.cn/phpmyadmin/
测试账号:admin / password

🛠️ 技术栈
Python pytest Selenium requests MySQL Jenkins
📚 功能导航
📡
API 接口测试
自动化接口验证
🗄️
数据库测试
数据完整性验证
🌐
UI 自动化
页面功能测试
⚡
性能测试
压力与负载测试
📋
用例管理
用例设计与执行
🐛
Bug 管理
缺陷跟踪管理
🔄
CI/CD
持续集成流程
📄
测试文档
文档模板

📡 API 接口自动化测试

📌 模块说明

基于 pytest + requests 框架,对图书馆管理系统的 RESTful API 进行自动化测试。
测试目标:http://oywangzhan.cn/library/api.php
覆盖接口:获取图书、搜索、添加、用户、分类、借阅记录、统计数据

测试代码
Python pytest requests
# 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
0
总用例
0
通过
0
失败
0
耗时(ms)

🗄️ 数据库完整性测试

📌 模块说明

使用 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、平均响应时间

0
总请求
0
成功
0
平均响应(ms)
0
QPS

📋 测试用例管理

📌 模块说明

管理测试用例的全生命周期:设计 → 执行 → 结果记录
支持按模块、状态筛选,实时统计通过率

0
总用例
0
未执行
0
通过
0
失败
通过率:
0%

🐛 Bug 管理系统

📌 模块说明

缺陷生命周期管理:发现 → 分配 → 修复 → 验证 → 关闭
支持优先级分类、状态流转、筛选过滤

0
总计
0
待处理
0
处理中
0
已修复

🔌 API 在线调试工具

📌 模块说明

类似 Postman 的在线 API 调试工具,可直接调用图书馆系统 API。
API 地址:http://oywangzhan.cn/library/api.php

快捷接口:

🔄 CI/CD 持续集成流程

📌 模块说明

基于 Jenkins 的自动化流水线,实现代码提交 → 自动测试 → 构建部署 → 通知
工具:Jenkins + Docker + Git

📝 代码提交Git Push
→
🧪 自动测试pytest
→
📦 构建打包Docker
→
🚀 部署上线ECS
→
📧 结果通知邮件
# 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' } }
    }
}

📊 标准测试流程

1

需求分析

分析产品需求文档,提取测试点,确定测试范围和优先级

↓
2

测试计划

制定测试策略、安排测试资源、估算测试周期、确定测试环境

↓
3

用例设计

编写测试用例,覆盖功能、边界、异常场景,评审用例

↓
4

环境搭建

部署测试环境,准备测试数据,配置测试工具

↓
5

执行测试

运行测试用例,记录缺陷,回归验证,输出测试报告

↓
6

测试报告

汇总测试结果,评估发布风险,输出测试报告,给出发布建议

📄 测试文档模板

📌 模块说明

标准测试文档体系,包含测试计划、测试用例、缺陷报告、测试报告

📝 测试计划
项目名称图书馆管理系统
测试范围图书管理、用户管理、借阅管理、搜索功能
测试类型功能测试、接口测试、性能测试、安全测试
测试环境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
🐛 缺陷报告模板
缺陷IDBUG-2026-001
标题搜索中文关键词时返回空结果
严重程度P1 高
复现步骤1. 打开图书管理页面
2. 在搜索框输入"算法"
3. 观察结果
预期结果显示包含"算法"的图书
实际结果显示空结果
状态已修复
📊 测试报告
96%
通过率
48
总用例
46
通过
2
失败
测试结论系统功能基本完善,满足上线要求
遗留缺陷2个低优先级缺陷,不影响主流程
风险评估低风险,建议发布后持续监控
建议增加性能测试,优化数据库查询

🎨 文档展示

专业测试文档,可在线预览或下载

📝

测试计划文档

Test Plan Document

文档编号:TP-LIBRARY-2026-001

版本:V1.0

包含:项目背景、测试范围、策略、环境、进度、风险

⬇ 下载
📊

测试报告

Test Report

项目:图书馆管理系统 V1.0

通过率:95.8% (46/48)

包含:测试概况、结果统计、缺陷分析、结论

⬇ 下载
📋

测试用例文档

Test Cases Document

用例数:13 个

覆盖:图书管理、借阅管理、用户管理

包含:编号、测试点、步骤、预期结果、优先级

⬇ 下载

📊 流程图集

专业测试流程图与架构图

📋 测试生命周期流程图
需求分析 测试计划 用例设计 测试执行 缺陷管理 测试报告
🐛 Bug 生命周期
New Assigned Fixed Verified Closed Reopen
🔧 自动化测试架构图
测试用例层 - pytest / Selenium 测试框架层 - requests / pytest-html / Allure 测试数据层 - fixtures 报告层 - HTML / Allure 被测系统 - 图书馆管理系统
🔄 CI/CD 流水线
Git Push Jenkins pytest Docker Deploy ✓
🗄️ 数据库 ER 关系图
categories id (PK) name description books id (PK) isbn, title, author category_id (FK) total, available_copies users id (PK) username, password role borrow_records id (PK) user_id (FK) | book_id (FK) borrow_date | due_date | status 1:N 1:N 1:N