jck8-lucio-测试平台设计

目录

  • 测试平台介绍
  • 测试平台的价值
  • 测试平台的设计

测试平台-学院平台案例

  • 项目管理模块
    • 项目搜索
    • 项目新建
    • 项目编辑
    • 项目配置
    • 团队管理
    • 角色管理

测试平台-学院平台案例

  • 支持自动化测试框架管理
    • Web 自动化测试
    • App 自动化测试
    • 接口自动化测试
    • 兼容性测试
  • 支持多样化测试能力管理
    • 性能测试
    • 安全测试
    • 大数据测试

测试平台-学院平台案例

  • 测试报告管理
    • 支持测试结果管理
    • 支持多种测试能力的自定义报告管理
    • 支持数据分析
    • 支持用例趋势图、Bug 趋势图等图表管理

测试平台-学院平台案例

  • 支持手工测试用例执行实时监控
  • 支持自动化测试用例执行实时监控
  • 支持多种测试能力的执行实时监控

其他案例

测试平台的个人价值

  • 个人价值:
    • 测试方案能力。(重要)
    • 测试工具产品设计能力。(重要)
    • 前后端的技术能力。

测试平台的产品价值

  • 公司收益(提效):
    1. 提效
    2. 提升质量
    3. 降低成本
  • 市场收益:
    1. 知名度与影响力
    2. 成熟的商业模式,也有巨大的市场空间。带来直接的创收。
    3. 代表产品: wetest、禅道、process on、figma

测试平台的“Timing”

  1. 需求: 公司需要测试能力服务化、平台化,比如整合内部的多套平台。
  2. 体系: 公司有成熟的测试体系:自动化测试、持续集成
  3. 人力: 有成熟的技术团队,包括前端、后端、测试开发三个角色

测试平台架构设计前提

  • 掌握前端开发技能
  • 掌握后端开发技能
  • 数据库相关技能
  • 测试平台的产品设计思路

技术-前端

  • 界面展示
  • 良好的用户体验
  • 数据展示
  • 相关技术: 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–测试计划::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 – 测试计划: 测试计划对应多个测试用例