接口自动化测试面试题大全(合适各级软件测试人员)
前言
内容是很干货的!对我也很有帮助。本文仅做个分享~
下面我们进入正题—接口自动化测试面试题
一、HTTP有哪些请求方法?
HTTP 共有如下7种请求方式,每种都可以发送 Header和 Body:
GET
POST
PUT
DELETE
OPTIONS
HEAD
PATCH
二、接口测试中依赖登录状态的接口如何测试?
依赖登最状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的Session或Cookie才能发送成功,在构建POST请求时添加必要的Session或Cookie
三、get和post的区别?
http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议
Get会把参数附在url之后,用?分割,&连接不同参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据
Get产生一个tcp数据包,post产生两个tcp数据包
Get请求,浏览器会把http header和data一起发送,服务器返回200响应码
Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码
Post的安全性比get高,如果浏览器缓存了,会把get参数留在缓存中,用户可以看到参数信息
四、http状态码302, 403, 503分别代表什么?
302:临时重定向到某一个页面,比如要登录之后才能进入的页面,他首先会临时重定向到登录界面
403:权限不够 服务器理解客服端的请求,但拒绝此请求
503:服务端目前无法使用,过载或者维护中
500:服务端异常
404:请求失败,请求所希望得到的资源未被在服务器上发现
401:请求身份验证
1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理
2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。
3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location
域中指明。这系列中最常见的有301、302状态码。
4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。
5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503状态码。
五、自动化测试怎么校验结果?
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对。
六、post请求的四种参数形式是什么?
Application/x-www-form-urlencoded:将参数以一组键对值的方式发送
Multipart/form-data:支持单组和多组文件上传
Application/json:根据后端接口的定义支持数据类型
Text/xml
七、接口自动化测试的流程?
基本的接口功能自动化测试流程为:需求分析–>用例设计–>脚本开发–>测试执行–>结果分析
八、接口测试的常用工具有哪些?
Postman
JMeter
SoapUI
九、HTTP接口的请求参数类型有哪些?
查询字符串参数(Query String Parameters参数)一般用于GET请求,会以url string的形式进行传递
请求体参数(Request Body)一般用于POST请求,可以使用Content-Type来指定不同参数类型
十、如何从上一个接口获取相关的响应数据传递到下一个接口?
先从上一个接口中的响应数据获取对应的返回值,然后使用正则表达式or使用JSON解析来提取需要获取的值,然后存储在一个变量中,最后在下一个接口中直接引用该变量即可
十一、接口测试用例的编写要点有哪些?
必填字段:请求参数必填项、可选项
合法性:输入输出合法、非法参数
边界:请求参数边界值等
容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
响应数据校验:断言、数据提取传递到下一级接口…
逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
性能:对接口模拟并发测试,逐步加压,分析瓶颈点
安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)
十二、接口测试中依赖登录状态的接口如何测试?
依赖登最状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的Session或Cookie才能发送成功,在构建POST请求时添加必要的Session或Cookie
十三、依赖于第三方数据的接口如何进行测试?
可以利用一些MOCK工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖