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

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




相关文章
|
1月前
|
测试技术 API C#
C#使用Bogus生成测试数据
C#使用Bogus生成测试数据
35 1
|
1月前
|
Kubernetes 测试技术 Perl
混沌测试平台 Chaos Mesh
混沌测试平台 Chaos Mesh
64 1
|
8天前
|
测试技术
软件测试用例设计之微信群抢红包经典用例
作者在浏览招聘网站时遇到为微信群发和抢红包设计测试用例的问题,作为软件测试新手,作者通过实际体验并撰写测试案例来加深对业务的理解,并分享了测试案例表格。需要注意的是,该用例未考虑添加银行卡支付、红包类型选择及红包描述。
22 5
软件测试用例设计之微信群抢红包经典用例
|
1天前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
11 4
|
22天前
|
测试技术
基于LangChain手工测试用例转Web自动化测试生成工具
该方案探索了利用大模型自动生成Web自动化测试用例的方法,替代传统的手动编写或录制方式。通过清晰定义功能测试步骤,结合LangChain的Agent和工具包,实现了从功能测试到自动化测试的转换,极大提升了效率。不仅减少了人工干预,还提高了测试用例的可维护性和实用性。
31 4
|
24天前
|
存储 人工智能 自然语言处理
知识库优化增强,支持多种数据类型、多种检索策略、召回测试 | Botnow上新
Botnow近期对其知识库功能进行了全面升级,显著提升了数据处理能力、检索效率及准确性。新版本支持多样化的数据格式,包括PDF、Word、TXT、Excel和CSV等文件,无需额外转换即可直接导入,极大地丰富了知识来源。此外,还新增了细致的文本分片管理和编辑功能,以及表格数据的结构化处理,使知识管理更为精细化。 同时,平台提供了多种检索策略,包括混合检索、语义检索和全文检索等,可根据具体需求灵活选择,有效解决了大模型幻觉问题,增强了专业领域的知识覆盖,从而显著提高了回复的准确性。这些改进广泛适用于客服咨询、知识问答等多种应用场景,极大提升了用户体验和交互质量。
44 4
|
2天前
|
存储 监控 安全
在自动化测试环境中,如何确保测试数据的安全性和隐私性
在自动化测试环境中,如何确保测试数据的安全性和隐私性
|
26天前
【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
|
26天前
|
JSON Kubernetes Linux
【Application Insights】使用CURL命令向Application Insgihts发送测试数据
【Application Insights】使用CURL命令向Application Insgihts发送测试数据
|
30天前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
59 1