接口自动化遇到哪些问题,如何解决
1.没有规范、完善的接口文档,沟通协调完善文档,通过抓包获取报文
2.不完全了解接口与业务的关系,接口文档不全面,需要花很多时间去确认
3.接口测试数据清理,
4.一些操作需要开发留后门才可进行,
- 接口断言的准确性
- 跨系统断言验证的阻碍
- 刚开始考虑不全面,如每次跑脚本都登录获取token,其实token有一定的有效期,有效期内不用重复获取;创建用户先查询用户是否存在
- 测试数据的更新与维护,额度一直占用,会全部占用
- 测试用例的维护与更新,接口变化后,接口测试人员没有及时了解,接口测试人员与功能测试人员是分开的
接口返回的数据与数据库对比验证。sql比较复杂,运行效率太差。
场景化的接口,多个接口组成一个用例,数据依赖的处理
- 接口的断言,广度和深度怎么把握?
断言某个字段返回?断言全部字段返回?断言数据落库?断言数据落库的准确性? - 接口用例的编写方式推广,Excel?yaml?代码?web线上编写?每个人接受的方式都不一样,推广不下去
1.接口用例维护和接口测试数据管理
2.接口之间的依赖关系维护
1、参数依赖问题,上个接口的返回如何作为下个参数的传参,解决方案:设置全局变量,用一个key,value的字典存储
2、写完接口自动化,公司没有接口定时构建平台,解决方案:和运维同学一起搭建服务端Jenkins服务器,Jenkins拉取gitlab代码,实现定时的构建和结果发送
3、场景化接口,大多数接口有强依赖关系,解决方案:通过pytest, 给每个接口请求指定order, 按顺序来执行脚本,
4、接口文档更新不及时,与实际接口出入很大,解决方案:登录web, 通过F12, 自己抓请求的参数,然后写接口自动化的脚本
1.用例2模块调用用例1模块初始化的session,导致用例被重复执行
解决:接口请求统一封装
2.不同模块接口的基础路径不一样,存在多个URL
解决:放在请求统一封装的方法中处理,初始化init方法传入基础URL进行拼接
3.接口之间关联数据存入临时文件中,但每执行一次都会多出一份重复数据
解决:conftest.py文件加入session级别前置夹具,执行所有用例之前清空临时文件
1、获取接口实际返回与预期对比
2、数据库查询结果与实际结果对比
3、页面实际返回与预期对比