接口测试
http和https的区别
1.https协议需要用到ca申请证书,需要一定的费用
2.http是超文本传输,是明文传输;https是具有安全性的ssl加密传输协议
3.http使用端口是80;https使用端口是443
4.http连接是无状态连接,数据包的发送、传输和接受都是独立的;https是由http+ssl协议构建的可进行加密传输,身份验证的网络协议,比http更加安全。
get和post的区别
1.get参数在url上可见;post参数在body中
2.get通过拼接url进行传递参数;post通过body体传输参数
3.get请求可以缓存;post请求不可以缓存
4.get请求页码回退时不产生影响;post请求页面回退时,会重新提交请求
5.get一般传输数据比较小,post传输数据比较大
cookie和session区别
1.cookie存储在客户端,session存储在服务端
2.cookie存储ascll码格式,session存储任何格式
3.session更加安全
token的作用
用于传输数据时的身份验证
什么是接口测试
接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求
测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系
为什么要做接口测试
1.可以发现UI发现不了的bug
2.检查系统的安全性、稳定性
3.越底层发现bug,修复成本越低
4.检测系统异常处理能力
5.提前介入测试,提升测试效率
如何做接口测试
需求分析
对产品的需求进行认知和理解,主要了解接口的业务逻辑,业务的关联,检查api文档
分析请求与响应
1.请求:请求的url是否合理,请求头是否明确,请求方法是否合理,请求参数是否必填,含义,参数方式是否明确
2.响应:响应状态码,响应数据格式,响应信息,异常返回信息和错误代码是否合理
测试计划
测试计划编写:测试内容,测试人员,测试方法,风险预测及进度控制
用例设计及评审
根据接口业务,接口信息编写测试用例;与开发产品一起评审用例
准备测试环境
测试工具安装,接口服务环境
缺陷管理
记录发现的缺陷,开发完成之后进行回归验证
测试报告
编写本次测试报告,发送给相关人员
怎么设计接口测试用例
- 业务逻辑
根据业务逻辑、输入参数、输入值的描述,对正常输入情况下所得的输入值
需要覆盖接口实现的所有业务场景 - 参数常见关注点
必填项的验证
参数的长度、类型、格式异常
常规参数,数字,字符串,日期 - 其他关注点
是否需要登录状态
翻页,页面和页数的异常值测试
数据库增删改后,接口数据保持一致
兼容旧版本
如何区分前后端bug
1.抓包工具获取前后端数据交互过程。
2.查看前端发送的请求数据是否正确。前端参数存在问题,确定前端的问题。
3.查看后端响应的数据是否正常,响应数据有问题后端问题。
4.如果前后端请求响应都没有问题,考虑前端是否做了数据转换。
接口之间数据依赖如何处理
在postman中,在前置接口中提取要传递的数据保存到全局变量或者环境变量中,在后续接口,直接使用保存全局变量或环境变量中的参数值
依赖于第三方数据的接口如何进行测试
使用mock工具模拟第三方返回
接口测试中遇见的bug
- 一般错误
接口没实现
没按约定返回结果
边界值处理
异常值未处理
输入错误参数 - 安全问题
明文传输
返回结果有敏感信息
没对用户身份信息做校验
没有恶意请求拦截 - 性能
并发多条相同操作
响应时间过长
压测出现瓶颈
postman介绍
作用
用来调试和测试接口
优点
- 支持各种请求类型:get,post,put,patch,delete
- 支持在线存储数据,通过账号可以进行迁移数据
- 支持用例导出、导入、批量运行
- 支持请求header和请求参数的设置
- 支持不同的认证机制
- 响应数据自动按照语法格式高亮:html,json,xml和文本
postman工作中使用流程
1.根据接口用例所属的模块新建集合管理
2.在集合中不同模块下编写接口测试用例
3.处理接口之间的数据关联和操作,添加环境变量
4.在teststab下增加断言
5.将接口调用通过
6.批量运行用例或者导出通过newman去运行生成html报告
postman你使用了哪些功能
请求调试,代理抓包,环境变量设置,用例导入和导出,生成在线api文档,自动化测试,mock server
如何管理测试环境
1.左侧工具栏的environment,加号添加新的测试环境
2.测试环境中创建多个环境变量
3.请求数据可以引用变量
4.请求发送界面,可以右上角选择环境,切换想使用的环境