测试平台规划

一.背景

1.目前业务线有接口报错统计、bugtags上bug统计、TB需求统计页面完成,需要集成一个平台上

2.对于yapi接口统一的管理维护,后续接口测试实施落地,验证以及回归接口测试

3.后续对于新做工具的维护管理

二.技术方案

1.前端:vue 3.x+antd + axios

2.后端: python + django + celery(apscheduler)

3.数据库:pg (redis)

三.主要功能

导航栏:目前包含质量统计、项目管理、接口管理、用例管理、测试任务管理、报告管理、环境配置管理、定时任务

项目管理:

1.维护项目,增删改查

2.后续根据业务线添加项目

接口管理:

1.接口列表:

  • [ ] 按照项目展示yapi所有接口信息,(通过yapi对外开发的api,可以获取所有的接口信息,通过exchange邮箱根据发件人为yapi能获取到所有的接口变动信息,拿到变动接口id,再调用yapi获取接口详细信息,存储到pg库,展示在接口管理)
  • [ ] 也可以通过解析swaggerjson文件,来存储到pg库
  • [ ] 考虑一下之前的中学接口用例的兼容???

2.接口维护:增删改查及debug调试

3.通过项目维护接口???

用例管理:

1.用例列表:按照项目、接口查询展示

2.用例的增删改查:新增的时候可以选择想要测试的接口

3.可以单条运行,也可以多条运行(通过勾选)

4.用例的验证点(支持多种断言方式,接口出参与常量,接口出参与变量,数据库校验,缓存校验)

5.接口前置数据准备与后置数据清洗

6.测试用例复用性设计

测试任务管理:

1.列表展示

2.测试任务的增删改查

3.测试任务可以按照项目添加用例集(测试项目可以自定义添加测试用例)

4.定时任务配置

5.接口冒烟用例接入开发构建环境

报告管理:

1.列表页:显示执行的报告

2.可以查看具体的详细信息

环境配置管理:

1.列表:展示中台接口的测试环境、预发布环境、线上环境(1个机器上支持3个环境?)

2.环境的增删改查

质量统计:

1.接口报错率监控:每个服务每日的总调用量、每个接口的总调用量以及失败量

2.bugtags:每个迭代的总bug,每个测试人员提交的bug,每个开发人员迭代内的bug、(线上bug单独展示)

3.tb目前按照每个测试人员去统计

四.主要流程图

null

五.后端主要接口

1.bugtags质量报告

path('bugTagsNum/', views.bugTagsNum),

path('bugsTags/', views.api_bugTags),

path('get_bugsTags/', views.api_get_bugTags),

path('getBugsTester/',views.getBugsTester),

path('getBugsDev/',views.getBugsDev),

path('getBugsApp/',views.getBugsApp),

path('bugInput/', views.bugInput),

path('postbugtagsversion/',views.postbugtagsversion),

2.线上服务日志数据统计

path('apimonitoring/', views.apimonitoring),

path('postApiDaytotalNum/',views.postApiDaytotalNum),

path('postApiDayError/',views.postApiDayError),

path('getApiError/',views.getApiError),

path('postApiError/',views.postApiError),

path('getAllApiError/',views.getAllApiError),

path('postApimessage/',views.postApimessage),

path('postApitotalNum/',views.postApitotalNum),

path('getApitotalNum/',views.getApitotalNum),

path('postApimessageSql/',views.postApimessageSql),

path('postApiDayErrorNotUrl/',views.postApiDayErrorNotUrl),

3.tb数据统计

path('teambtion/',views.teambtion),

path('postTeambtion/',views.postTeambtion),

path('getTeambtion/',views.getTeambtion),

path('getTeambtion_sprint/',views.getTeambtion_sprint),

4.测试平台主要接口

项目管理:

path('project/', views.project),

path('get_project/', views.get_project),

path('post_project/', views.post_project),

path('update_project/', views.update_project),

path('delete_project/', views.delete_project),

path('edit_project/',views.edit_project),

path('create_project/',views.create_project),

接口管理:

path('api_postApi/',views.api_postApi),

path('api/',views.api),

path('get_api/',views.get_api),

path('get_apiGroup/',views.get_api_group),

path('get_apiName/',views.get_api_name),

用例管理:

path('apicase/',views.apicase),

path('import_case/',views.import_case),

path('get_apicase/',views.get_apicase),

path('apicase_creat/',views.apicase_creat),

path('creat_case/',views.creat_case),

path('cases/single_run/',views.cases_single_run),

path('get_cases/',views.get_cases),

任务管理:

path('task/',views.task),

path('task_creat/',views.task_creat),

path('get_task_case/',views.get_task_case),

path('api_creat_task/',views.api_creat_task),

path('get_task/',views.get_task),

path('task/single_run/',views.task_single_run),

path('apscheduler_task/',views.apscheduler_task),

报告管理:

path('report/',views.report),

path('get_report/',views.get_report),

上线需求管理:

path('api_statistics/', views.api_statistics),

path('getonline/',views.getonline),

path('onlinemessage/',views.onlinemessage),

path('online/',views.online),

path('online_create/',views.online_create),

path('get_online/',views.get_online),

path('update_online/',views.api_update_online),

path('edit_online/',views.api_edit_online),

path('del_online/',views.api_del_online),

path('search_online/',views.search_online),

发送飞书:

path('postfeishujob/',views.postfeishujob),

六.涉及业务线

1.

2.

3.

七.后期规划

1.mitmproxy自动抓取接口数据,封装成接口用例信息

2.性能压测集成

3.静态代码扫描

4.代码部署后,自动执行冒烟case

5.开发与测试对接流程

6.后期开发规范制定

7.邮件内容