自动化工具 接口测试脚本自动生成

feidou1113 · 2022年08月29日 · 最后由 disciple 回复于 2022年09月23日 · 9302 次阅读

当前接口测试阶段已做到接口测试脚本按照模版批量生成,但应答校验和数据库全表校验自动生成目前没有成熟的解决方案,正在研究中。。。
今天的主题: 梳理代码生成之数据校验自动生成后续工作

背景:
1、单接口测试,在数据校验,处理数据库数据基本为自定义,获取数据对象和校验规则不统一

2、串场景自动化 - 数据库数据校验对象类已生成,但在贯穿整个场景上对接仍然复杂,需要简化;

3、应答参数的校验,目前仅对 code 校验自动生成、其他业务字段未解析处理;

目的:
1、解决单接口写、修改、查询数据,在应答成功后,自动拼接接口对应数据源获取模型、自动匹配应答报文和数据源字段值,达到真正的数据校验

2、自动解析应答报文 Json 格式,与实际返回接口报文做字段自动匹配;

3、简化串场景 - 全表校验 对接难度

以上是后面接口自动化提效的几个点,在敏捷研发流程里,测试时间非常紧张、看看大家有什么好的建议?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

行百里者半九十,加油!
等成熟的解决方案研究出来后,给社区小伙伴们分享下

上家公司有同学做了个自动生成数据库几乎全字段校验的功能,分享下思路,楼主看看有没有帮助?

背景:金融类业务,数据库需要校验的字段很多,手写效率太低,所以想自动生成。
手段:
增加录制/校验两种模式。录制模式时,把数据库查询到的数据统一存到用例对应的 csv 文件中;校验模式(默认)时,校验查询到的数据和 csv 文件是否一致。
由于有少量字段是无需校验的(比如时间相关的字段、某些自增的 id 字段),因此 csv 中提供了白名单机制,可以人工在里面配置需忽略校验的字段。
后期也优化为录制模式时每条用例会重复执行 2 次,并自动把两次执行不一致字段加入 csv 的白名单。

优点:
节省了很多数据库校验相关断言的编写成本
不足:
仅能校验等于,对于校验条件为不等于、某个范围内之类的,无法校验。(不过对于我们当时来说,已经够用了)

这个思路,理论上对于接口 response 也是适用的,只是可能存放格式要从 csv 改为别的格式(对象可能有多层,所以 csv 格式不一定适用)

陈恒捷 回复

巧了,这边也是上家公司有同学做法很相似。复制你的部分回复内容并加粗标注不同点。

增加录制/校验两种模式。录制模式时,把数据库查询到的数据统一存到用例对应的 csv 文件中(这边是存到特意为用例建的数据表中,表名是在被查询表名加后缀_t);校验模式(默认)时,校验查询到的数据和 csv 文件是否一致(对应地,两边都对表执行相同的查询,并校验查询到的数据是否一致,查表比读 CSV 会快些方便些,且不会有数据库存储硬盘文件 (CSV) 存储两种存储方式不一致问题)
由于有少量字段是无需校验的(比如时间相关的字段、某些自增的 id 字段),因此 csv 中提供了白名单机制(这边是提供了黑名单机制配置需忽略校验的字段,不确定你是手误还是叫法不同,作用是一样的),可以人工在里面配置需忽略校验的字段。
后期也优化为录制模式时每条用例会重复执行 2 次,并自动把两次执行不一致字段加入 csv 的白名单(这边后期也改了,改为提供白名单,不提供黑名单,自动把执行相一致字段加入白名单,注意这里可不是叫法不同了,其实效果差不多,只是看待事物理念不同,试想下迎宾手里拿的参会人员名单)

优点和缺点跟你那边的相当,就不复制了。

相一致字段加入白名单,不提供黑名单,这对于后续处理是显性的。
这个理念我在如何实现不完全字典比较的 helper贴里也有同样的回复,该贴提出了跟本贴类似的问题,可互为参考。

陈恒捷 回复

谢谢回帖, 后续有点实践成果、会及时分享

关于数据库校验,校验的 SQL 是怎么来的?能否根据接口请求报文生成对应的 SQL?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册