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

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




相关文章
|
2月前
|
关系型数据库 MySQL 测试技术
【分享】AgileTC测试用例管理平台使用分享
AgileTC 是一个脑图样式测试用例管理平台,支持用例设计、执行与团队协作,帮助测试人员高效管理测试流程。
271 116
【分享】AgileTC测试用例管理平台使用分享
|
1月前
|
安全 数据管理 测试技术
告别蛮力:让测试数据生成变得智能而高效
告别蛮力:让测试数据生成变得智能而高效
349 120
|
2月前
|
人工智能 数据可视化 测试技术
AI测试平台自动遍历:低代码也能玩转全链路测试
AI测试平台的自动遍历功能,通过低代码配置实现Web和App的自动化测试。用户只需提供入口链接或安装包及简单配置,即可自动完成页面结构识别、操作验证,并生成可视化报告,大幅提升测试效率,特别适用于高频迭代项目。
|
2月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
2月前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
1月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
2月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
114 0
|
2月前
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!
|
3月前
|
存储 人工智能 文字识别
从零开始打造AI测试平台:文档解析与知识库构建详解
AI时代构建高效测试平台面临新挑战。本文聚焦AI问答系统知识库建设,重点解析文档解析关键环节,为测试工程师提供实用技术指导和测试方法论
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。