目录
- 测试平台介绍
- 测试平台的价值
- 测试平台的设计
测试平台-学院平台案例
- 项目管理模块
- 项目搜索
- 项目新建
- 项目编辑
- 项目配置
- 团队管理
- 角色管理
测试平台-学院平台案例
- 支持自动化测试框架管理
- Web 自动化测试
- App 自动化测试
- 接口自动化测试
- 兼容性测试
- 支持多样化测试能力管理
- 性能测试
- 安全测试
- 大数据测试
测试平台-学院平台案例
- 测试报告管理
- 支持测试结果管理
- 支持多种测试能力的自定义报告管理
- 支持数据分析
- 支持用例趋势图、Bug 趋势图等图表管理
测试平台-学院平台案例
- 支持手工测试用例执行实时监控
- 支持自动化测试用例执行实时监控
- 支持多种测试能力的执行实时监控
其他案例
测试平台的个人价值
- 个人价值:
- 测试方案能力。(重要)
- 测试工具产品设计能力。(重要)
- 前后端的技术能力。
测试平台的产品价值
- 公司收益(提效):
- 提效
- 提升质量
- 降低成本
- 市场收益:
- 知名度与影响力
- 成熟的商业模式,也有巨大的市场空间。带来直接的创收。
- 代表产品: wetest、禅道、process on、figma
测试平台的“Timing”
- 需求: 公司需要测试能力服务化、平台化,比如整合内部的多套平台。
- 体系: 公司有成熟的测试体系:自动化测试、持续集成
- 人力: 有成熟的技术团队,包括前端、后端、测试开发三个角色
测试平台架构设计前提
- 掌握前端开发技能
- 掌握后端开发技能
- 数据库相关技能
- 测试平台的产品设计思路
技术-前端
- 界面展示
- 良好的用户体验
- 数据展示
- 相关技术: VUE、React 等
技术-后端
- 把控业务逻辑
- 数据库交互
- 相关技术:Flask、Django、SpringBoot
数据库
- 数据的持久化存储
- 数据操作
- 相关技术: MySQL、Oracle
测试平台-功能设计
测试平台业务架构
@startuml
scale 800 height
测试用例->测试平台 :从git zip中导入
测试用例->测试平台 :在线IDE编写
测试用例->测试平台 :基于数据自动生成用例
测试平台->数据库 :用例信息保存
测试平台->调度平台 :调度Task
测试用例->调度平台 :从git zip中导入用例
调度平台->测试报告 :执行用例
测试报告->测试平台 :回传测试结果
@enduml
测试用例管理
- 测试标题
- 测试套件
- 测试步骤
- 测试装置
- 测试断言
- 测试结果
- 测试执行器
参考知识 xUnit:https://en.wikipedia.org/wiki/XUnit
测试用例调度
- 定时任务
- 分布式
- 触发机制
- 拓展性配置
- 相关技术: Jenkins
测试平台后端架构
- 路由层(Controller)
- 服务层(Service)
- 数据层(Dao)
- DO 层(实体类)
cale 600 width
sprite $bProcess jar:archimate/business-process
sprite $aProcess jar:archimate/business-product
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
legend left
====
<$bProcess> : 路由层:处理接口数据、接口文档
<$aService> : 服务层:处理核心的业务逻辑
<$aComponent> : DAO层:数据库增删查改动作封装
<$aProcess> :DO层:存放实体类(数据表映射,没有任何实际意义)
endlegend
测试平台表结构
@startuml
'Sequence Diagram syntax and features
!define Table(name,desc) class name as “desc” << (T,#FFAAAA) >>
!define primary_key(x) color:redx
!define unique(x) color:greenx
!define not_null(x) x
hide methods
hide stereotypes
Table(项目, “项目\n(This is 项目)”){
not_null(id)
not_null(plan_id) int 测试计划id
}
Table(测试计划, “测试计划”){
not_null(id) int
not_null(case_id) int 关联用例id
not_null(执行器_id) int ForeignKey 执行器_id
not_null(build_id) int 测试记录
filter_by varchar 过滤条件
}
Table(测试类型, “测试类型”){
not_null(id) int
not_null(type) varchar 类型
not_null(framework) varchar 框架
not_null(command) varchar 命令
}
Table(测试用例, “测试用例”){
not_null(id) int
not_null(type_id) varchar 用例类型(git or json)
not_null(case_title) varchar 用例标题
not_null(case_info) varchar 用例信息
}
’ 计划和条件挂钩, 测试用例和测试套件多对多的关系
Table(测试套件, “测试套件”){
not_null(id) int
name str
}
Table(Plan2Suite, “Plan2Suite”){
not_null(id) int
not_null(id) suite_id
not_null(id) plan_id
}
Table(Testcase2Suite, “Testcase2Suite”){
not_null(id) int
not_null(id) suite_id
not_null(id) case_id
}
Table(执行器, “执行器”){
not_null(id) int column_1
not_null(执行器类型) varchar 执行器类型【jenkins】
执行器配置 varchar 执行器配置
}
Table(构建记录, “构建记录”){
not_null(id) int column_1
not_null(plan_id) varchar ForeignKey 测试计划id
not_null(report) varchar 测试报告
}
项目::plan_id–测试计划:项目对应多个测试计划
Plan2Suite::plan_id – 测试计划::id
Plan2Suite::suite_id – 测试套件::id
Testcase2Suite::case_id – 测试用例::id
Testcase2Suite::suite_id – 测试套件::id
执行器::id → 测试计划::id
测试用例::type_id – 测试类型::id
测试计划::id -->构建记录::plan_id : 测试计划对应多个构建记录
@enduml
教学版
'Sequence Diagram syntax and features
!define Table(name,desc) class name as “desc” << (T,#FFAAAA) >>
!define primary_key(x) color:redx
!define unique(x) color:greenx
!define not_null(x) x
hide methods
hide stereotypes
Table(测试用例, “测试用例”){
not_null(id) int
not_null(uid) varchar 用例唯一标识
not_null(remark) varchar 用例备注
}
Table(测试计划, “测试计划”){
not_null(id) int
not_null(name) str 名称
}
Table(构建记录, “构建记录”){
not_null(id) int column_1
not_null(plan_id) varchar ForeignKey 测试计划id
not_null(report) varchar 测试报告
not_null(created_at) time 创建时间
}
Table(PlanToTestcase, “PlanToTestcase”){
not_null(id) int
not_null(id) plan_id
not_null(id) case_id
}
测试计划::plan_id–构建记录: 一个测试计划对应多次构建记录
PlanToTestcase::case_id – 测试用例: 测试用例对应多个测试计划
PlanToTestcase::plan_id – 测试计划: 测试计划对应多个测试用例