自动化测试平台需求

接口自动化平台

管理所有的接口:

  • 接口的增删改查

  • 一键执行接口,并生成测试报告

    • 批量执行

    • 下载报告

  • 批量导入

    • 从Excel表格中

  • 定时任务

    • 每天定时(凌晨1点)检查是否有今天要结束的测试活动,如果有,就自动的执行一遍。

  • 可视化

    • echarts

实现:

  • django + unittest

 

 

 

 

 

项目分析

项目列表:

 

 

用例列表:

 

 

用例执行日志:

 

 

 

参考项目列表图,完成:

  • 新建项目

  • 编辑项目

  • 删除项目

  • 为项目添加用例

数据库设计:

  • 项目表的字段:

    • 项目名称

    • 项目描述

    • 用例数据量,该字段是统计出来的

    • 覆盖率字段,计算出来的(通过的用例数量除以项目总的用例数量)

    • 开始时间

    • 结束时间

  • 用例表

    • 用例名称

    • 用例描述

    • 所属项目

    • 请求的url

    • 请求的类型

    • 请求的参数

    • 期望值

    • 执行状态

      • 已执行

      • 未执行

    • 通过状态,用例执行后,修改此状态

      • 执行成功,已通过

      • 执行失败,未通过

    • 用例报告

  • 日志表:

    • 所属项目

    • 执行时间

    • 执行的报告

作业完成顺序:项目表的增删改查 ---> 用例表的增删改查 -----> 用例执行------> 批量执行的用例日志 ---> 数据可视化

用例执行过程分析

  1. 页面中,勾选了一个或者多个用例,CheckBox(复选框)

  2. 点击执行按钮后,后端接收一个或者多个CheckBox的值(用例id):

    1. 前端如何往后端发送?

      1. ajax发送,循环CheckBox的外部盒子,获取每一个CheckBox状态为选中的input框,获取input的value值(用例id),然后push到数组中,再将该数组发送到后端。

      2. form表单提交

    2. 后端如何接收form表单提交的值

      1. request.POST.get_list

def index(request):
    if request.method == "POST":
        request.POST.get("username")  # username对应的是单个值
        request.POST.get_list('checkbox_list')  # 以列表的形式接收多个值
  1. 后端接收到了前端传过来的值:[1, 2, 3, 4]

    1. 根据获取到的用例id列表,去数据库中提取出对应记录(用例对象)

    2. 如果是多个用例对象,循环使用requests提取用例对象中的字段发请求。

    3. 结果断言

    4. unittest生成测试报告

    5. 将测试报告保存到用例的相应字段中

    6. 修改用例的执行状态和通过状态

    7. 考虑如何获取批量执行的测试结果报告

  2. 用例批量执行完毕,将批量执行结果保存到log表中

    1. 用例执行的时间

    2. 用例报告

  3. 将执行结果给前端返回。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-11-14 20:52  贰号猿  阅读(106)  评论(0)    收藏  举报