接口测试简答

一、为什么要做接口测试

接口可以理解成是不同系统或模块之间资源交流方式。

主要是为了发现前端未做控制的数据传输

二、接口测试能发现哪些问题

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