接⼝测试⾯试题汇总
接⼝测试⾯试题汇总
1、get和post区别是什么?
答:POST和GET都是向服务器提交数据,并且都会从服务器获取数据。
区别:
(1)传送⽅式:get通过地址栏传输,post通过报⽂传输
(2)传送长度:get参数有长度限制(受限于url长度),⽽post⽆限制
(3)GET产⽣⼀个TCP数据包(对于GET⽅式的请求,浏览器会把http header和data⼀并发送出去,服务器响应200返回数据),POST产⽣两个TCP数
据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)
(4)get请求参数会被完整保留在浏览历史记录⾥,⽽post中的参数不会被保留
(5)在做数据查询时,建议⽤GET⽅式;⽽在做数据添加、修改或删除时,建议⽤post⽅式
2、cookie和session的区别
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)cookie不是很安全,别⼈可以分析存放在本地的cookie并进⾏cookie欺骗,考虑到安全应当使⽤session
(3)session会在⼀定时间内保存在服务器上。当访问增多,会⽐较占⽤你服务器的性能,考虑到减轻服务器性能⽅⾯应当使⽤cookie
(4)单个cookie保存的数据不能超过4K,很多浏览器都限制⼀个站点最多保存20个cookie
(5)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie
3、请求接⼝中常见的返回状态码
答:
1xx -- 信息提⽰(表⽰临时的响应。客户端在收到常规响应之前,准备接收⼀个或多个1xx响应)
2xx -- 成功(表明服务器成功地接受了客户端请求)
3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页⾯,或通过代理服务器重复该请求)
4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页⾯,客户端未提供有效的⾝份证验证信息)
5xx -- 服务器错误(服务器由于遇到错误⽽不能完成该请求)
常见的有
(1)200 OK - [GET]:服务器成功返回⽤户请求的数据
(2)201 CREATED - [POST/PUT/PATCH]:⽤户新建或修改数据成功
(3)202 Aceepted - [*]:表⽰⼀个请求已经进⼊后台排队(异步任务)
(4)204 NO CONTENT - [DELETE]:⽤户删除数据成功
(5)400 INVALID REQUEST - [POST/PUT/PATCH]:⽤户发出的请求有错误,服务器没有进⾏新建或修改数据的操作
(6)401 Unauthorized -[*] :表⽰⽤户没有权限(令牌、⽤户名、密码错误)
(7)403 Forbidden -[*] :表⽰⽤户得到授权(与401错误相对),但是访问被禁⽌
(8)404 NOT FOUND -[*]:⽤户发出的请求针对得到是不存在的记录,服务器没有进⾏操作,该操作是幂等的
(9)406 Not Acceptable - [GET]:⽤户请求的格式不可得(⽐如⽤户请求JSON格式,但是只有XML格式)。
(10)410 Gone -[GET]:⽤户请求的资源被永久删除,且不会再得到的。
(11)422 Unprocesable entity - [POST/PUT/PATCH] 当创建⼀个对象时,发⽣⼀个验证错误。
(12)500 INTERNAL SERVER ERROR - [*]:服务器发⽣错误,⽤户将⽆法判断发出的请求是否成功。
4、怎么设计接⼝测试⽤例
通常,设计接⼝测试⽤例需要考虑以下⼏个⽅⾯:
(1)是否满⾜前提条件
有些接⼝需要满⾜前提,才可成功获取数据。常见的,需要登录Token
逆向⽤例:针对是否满⾜前置条件(假设为n个条件),设计0~n条⽤例
(2)是否携带默认值参数正向⽤例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计1条⽤例
(3)业务规则、功能需求
这⾥根据时间情况,结合接⼝参数说明,可能需要设计N条正向⽤例和逆向⽤例
(4)参数是否必填
逆向⽤例:针对每个必填参数,都设计1条参数值为空的逆向⽤例
(5)参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
(6)参数数据类型限制
逆向⽤例:针对每个参数都设计1条参数值类型不符的逆向⽤例
(7)参数数据类型⾃⾝的数据范围值限制
正向⽤例:针对所有参数,设计1条每个参数的参数值在数据范围内为最⼤值的正向⽤例
5、如何分析是前段还是后端的问题
(1)检查接⼝,前端和后台之间是通过接⼝⽂件相互联系的,需要查看接⼝⽂件
(2)检查请求的数据是什么,反馈的数据⼜是什么
(3)根据接⼝⽂件,检查数据是否正确。如果发送的数据是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;如果前端没有请求接⼝或
请求的时候发送数据与需求不符,那这个时候就是前端的问题了。
(先抓包看请求报⽂,对着接⼝⽂档,看请求报⽂有没问题,有问题就是前端发的数据不对
请求报⽂没问题,那就看返回报⽂,返回的数据不对,那就是后端开发的问题)
6、在⼿⼯接⼝测试或者⾃动化接⼝测试过程中,上下游接⼝有数据依赖如何处理?
答:在⼯具中可以使⽤全局变量等⽅式将需要的数据进⾏传送
7、依赖第三⽅数据的接⼝如何进⾏测试?
答:可以使⽤SoapUI等⼯具直接调⽤第三⽅数据接⼝的webservice,通过返回值来查看第三⽅数据的接⼝是否调⽤正常
也可以利⽤⼀些MOCK的⼯具来模拟第三⽅的数据返回,最⼤限度的降低对第三⽅数据接⼝的依赖
8、接⼝测试中,依赖登录状态的接⼝如何测试?
答:依赖登录状态的接⼝的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie