美文网首页
测试平台系列(30) 完善断言部分

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

作者: 米洛丶 | 来源:发表于2021-06-20 15:41 被阅读0次

    思考

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

    回顾

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

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

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

    image

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

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

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

    修复sqlalchemy连接的问题

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

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

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

    • 添加pool_recycle参数(缩短我们连接回收的时间,小于wait_timeout)
    image
    • 扩大Mysql的超时时间,这个需要改mysql配置文件中的wait_timeout参数,有的人会设置为8小时

    添加编辑用例的功能

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

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

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

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

    注释:

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

    后端接口层

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

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

    image

    调整一下用例树

    image

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

    用例详情调整

    image

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

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

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

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

    后续预告

    • 系统设置

      包括yapi相关配置,用例与yapi的打通,自动生成用例。

    • 测试报告

      测试用例执行详情展示等。

    • 全局变量

      包括环境配置,地址管理等等。

    • 定时任务

      这块可能用go去写,也可能用celery。

    • 测试集

      待定。

    相关文章

      网友评论

          本文标题:测试平台系列(30) 完善断言部分

          本文链接:https://www.haomeiwen.com/subject/izksyltx.html