Python 小章的自动化接口日记和生活分享 --- 多参数查询接口数据校验暂时解决方法(也不知道对不对)ヾ (◍°∇°◍) ノ゙

哇咔咔 · 2021年03月31日 · 最后由 胡适 回复于 2021年04月21日 · 624 次阅读

我也不知道对不对,反正就瞎撞吧,也没人教,暂时就这样吧
这是我遇到的问题:

@haijunjiao 感谢大佬提供的思路

我大致是按照这样做的:首先我觉得这种查询接口单纯去校验它通不通肯定是不行的,因为没意义,所以一定要校验它里面的内容对不对。按照网友提供的解决思路可以先获取请求把数据提取保存起来,作为 case 的标准答案。然后我在写测试 case 的时候,把取到的数据和标准答案做对比,来断言它是不是一样。

刚开始的时候,我是有疑问的,因为你调用 2 次相同的请求得到的答案肯定相同啊,这样怎么能判断 case 到底有没有用呢,但是后来我想通了接口测试是一种回归测试,保存的标准答案的函数其实只需执行 1 次就行了,不需要每次执行 case 的时候都执行。

这是我的目录 result 放对比的答案

用 yaml 保存第一次取到的数据

这里面有一个 result.yaml 文件,刚开始的时候我是想把全部 case 取到的数据都保存在这么 yaml 文件里的,后发现不行,yaml 显示一大串的错误,怎么断言都跑不通

后来我一个 case 取到的结果,保存一个 yaml,,就是感觉好像文件有点多,看起来怪怪的,不知道对不对

最后总结下:多参数查询接口校验,case 断言的思路,跑 2 次接口,第一取标准答案存起来,第二次取得的数据与第一次取到的结果校验,判断有没有改变

共收到 8 条回复 时间 点赞

查询类用这个思路是没啥问题的,但人工维护成本会比较高,建议补充一些自动录制生成 yaml 的功能,否则成本略高。

陈恒捷 回复

好,我去学习下

大佬什么的真不敢当,1L 恒捷是真大佬,而我只是个涉世未深的孩纸,仅仅是因为项目相似而有了所谓的经验罢了~~

刚开始的时候我是想把全部 case 取到的数据都保存在这么 yaml 文件里的,后发现不行,yaml 显示一大串的错误,怎么断言都跑不通

看了下你写的 yaml 文件,感觉是格式有问题,可以了解一下 yaml 文件如何在自动化测试中灵活运用,大致可以理解为字典的用法。这样可以在一个 yaml 文件中放多个 case 的校验内容,不显得过于累赘。当然,恒捷提到的录制生成 yaml 听起来更好,有机会我也尝试学习一下~

陈恒捷 回复

请问下自动录制脚本的思路,是如果需要数据的时候通过接口拿到响应保存下来吗

linxiaoq 回复

对的,相当于在接口确认没问题后,自动把响应记录下来,作为下一次测试的断言。当然有些不需要校验的字段,要通过一些比较简便的标记标记出来。

对比上次响应数据这个始终有点问题,如果中间某个字段值变了就挂了,可以看下这个开拓下思路https://testerhome.com/topics/22561

以前都是自己写 sql,用 sql 的结果去对比,忽略了接口测试是做回归的

对于接口回归测试而言,环境对比维护成本更低,而且更准确,前提是有不同环境

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