测试平台系列(67) 玩转数据驱动

简介: 玩转数据驱动

大家好~我是米洛


我在从0到1打造一个开源平台, 也在编写一套完整的接口测试平台系列教程,希望大家能够多多支持。

上节回顾


上一节我们稍微撩了一下数据驱动,就马上去写基础Model了,这节我们就来仔细探讨下数据驱动的实现想法

先简单介绍一下数据驱动的概念,这里笔者找到了维基百科关于数据驱动的定义。

23.jpg

image

简单阐述一下就是三个特点:

  1. 将变化的东西和测试逻辑分离

什么意思呢?我们比如在测试用户登录的接口,会制造各种各样的输入条件,这些体现到测试数据上的变化就是用户名/密码的变化,我们需要把测试逻辑(校验是否能够登录成功)和测试数据(诸多账号密码)分开。

  1. 根据测试数据的不同执行不同的测试逻辑

通过不同的数据,去完成多组测试数据的测试。

以上面的例子来看,我们抽离用户登录数据和具体的输出(登录结果)的校验,数据越多,这样测试覆盖的场景就会越多,即覆盖率会得到提升。但对我们来说,仅仅只是多凑一些数据而已。

Pity打算怎么做

pity本来还不想做这块功能,但由于环境各方面的关系,导致不得不提前准备好各个环境的测试数据,一来二去就不得已而为之了。

pity引入数据驱动也只是一个抛砖引玉的过程,只是支持用例多数据化,用相同的测试逻辑进行测试。

所以简单的讲,笔者只打算让用例支持多组数据,并根据多组数据去运行用例。

编写测试数据表的相关接口


编写测试数据表单

24.jpg

app/models/schema/testcase_data.py

表单接受case_id,name,json_data等参数,目前来看的话我们支持的数据都是以JSON为主,如果后续有文件等内容,我们可以接受文件的url地址进行测试。如果是form的内容,json也可以转换为KEY-VALUE的形式。

所以核心就是: json_dataname,这2块属于一组测试数据,name只是让不同的测试数据有一个标识

编写增改方法


25.jpg

app/dao/test_case/TestcaseDataDao.py

编写新增和修改方法,逻辑基本一致。

新增操作:

  1. 查找对应的数据,有则抛出数据已存在的异常(为了避免重复数据,双重防护,代码层+数据库唯一索引)
  2. 如果没有则直接插入
  3. 返回新插入的数据,避免二次查询数据列表

修改操作:

  1. 查找对应的数据,无则抛出数据不存在的异常(这样是为了防止数据已经被删除,而用户仍然在修改的情况)
  2. 如果有这条数据则更新之
  3. 返回修改后的数据

编写查询方法


查询方法我们打算编写2个核心方法:

  • 通过case_id查询测试数据
    这个方法是给页面查询这个case在不同的环境下的所有测试数据用的。
  • 通过环境查询测试数据
    这个是给用例执行时,快速拿到用例对应环境下的测试数据用的。
    举个例子,我这时候在测试一个接口,如果以数据驱动的方式,我得快速找到这个接口对应的csv或者json文件,找到了以后还是会转换为Python数组,所以我们大概是这样的过程。

26.jpg

可以看到,二者的区别只是查询条件不同,前者未传入env,后者传入了env

前者返回了一个下图这样的测试数据,后者返回的是对应环境的测试数据列表。


{"fat": [{"data": "测试数据1"}]}

编写删除方法


27.jpg

删除方法很简单,我们只需要把数据的deleted_at改为当前时间戳即可

编写接口


28.jpg

这边只有增删改的接口

查询接口我们把它放入查询用例接口里面:

29.jpg

因为用例是一个整体,我们需要对整体进行数据返回,故没有开放专门的查询接口,后续有需要我们可以再放开

前端改动


30.jpg

image

前端的改动比较简单,即在用例tab页加入数据管理功能,并在最左侧加上环境tab(根据自己配置的环境),右侧则为对应的测试数据表格

31.jpg

image

关于数据驱动的增删改查编写就到此结束了,由于数据驱动有一些改造,所以下期我们会讲如何适配数据驱动的影响。



相关文章
|
28天前
|
关系型数据库 MySQL 测试技术
【分享】AgileTC测试用例管理平台使用分享
AgileTC 是一个脑图样式测试用例管理平台,支持用例设计、执行与团队协作,帮助测试人员高效管理测试流程。
172 116
【分享】AgileTC测试用例管理平台使用分享
|
26天前
|
人工智能 数据可视化 测试技术
AI测试平台自动遍历:低代码也能玩转全链路测试
AI测试平台的自动遍历功能,通过低代码配置实现Web和App的自动化测试。用户只需提供入口链接或安装包及简单配置,即可自动完成页面结构识别、操作验证,并生成可视化报告,大幅提升测试效率,特别适用于高频迭代项目。
|
1月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
1月前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
2月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
4月前
|
存储 测试技术 虚拟化
VMmark 4.0.3 - 虚拟化平台基准测试
VMmark 4.0.3 - 虚拟化平台基准测试
95 0
VMmark 4.0.3 - 虚拟化平台基准测试
|
25天前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
29 0
|
28天前
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!
|
2月前
|
存储 人工智能 文字识别
从零开始打造AI测试平台:文档解析与知识库构建详解
AI时代构建高效测试平台面临新挑战。本文聚焦AI问答系统知识库建设,重点解析文档解析关键环节,为测试工程师提供实用技术指导和测试方法论
|
2月前
|
人工智能 安全 数据可视化
安全测试平台的选型标准与搭建思路
随着企业安全需求升级,传统漏洞扫描和渗透测试已无法满足要求。构建安全测试平台(STP)成为趋势,实现漏洞扫描、权限评估、接口测试等工作的平台化运营。本文从选型标准、平台架构、模块功能等六个方面,系统讲解如何搭建企业级安全测试平台,提升安全能力。