zoukankan      html  css  js  c++  java
  • 测试平台系列(49) 写入读取用例执行数据

    大家好,我是米洛,求三连!求关注测试开发坑货!

    项目地址: https://pity.readthedocs.io/

    回顾

    上一篇我们已经成功编写了查询报告相关的接口。接着让我们来看单个用例写入/读取的细则。

    设计测试结果表

    老规矩,我们先设计需要写入的数据表

    这里先说一个题外话,其实我们针对一次接口测试,最关心的部分是url,method,输入输出等部分。其实这些内容在case表里面都有涉及到,但因为我们支持了变量形式的数据,所以case表存放的可能只是初始值,而不是接口请求时候的实际值。所以我们这边设置字段的时候拿到我们最关键的信息即可,哪怕存在一定的数据冗余(指的是case表有的数据,测试结果表也有)。

    至于用例等级,用例的project_id这些信息,完全可以让用户在查看用例的时候获取

    class PityTestResult(Base):
        __tablename__ = 'pity_test_result'
        id = Column(INT, primary_key=True)
    
        # 报告id
        report_id = Column(INT, index=True)
    
        # case_id
        case_id = Column(INT, index=True)
    
        # case_name
        case_name = Column(String(32))
    
        status = Column(SMALLINT, comment="对应状态 0: 成功 1: 失败 2: 出错 3: 跳过")
    
        # 开始时间
        start_at = Column(DATETIME, nullable=False)
        # 结束时间
        finished_at = Column(DATETIME, nullable=False)
    
        case_log = Column(TEXT)
    
        # 重试次数,预留字段
        retry = Column(INT, default=0)
    
        # http状态码
        status_code = Column(INT)
    
        url = Column(TEXT, nullable=False)
    
        body = Column(TEXT)
    
        request_method = Column(String(12), nullable=True)
    
        request_headers = Column(TEXT)
    
        cost = Column(String(12), nullable=False)
    
        asserts = Column(TEXT)
    
        response_headers = Column(TEXT)
    
        response = Column(TEXT)
    
        cookies = Column(TEXT)
    
        deleted_at = Column(DATETIME, index=True)
    

    这边的case_name,request_method数据都是冗余的,但并不会太多。因为我没有必要为了获取case_name再去查询一次case表,而我又不得不在报告中显示用例名称

    • init方法如下

    编写核心方法

    新增测试结果

    除了异步session大家可能不太熟悉以外,其他的都应该很了解了

    核心就是新建Result对象,session.add(新对象)插入到db。

    通过report_id查询测试结果

    根据开始执行时间排序

    调整执行用例方法: run_single

    在用例执行完成后搜集数据并插入

    编写获取单个报告数据接口

    这边报告分为2个部分,1个是报告的具体内容比如执行环境成功数量等等。另1个部分是具体执行的case结果。

    在TestReportDao中新增query方法

    我们先根据report_id获取执行信息(构建层),再根据report_id查出所有执行结果(用例层),最后返回report数据和test_data。

    调整前端页面

    前端根据report显示上半部分,根据test_data显示下面部分数据

    上面可以看到3个case,共成功了3个,通过率大于90%的时候会被点个赞

    点击下面的更多按钮可以查看到具体的case执行细节:

    用例详情,get请求无body

    日志数据,可以看到具体替换内容

    最后生成了思维导图,可以看到具体的执行顺序和用例依赖关系,我自己都觉得很酷!

    多的不说了,点个赞再走吧~

  • 相关阅读:
    JS鼠标滚动事件
    [Harbor]Harbor简要介绍
    [Kubernetes]yaml文件详解
    [Kubernetes]安装和配置kubectl
    [Docker]如何批量删除镜像
    [Kubernetes]如何使用yaml文件使得可以向外暴露服务
    [Jenkins]CentOS7下Jenkins搭建
    [Docker]Docker拉取,上传镜像到Harbor仓库
    [Harbor]Docker登录Harbor仓库(HTTP方式)
    [Docker]CentOS7通过rpm包安装Docker
  • 原文地址:https://www.cnblogs.com/we8fans/p/15289468.html
Copyright © 2011-2022 走看看