测试平台系列(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

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




相关文章
|
13天前
|
测试技术 API C#
C#使用Bogus生成测试数据
C#使用Bogus生成测试数据
21 1
|
14天前
|
Kubernetes 测试技术 Perl
混沌测试平台 Chaos Mesh
混沌测试平台 Chaos Mesh
34 1
|
1月前
|
传感器 数据采集 监控
LabVIEW电池管理系统测试平台
LabVIEW电池管理系统测试平台
28 4
|
3天前
|
人工智能 自然语言处理 测试技术
基于LangChain手工测试用例转接口自动化测试生成工具
本文介绍利用大语言模型自动生成接口自动化测试用例的方法。首先展示传统通过HAR文件生成测试用例的方式及其局限性,随后提出结合自然语言描述的测试需求与HAR文件来生成更全面的测试脚本。通过LangChain框架,设计特定的提示词模板,使模型能够解析测试需求文档和HAR文件中的接口信息,并据此生成Python pytest测试脚本。示例展示了正常请求、非法请求及无效路径三种测试场景的自动化脚本生成过程。最终,整合流程形成完整代码实现,帮助读者理解如何利用大模型提高测试效率和质量。
14 2
|
6天前
|
运维 Kubernetes 监控
|
12天前
|
关系型数据库 MySQL Python
[python]使用faker库生成测试数据
[python]使用faker库生成测试数据
|
7天前
|
存储 测试技术 API
apifox实例应用-自动化测试用例for循环的使用
总结来说,通过在Apifox自动化测试用例中结合for循环的使用,我们可以有效地对接口进行批量测试,提升测试效率和覆盖率。同时,通过参数化测试数据的灵活应用,能够确保我们的接口在不同的输入条件下都能保持正确的行为。这种方法能够显著减少手动测试工作量,同时通过标准化的流程确保测试的一致性。
16 0
|
2月前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之选择独享调度,数据集成里可以使用,但是数据地图里面测试无法通过,是什么原因导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
29 0
DataWorks产品使用合集之选择独享调度,数据集成里可以使用,但是数据地图里面测试无法通过,是什么原因导致的
|
1月前
|
机器学习/深度学习 运维 算法
Doping:使用精心设计的合成数据测试和评估异常检测器的技术
在这篇文章中,我们将探讨测试和评估异常检测器的问题(这是一个众所周知的难题),并提出了一种解决方案被称为“Doping”方法。使用Doping方法,真实数据行会被(通常是)随机修改,修改的方式是确保它们在某些方面可能成为异常值,这时应该被异常检测器检测到。然后通过评估检测器检测Doping记录的效果来评估这些检测器。
24 0
|
26天前
|
测试技术 Apache
单元测试策略问题之设计有效的单测用例问题如何解决
单元测试策略问题之设计有效的单测用例问题如何解决

热门文章

最新文章