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