接口自动化核心面试题
一、你的框架提供了哪些功能?或者整体结构实现思想?
答:1、编写用例(前置、后置、断言)、执行用例、生成测试报告。2、日志功能,回溯问题
针对接口测试:1、数据库处理2、接口关联处理3、数据参数化(数据驱动思想)实现 - excel数据读取4、提取数据处理5、数据替换处理6、配置文件处理7、http请求封装:鉴权处理,请求头处理。8、数据生成处理
答:1、框架的整体结构、结构设计:分层设计思想、数据驱动思想
Common - 公共工具层
TestCases - unittest实现,引入了ddt模块
TestDatas - excel\ini配置文件\脚本生成的数据
Conf - 配置层 - 数据库连接配置、全局接口url配置、日志配置、全局共用数据配置
Outputs - 报告 /日志
main.py - 框架的入口文件 - 执行它,收集用例执行用例生成报告
二、自动化如何做版本管理?
git上管理版本,可以追溯历史版本
单独区分1.0的版本用例、2.0的版本用例
并将版本数据录入到数据库中
三、python的自动化最大的区别?
1、可以对数据进行初始化的操作
2、python中有更多的配置,前置后置处理更灵活
四、平时你是怎么做接口测试的?
a.通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果;
b.参数组合的方式
c.绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
d.绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
e.参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
f.密码安全规则,密码的复杂程度校验
g.异常验证,所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度
h.性能验证
五、接口用例结构
用例之间相互独立、互不影响
![](https://img.haomeiwen.com/i27139754/8bb76c7526bca1f5.png)
六、框架整体架构
![](https://img.haomeiwen.com/i27139754/7cc6fa7a0573e22d.png)
七、自动化测试是怎么开展的?
答:1、需求分析 - 了解业务/功能 - 知道项目现状挑选历史功能/稳定的功能/线上问题最多的历史功能模块/核心功能/自己负责的部分做自动化。
2、接口的了解 - 通过接口文档
3、自动化框架/工具选择 --- 工具的可扩展性以及扩展语言 + 选几个复杂的接口去试用,看在鉴权和断言方面的处理。定义框架结构、运行流程、命名规范
4、写接口用例、定期汇报
5、维护阶段:开发修改接口要同步修改用例、新增接口、遇到了问题,优化框架。