测试平台系列(30) 完善断言部分

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 完善断言部分

思考


这个系列满打满算已经一个月没有更新了,咱虽然水文,但是正事还是得干的。其实有时候我在想,类似的平台已经有饭佬这座高山了,我还真的有写下去的必要吗?不管怎么说,写点自己喜欢的内容吧,哪怕是写给自己看也成,毕竟自己暂时没有再做其他方面的平台了。

回顾


上次写到了用例详情页面,可以添加对应的用例了并在线执行了~

理性分析一下,咱们还缺啥?其实不用分析,缺的东西很多,比如: 调试结果怎么展示,测试集怎么做,最终测试报告,全局变量等等。

由于最近做的都是业务测试,有涉及到接口部分的,所以我针对自己的使用,给自己提了一些优化的内容。

6.jpg

image

因为平时Yapi用的也比较多,所以个人还是决定与Yapi进行打通,根据yapi的接口文档去智能地生成一些基础用例。

大家如果有想法,也可以和我讨论.目前呢,有些地方我也没有确定清楚,以上都是我在真实使用过程中遇到的一些不好的地方。

自己做的东西,自己一定要亲身去体验,这样才知道哪里不顺手,哪里不好用。听取别人的建议是关键,自己有切身体会也是关键。

修复sqlalchemy连接的问题


在我自己使用的过程中,发现sqlalchemy的Session会自动过期。啥意思呢,默认的Session建立的时候,连接是不会被释放的。但是呢,mysql的每个连接会有个默认的过期时间,因为一个连接如果长时间不工作,就是浪费资源,所以Mysql有这样的设定。

7.jpg

图中可以看到超时时间是1800秒也就是30分钟

这样就出现,sqlalchemy取出的session在mysql中已经过期了,通俗点来讲就是,你30分钟没有用平台,再调涉及到数据库的接口的时候,就提示你Mysql Connection not variable。

  • 添加pool_recycle参数(缩短我们连接回收的时间,小于wait_timeout)

8.jpg

image

  • 扩大Mysql的超时时间,这个需要改mysql配置文件中的wait_timeout参数,有的人会设置为8小时

添加编辑用例的功能


  • 后端接口改造,编写update功能

9.jpg

image

这边有一点需要注意,先通过testcase的id和deleted_at字段取到数据,然后调用了update_model方法,这个方法的作用是啥呢,就是通过setattr把Form表单的内容赋予这个数据库对象。

以往我们的手段都很拙劣,如果要修改testcase这个对象,我们会用data.xxx = xxx,这样效率较低,而且代码量很多。由于我们和Pydantic进行了打通,里面接受的字段名字和我们db中的字段名字是一样的,所以我们可以写一个通用的办法。

10.jpg

image

  • dist参数是被修改的对象
  • source是Pydantic的BaseModel,也就是咱们在web页面的表单数据
  • not_null是个可选参数,如果是True的话,那么只有非空字段会被更新,这点借鉴了gorm
  • update_user,由于我们的每条数据都带有这个updated_at, update_user信息,所以在update的时候我们自动设置为当前时间

注释:

setattr可以动态设置对象的属性,第一个参数是对象,第二个参数是字段名,第三个参数是具体的值,与之对应的还有getattr

后端接口层

11.jpg

image

  • 前端逻辑的改造pityWeb\src\components\TestCase\TestCaseDetail.jsx

12.jpg

image

和创建逻辑类似,在点击保存按钮的时候,调用onFinish方法,先去搜集表单的数据,url,headers等等,最后调用updateTestCase接口。最后就是调用init()方法重新获取用例的数据。

13.jpg

image

调整一下用例树


14.jpg

image

放弃之前的突兀地让用户选择用例,以说明书的方式让用户明白需要点击左侧的树。左侧的树后面需要可以选中,以便于执行多条用例测试集添加等等。

用例详情调整


15.jpg

image

先说明一下,这块我一直觉得不是太美观,我只能说这肯定不是最终效果。我把headers替换成了表格,把body替换成为了json,因为我们暂时只支持JSON。

高亮代码块,需要安装react-syntax-highlighter


npm install react-syntax-highlighter --save
  • 使用

16.jpg

image

17.jpg

image

先导入对应的库和样式,我这里选择的是vs2015,再把字符串放入SyntaxHighlighter组件内即可。

后续预告


  • 系统设置
    包括yapi相关配置,用例与yapi的打通,自动生成用例。
  • 测试报告
    测试用例执行详情展示等。
  • 全局变量
    包括环境配置,地址管理等等。
  • 定时任务
    这块可能用go去写,也可能用celery。
  • 测试集
    待定。




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
130 2
|
2天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
12 0
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
24 1
|
2月前
|
测试技术
Lim测试平台测试报告说明
Lim测试平台测试报告说明
32 2
|
2月前
|
SQL 测试技术 数据库连接
Lim接口测试平台-接口测试功能详解
Lim接口测试平台-接口测试功能详解
40 1
|
2月前
|
SQL 监控 测试技术
Lim测试平台变量使用规则介绍
Lim测试平台变量使用规则介绍
27 0
|
2月前
|
测试技术
使用Lim测试平台快速完成批量造数
使用Lim测试平台快速完成批量造数
31 1
|
2月前
|
SQL JSON 监控
Lim测试平台快速上手教程
Lim测试平台快速上手教程
38 0
|
2月前
|
测试技术 Linux 数据安全/隐私保护
如何远程访问Linux MeterSphere一站式开源持续测试平台
MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付,推动中国测试行业整体效率的提升。

热门文章

最新文章