需求分析与规划
在需求分析阶段,测试需与开发对齐接口定义、业务逻辑、数据依赖及异常处理规则,通过会议、文档共享和代码审查确保测试范围与开发实现一致。
1. 接口范围确定
- 数据来源:
- 开发提供的 Swagger/OpenAPI 文档(主来源)
- 抓包工具(如 Charles)捕获前端实际调用接口
- 与开发确认文档缺失的业务逻辑(如权限校验规则)
2. 核心接口筛选
- 筛选标准:
- 高频操作:用户登录、知识搜索、收藏等
- 高风险:密码修改、数据删除、支付接口
- 复杂逻辑:推荐算法、权限验证、防刷机制
3. 业务场景梳理
- 输出物:
- 场景清单(示例):
- 用户注册→邮箱验证→首次登录
- 搜索知识→筛选→触发推荐→查看详情
- 发表评论→含敏感词→触发审核→通知作者
- 接口依赖图:用 XMind 标注接口调用顺序及数据传递关系
4. 测试用例规划
- 关键规划点:
- 正向用例:覆盖核心业务流程(如知识发布全流程)
- 异常用例:边界值(如超长字符串)、非法参数(如 SQL 注入)、网络中断
- 数据驱动设计:将测试数据(如用户名、密码)与用例分离
5. 风险与资源评估
- 风险点:
- 接口变更频繁(需与开发建立同步机制)
- 环境不稳定(提前规划测试环境优先级)
- 工具选型:
- 接口管理:Postman/ApiPost(导入 Swagger)
输出物:
- 接口清单(含优先级)
- 场景流程图(BPMN 格式)
- 用例设计模板(含正向 / 异常场景)
技术选型与环境搭建
一、技术选型
测试框架
- Python
unittest+ddt(数据驱动)- 支持测试用例组织、断言、参数化
HTTP 请求
requests库(封装 HTTP 请求)requests-toolbelt(处理 multipart/form-data 上传)数据管理
- Excel(
openpyxl读写测试数据)- Faker(生成随机测试数据)
数据库操作
pymysql(MySQL 数据库连接与查询)- 支持测试数据初始化和断言校验
工具链
logging(日志记录)unittestreport(HTML 报告生成)- Jenkins(持续集成)
二、环境搭建
配置管理
setting.py统一管理接口地址、数据库配置、鉴权信息等- 支持动态参数替换(如
#user_name#)目录结构
|-- conf # 配置文件 |-- test_datas # Excel测试数据 |-- tools # 工具类(数据库操作、请求封装、数据处理) |-- test_cases # 测试用例核心工具类
- 数据处理:
HandleExcel(Excel 读写)、HandleReplace(参数替换)- 接口操作:
HandleRequests(请求封装)、HandleResponse(响应断言)- 数据库:
HandleDb(数据库连接与查询)- 辅助工具:
HandleExtract(全局变量提取)、HandleLog(日志记录)测试环境部署
- 测试服务器与生产环境配置一致
- 初始化测试数据库(通过
HandleDb执行 SQL)- 图片上传路径等静态资源管理
三、关键实现
参数化测试
- Excel 驱动测试数据(
@ddt+@data)- 支持动态参数替换(如手机号、时间戳)
接口依赖处理
- 通过
HandleExtract提取响应中的 Token / 参数- 全局变量管理(
HandleAttr类)数据库断言
- 执行 SQL 校验数据(
HandleDb+HandleAssertDb)- 支持复杂


2452

被折叠的 条评论
为什么被折叠?



