接口测试简答
一、为什么要做接口测试
- 接口可以理解成是不同系统或模块之间资源交流方式。
- 主要是为了发现前端未做控制的数据传输
二、接口测试能发现哪些问题
- 传输金额时是否做负数控制
- 个别接口是否做权限控制
- 传入置顶type之外的type值,是否做控制
- 必填参数不填是接口是否做校验
三、接口测试的必要性
- 可以发现很多在页面上操作发现不了的bug
- 检查系统异常处理能力
- 检查系统的安全性、稳定性
- 前端随便变,接口测好了,后端不用变
- 可以测试并发情况,一个账号,同时对最后一个商品同时下单,或不同账号对最后一个商品下单
- 可以修改请求参数,突破前端页面输入限制
四、接口测试怎么测
- 通过性验证:接口功能正常,按照指定参数正常输入,是否可以返回正确的结果
- 参数组合:个别字段代表输入1时,A字段必填。输入2时,B字段必填
- 接口安全:
- 绕过验证:一个商品将对应的商品价格做更改看是否交易成功
- 绕过身份验证:主播权限解散包厢,普通用户不可解散
- 参数是否加密:个别查询接口需要做加密处理,看是否有加密
- 密码安全规则。
- 异常验证:必传非必传、参数类型、入参长度(看是否有异常返回值)
- 性能测试:接口并发情况,接口响应时间
五、用什么工具测接口
- Postman:免费,简单
- Jmeter:配合断言,但测试报告要做二次开发
- apipost:中文,简单,线上版本管理
- 自己写代码:python request,pytest
六、WebService接口是如何测试的(用SoapUI)
七、没有接口文档如何做接口测试,
- 先跟开发沟通,整理接口文档
- 抓包看接口请求参数,不懂问开发
八、在接口测试中,上下游接口有数据依赖怎么处理
- 工具:前置、后置函数
- pytest框架:
九、依赖第三方数据的接口如何测试(MOCK)
【https://www.cnblogs.com/yoyoketang/p/9348552.html】
十、当一个接口出现异常,你是如何分析异常的
- 抓包,设置代理看请求
- 查看后端日志,xhell连上服务器,查看日志
十一、如果模拟弱网测试
- 工具模拟。Charles
十二、如何分析一个bug是前端还是后端
- 看请求报文,对照接口文档看是否有问题,前端传都数据是否不对,返回报文不对后端问题
十三、我们测试的接口属于哪一类?
- 通常是B/S架构,由客户端调用,或模拟客户端向服务器提供请求接口,由服务器完成处理并返回一个应答
- http、HTTPS、rpc、grpc、xmpp
十四、HTTP接口传递数据最常用的方式?
- get和post最常用
- get是从服务器上获取数据,post是向服务器上传送数据
十五、依赖于登录的接口如何处理
- session
- cookies
十六、测试的数据你放在哪里?
- 一次性消耗的数据,随机函数
- 一个接口多组测试参数,参数化,数据放text,json,excel
- 反复使用的数据,放数据库,每次数据初始化
- 对于邮箱配置的一些参数,用ini配置文件
- 独立的接口项目,用excel/csv管理测试的接口数据
- 对于账号密码,这种管全局的参数,用命令行参数,配置在ini
- 少量静态数据,写到python脚步开头
十七、json和字典的区别
- json:是一种轻量级的数据交换格式,本质还是字符串
十八、不可逆操作如果处理。比如删除
- 数据库改字段状态。
十九、一个订单的几种状态如何全部测到。
- 造数据,改数据库状态
二十、python如何连接数据库操作
- pymysql
二十一、自动化使用的测试框架是什么?简述自动化框架设计、维护
1、测试框架
- 语言:python
- 测试框架:unittest(assertEqual,assertTure,assertFalse)、pytest
- 接口调用:requests
- 数据驱动:ddt(装饰器)
- 数据管理:openpyxl(excel、CSV、json、yaml、txt)
- 数据库交互:pymysql
- 数据格式的装换:eval,json
- 日志处理:logging——清晰的执行过程,快速定位问题
- 测试报告:allure
- 持续集成:Jenkins(通过插件HTML Publisher/git/Email Extension)进行自动构建,生成HTML,发送邮件
2、自动化框架的设计、维护
- (1)、数据与代码分离(数据驱动)
- (2)、结果分层
- 逻辑层:公用的方法封装起来,避免用例层的代码冗余
- 数据层:设计Excel、excel读取,参数化替换
- 用例层:存放测试用例
3、根据什么来做断言
- 协议状态码:200、404、503
- 业务状态码:status:0
- 业务数据
二十二、做好测试计划的关键是什么
- 明确测试目的,增强测试假话的实用性,
- 保证测试用例的实用性和覆盖率,完全需求文档和规格指标书。
- 严格界定测试周期,测试轮次,测试覆盖模块
二十三、super是干嘛用的
- super用于继承父类的方法、属性。可提高代码的复用性、可维护性
二十四、测试用例的编写要点有哪些?
- 必填字段:请求参数必填项、可填项
- 合法性:输入输出合法、非法参数
- 边界:请求参数边界值等
- 容错能力:大容量数据、频繁请求、重复请求、异常网络等
- 响应数据校验:断言、数据提取传递到下一级接口
- 逻辑校验:两个请求有严格的先后顺序,
- 性能:对接口模拟并发测试,逐步加压,分析瓶颈点
- 安全性:构造恶意字符请求
unittest单元测试框架总结:
https://www.cnblogs.com/yufeihlf/p/5707929.html#test1
测试人员查看log日志:
https://blog.csdn.net/HemingwayM/article/details/84956040