测试平台系列(49) 写入/读取用例执行数据

简介: 写入/读取用例执行数据

回顾


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

设计测试结果表


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

这里先说一个题外话,其实我们针对一次接口测试,最关心的部分是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方法如下

1.jpg

image

编写核心方法


新增测试结果

2.jpg

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

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

通过report_id查询测试结果


3.jpg

根据开始执行时间排序

调整执行用例方法: run_single


4.jpg

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

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

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

5.jpg

在TestReportDao中新增query方法

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

6.jpg

image

调整前端页面


7.jpg

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

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

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

8.jpg

用例详情,get请求无body

9.jpg

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

微信图片_20220528211653.jpg

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




相关文章
|
20天前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
1月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
101 1
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
66 2
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
34 1
|
1月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
52 0
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
48 4
|
2月前
|
SQL 消息中间件 大数据
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
72 1
|
2月前
|
SQL 大数据 Apache
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
84 1
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
41 2
|
2月前
|
存储 监控 网络安全
内网渗透测试基础——敏感数据的防护
内网渗透测试基础——敏感数据的防护
43 2