测试平台系列(58) 设计用例目录

简介: 设计用例目录

大家好~我是米洛


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

回顾


上一篇我们开了个小差,去搞了下编辑器那块。为什么我如此重视编辑器的体验,那是因为后续我们需要用户在页面上补足Python或其他脚本,如果没有一个还算好用的编辑器,那将非常鸡肋。

但之前发现编辑器会略卡,找到了具体的原因: 我们每次在render过程中都会添加代码补全提示,这样是不合理的,所以我们需要对编辑器进行一下改造。

20.jpg

在DidMount生命周期执行addCompleter方法,由于tables是可变的,所以不用担心自动补全的内容不更新

思考现在的不足


其实现在的情况比较复杂,我们在写用例的时候,必须要先进入项目之中,然后在项目里面找到用例列表tab页。

有没有觉得这样不太好~

21.jpg

image

我们如果左侧是目录,右侧是case列表,其实会好很多。而且随着业务的深入,目录分类肯定不能像目前一样只有2级

不管怎么说,我们先试验一下吧~

设计用例目录表


22.jpg

image

抛开主键,更新/创建时间和用户这样的基础信息之后,其实核心只有3个字段:

  • project_id
    我们的目录需要和项目挂钩,这样的话能对目录进行很好的分类,从而达到对case进行归类的目的。
  • name
    目录名称,这个不需要多说了。
  • parent
    这个是很关键的字段,因为我们的目录是支持嵌套的,目录如果没有父级,那么它就是一个根目录
    我们要展示一个树结构,可离不开这玩意儿

编写增删改接口


  • 23.jpginsert


先判断是否有同级并且同项目同名的目录存在

有的人可能很疑惑,为什么明明设置了唯一索引,还要去先查询一次数据库呢?其实吧,唯一索引是咱们的兜底方案,是为了控制数据的唯一性。但我们更应该从业务的角度去规避掉重复数据出现的可能,所以有这样一层判断,这也只是个人理解哈。

可以看到代码比较清晰,通过with session.begin在session.add之后自动提交到数据库,完成对数据的录入

在postman测试一下:

24.jpg

首次创建

25.jpg

再次创建


  • update和delete

26.jpg

image

基本上都是老一套,这也就是为什么大家都说CRUD BOY很没意思,因为看起来技术含量确实一般。

接着去完善修改和删除的接口:

27.jpg

注意delete接口是get请求哦,因为我们只需要一个id即可

重头戏

重点来了,接着是编写获取目录树的接口了~

通过project_id获取所有目录


28.jpg

参数是project_id

我们需要一次性拿出一个项目下面的所有目录。

编写get_testcase_directory_tree方法


29.jpg

image

这里稍微有点儿复杂,我们一个一个来分析:

  1. 通过项目id获取到所有目录树
  2. 创建最终返回结果: ans
  3. 创建目录id -> 目录的映射关系
  4. 创建父目录 -> 子目录的映射,子目录是一个list
  5. 遍历获取到的目录,如果parent为空,说明是根目录,我们直接加到ans之中,否则说明他不是根目录,我们拿到他的parent并写入parent_map之中
  6. 最后设置id -> directory的映射

如果一来,我们通过一次遍历拿到了所有根目录,以及根目录有哪些孩子目录id->目录的3个重要线索。

  1. 遍历ans,把他们的子子孙孙都塞进children列表里去

30.jpg

image

来看看get_directory方法,先通过parent_map拿到当前的父目录下面是否还有子目录->current,如果没有,则说明这一层目录已经没有子目录了,可以return了。

如果有的话,遍历current,也就是子目录列表,接着从ans_map拿到子目录的信息,新建child列表,并把当前子目录的信息添加到父目录下面的children,接着递归继续找子目录子目录

如此反复,即可生成一棵树。编写获取目录树的接口:

31.jpg

image

看下最终效果


32.jpg

数据量比较少,后续需要放入redis缓存


今天的内容就分享到这儿了,有兴趣的朋友们可以一起动手写起来呀!~




相关文章
|
1月前
|
Kubernetes 测试技术 Perl
混沌测试平台 Chaos Mesh
混沌测试平台 Chaos Mesh
64 1
|
2月前
|
传感器 数据采集 监控
LabVIEW电池管理系统测试平台
LabVIEW电池管理系统测试平台
39 4
|
8天前
|
测试技术
软件测试用例设计之微信群抢红包经典用例
作者在浏览招聘网站时遇到为微信群发和抢红包设计测试用例的问题,作为软件测试新手,作者通过实际体验并撰写测试案例来加深对业务的理解,并分享了测试案例表格。需要注意的是,该用例未考虑添加银行卡支付、红包类型选择及红包描述。
22 5
软件测试用例设计之微信群抢红包经典用例
|
1天前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
11 4
|
22天前
|
测试技术
基于LangChain手工测试用例转Web自动化测试生成工具
该方案探索了利用大模型自动生成Web自动化测试用例的方法,替代传统的手动编写或录制方式。通过清晰定义功能测试步骤,结合LangChain的Agent和工具包,实现了从功能测试到自动化测试的转换,极大提升了效率。不仅减少了人工干预,还提高了测试用例的可维护性和实用性。
31 4
|
30天前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
59 1
|
1月前
|
人工智能 自然语言处理 测试技术
基于LangChain手工测试用例转接口自动化测试生成工具
本文介绍利用大语言模型自动生成接口自动化测试用例的方法。首先展示传统通过HAR文件生成测试用例的方式及其局限性,随后提出结合自然语言描述的测试需求与HAR文件来生成更全面的测试脚本。通过LangChain框架,设计特定的提示词模板,使模型能够解析测试需求文档和HAR文件中的接口信息,并据此生成Python pytest测试脚本。示例展示了正常请求、非法请求及无效路径三种测试场景的自动化脚本生成过程。最终,整合流程形成完整代码实现,帮助读者理解如何利用大模型提高测试效率和质量。
75 2
|
1月前
|
运维 Kubernetes 监控
|
1月前
|
存储 测试技术 API
apifox实例应用-自动化测试用例for循环的使用
总结来说,通过在Apifox自动化测试用例中结合for循环的使用,我们可以有效地对接口进行批量测试,提升测试效率和覆盖率。同时,通过参数化测试数据的灵活应用,能够确保我们的接口在不同的输入条件下都能保持正确的行为。这种方法能够显著减少手动测试工作量,同时通过标准化的流程确保测试的一致性。
62 0
|
2月前
|
测试技术 Apache
单元测试策略问题之设计有效的单测用例问题如何解决
单元测试策略问题之设计有效的单测用例问题如何解决