接口自动化设计

一、用例管理模型

1、存储结构

image.png

2、表设计

a、业务线表:auto_business

b、模块表:auto_module,父级模块parent_id=0,子模块parent_id=父级模块id

c、用例表:auto_case,最终用例数据;auto_case_edit,用例暂存表

image.png

二、任务管理模型

1、存储结构

image.png

2、表设计

CREATE TABLE `auto_task` (
  `id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `task_id` BIGINT NOT NULL DEFAULT '0' COMMENT '任务id',
  `sub_module_ids` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '子模块id',
  `module_ids` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '模块id',
  `case_ids` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '用例id数组',
  `type` INT NOT NULL DEFAULT '0' COMMENT '类型',
  `config` VARCHAR(1536) NOT NULL DEFAULT '' COMMENT '运行时配置文件',
  `admin_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '执行人id',
  `admin_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '执行人name',
  `status` INT NOT NULL COMMENT '执行状态',
  `env` VARCHAR(64) NOT NULL COMMENT '执行环境',
  `started_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始执行时间',
  `finished_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '执行完成时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='通过类型获取执行模式'

三、参数管理模型

1、存储模型

image.png

2、表结构

CREATE TABLE `auto_api_config` (
  `id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  `env` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '执行环境',
  `param_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '参数名',
  `param_value` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '参数值',
  `param_type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '参数类型',
  `is_open` INT NOT NULL DEFAULT '0' COMMENT '参数是否启用',
  `business_id` INT NOT NULL COMMENT '业务线id',
  `remark` VARCHAR(64) NOT NULL COMMENT '参数备注',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_env_param_name` (`env`,`param_name`,`business_id`) COMMENT ' SELECT * FROM auto_api_config WHERE env = #{env} AND param_name = #{paramName}'
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='apiconfig,存储执行配置'

四、执行报告管理模型

1、存储模型

image.png

2、表结构

a、执行报告表:auto_report,主键id

b、执行的模块表:auto_report_execute_module

c、执行的用例表:auto_report_execute_case

五、api接口管理

1、表结构

CREATE TABLE `auto_api` (
  `id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键',
  `url` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '接口名',
  `tether_url` TEXT NOT NULL COMMENT '对应tether接口',
  `module` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '接口所属模块',
  `project` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '接口所属项目',
  `is_run` INT NOT NULL DEFAULT '0' COMMENT '是否执行过',
  `owner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '责任人',
  `parent_module` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '自定义的父级模块',
  `discarded` INT NOT NULL DEFAULT '0' COMMENT '1表示废弃,不会统计覆盖率',
  `mark` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '废弃备注',
  `unable_cover` INT NOT NULL DEFAULT '0' COMMENT '用例不可覆盖,1不可覆盖,0可覆盖',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='存储api接口'

六、执行过程

1、整体流程

image.png

2、模块执行器

image.png

3、用例执行器

image.png

你可能感兴趣的:(接口自动化设计)