当前接口测试阶段已做到接口测试脚本按照模版批量生成,但应答校验和数据库全表校验自动生成目前没有成熟的解决方案,正在研究中。。。
今天的主题: 梳理代码生成之数据校验自动生成后续工作
背景:
1、单接口测试,在数据校验,处理数据库数据基本为自定义,获取数据对象和校验规则不统一
2、串场景自动化 - 数据库数据校验对象类已生成,但在贯穿整个场景上对接仍然复杂,需要简化;文章源自玩技e族-https://www.playezu.com/251060.html
3、应答参数的校验,目前仅对 code 校验自动生成、其他业务字段未解析处理;文章源自玩技e族-https://www.playezu.com/251060.html
目的:
1、解决单接口写、修改、查询数据,在应答成功后,自动拼接接口对应数据源获取模型、自动匹配应答报文和数据源字段值,达到真正的数据校验
2、自动解析应答报文 Json 格式,与实际返回接口报文做字段自动匹配;文章源自玩技e族-https://www.playezu.com/251060.html
3、简化串场景 - 全表校验 对接难度文章源自玩技e族-https://www.playezu.com/251060.html
以上是后面接口自动化提效的几个点,在敏捷研发流程里,测试时间非常紧张、看看大家有什么好的建议?文章源自玩技e族-https://www.playezu.com/251060.html 文章源自玩技e族-https://www.playezu.com/251060.html
未知地区 5F
谢谢回帖, 后续有点实践成果、会及时分享
未知地区 4F
相一致字段加入白名单,不提供黑名单,这对于后续处理是显性的。
这个理念我在如何实现不完全字典比较的 helper贴里也有同样的回复,该贴提出了跟本贴类似的问题,可互为参考。
未知地区 3F
巧了,这边也是上家公司有同学做法很相似。复制你的部分回复内容并加粗标注不同点。
增加录制/校验两种模式。录制模式时,把数据库查询到的数据统一存到用例对应的 csv 文件中(这边是存到特意为用例建的数据表中,表名是在被查询表名加后缀_t);校验模式(默认)时,校验查询到的数据和 csv 文件是否一致(对应地,两边都对表执行相同的查询,并校验查询到的数据是否一致,查表比读 CSV 会快些方便些,且不会有数据库存储硬盘文件 (CSV) 存储两种存储方式不一致问题)。
由于有少量字段是无需校验的(比如时间相关的字段、某些自增的 id 字段),因此 csv 中提供了白名单机制(这边是提供了黑名单机制配置需忽略校验的字段,不确定你是手误还是叫法不同,作用是一样的),可以人工在里面配置需忽略校验的字段。
后期也优化为录制模式时每条用例会重复执行 2 次,并自动把两次执行不一致字段加入 csv 的白名单(这边后期也改了,改为提供白名单,不提供黑名单,自动把执行相一致字段加入白名单,注意这里可不是叫法不同了,其实效果差不多,只是看待事物理念不同,试想下迎宾手里拿的参会人员名单)。
优点和缺点跟你那边的相当,就不复制了。
未知地区 2F
上家公司有同学做了个自动生成数据库几乎全字段校验的功能,分享下思路,楼主看看有没有帮助?
背景:金融类业务,数据库需要校验的字段很多,手写效率太低,所以想自动生成。
手段:
增加录制/校验两种模式。录制模式时,把数据库查询到的数据统一存到用例对应的 csv 文件中;校验模式(默认)时,校验查询到的数据和 csv 文件是否一致。
由于有少量字段是无需校验的(比如时间相关的字段、某些自增的 id 字段),因此 csv 中提供了白名单机制,可以人工在里面配置需忽略校验的字段。
后期也优化为录制模式时每条用例会重复执行 2 次,并自动把两次执行不一致字段加入 csv 的白名单。
优点:
节省了很多数据库校验相关断言的编写成本
不足:
仅能校验等于,对于校验条件为不等于、某个范围内之类的,无法校验。(不过对于我们当时来说,已经够用了)
这个思路,理论上对于接口 response 也是适用的,只是可能存放格式要从 csv 改为别的格式(对象可能有多层,所以 csv 格式不一定适用)
未知地区 1F
行百里者半九十,加油!
等成熟的解决方案研究出来后,给社区小伙伴们分享下