美文网首页
接口测试面试

接口测试面试

作者: Snailon | 来源:发表于2019-07-08 14:33 被阅读0次

    接口面试题

    1. HTTP协议状态码400\403\500\502分别代表什么

    首先,回答题干状态码含义

    400 -- 浏览器端请求方式不对或请求提交的参数有误

    402 -- 此状态码为保留状态码,当前无具体含义

    500 -- 服务器运行异常,一般是源码运行中抛出异常

    502 -- 客户端通过代理服务器间接访问服务器时,代理服务器从上游服务器获取的响应无效

    然后,可以对其他状态码做出补充说明

    一般情况下状态码大致有五种:

    1xx: 只会在实验状态下使用,生产环境下杜绝出现,1xx代表请求正常,但是服务器不产生响应

    2xx: 请求响应正常,比如 200 201 204 等

    3xx: 以其他方式获取资源,比如: 304 取本地缓存 302 重定向等

    4xx: 客户端异常比如: 400 404

    5xx: 服务器端异常,比如: 500

    2. 多个API的连续调用的测试用例的难点是什么,你是如何解决的

    1. 不同 API 之间的数据传输问题,可以使用关联进行数据的提取与传输
    2. 使用到逻辑控制器(分支和循环)

    3. TCP/IP连接,建立连接几次握手,断开连接几次握手,画出建立连接和断开连接的示意图

    建立连接 3 次握手,断开连接 4 次挥手

    4. 什么是restful

    RESTful 是常见的一种软件架构,他约束了 API 文档的编写规范

    在API文档中描述各个功能点实现的流程以及数据提交和响应的规则,由于程序中有大量的接口实现,对应的文档篇幅较长,为了保证文档的易读性,可以引入 RESTful 架构风格

    具体约束如下:

    增:

    要素1: URL + POST

    要素2: 使用 JSON 数据

    要素3: 201(200) + 新增的那条数据

    删:

    要素1: URL + DELETE

    要素2: 键值对格式

    要素3: 204 + 无

    改:

    要素1: URL + PUT

    要素2: 使用 JSON 数据

    要素3: 201(200) + 修改后的数据

    查:

    要素1: URL + GET

    要素2: 键值对格式

    要素3: 200 + 单条数据或多条数据

    PS: RESTful 架构风格是程序实现时的软性非硬性约束,API文档以及程序实现可以不遵守此规范

    5. 你项目里的接口是怎么测的

    1、指定一个测试计划,任务分配

    2、接任务,从API 文档提取接口清单

    3、设计测试用例以及测试数据

    4、编写测试脚本导入测试数据并执行

    5、结果比对,BUG 提交

    6. 接口测试用例怎么写?

    测试用例设计主要考虑两方面即:正向数据与逆向数据,具体原则如下

    \1. 覆盖所有的必选参数

    \2. 组合可选参数

    \3. 参数边界值

    \4. 如果参数的取值范围是枚举变量,需要覆盖所有枚举值

    \5. 空数据

    \6. 包含特殊的字符

    \7. 越界的数据

    \8. 错误的数据

    7. 为什么你的商城项目要测试后台接口,可以直接页面功能测试对比数据库就好了,为什么还要测接口

    1、不易于BUG定位,集成测试时,一旦出现BUG,由于前端也有部分算法实现比如 JS,那么不能准确定位BUG产生于前端还是后端

    2、集成测试时,即便不出现BUG,也有可能是前端过滤了非法数据,但是我们跨过前端恶意访问,存在一定的安全隐患

    3、就测试效率而言,当系统越庞大、复杂时,接口测试可以提高测试效率

    8. 知不知道参数加密,如果接口的参数加密了,你要怎么去测

    需要编写脚本,使用相应的加密算法对参数加密(一般求助开发)

    9. HTTP请求有哪些方法,有什么区别

    较为常用的有: GET POST PUT DELETE

    1 GET 请求指定的页面信息,并返回实体主体。(主要用于查询)
    2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。(主要用于新增)
    4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。(主要用于修改)
    5 DELETE 请求服务器删除指定的页面。(主要用于删除)
    6 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    7 OPTIONS 允许客户端查看服务器的性能。
    8 TRACE 回显服务器收到的请求,主要用于测试或诊断。

    10. postman如何使用,主要进行什么操作

    Postman 使用时,围绕三个要素设计:

    1、请求接口的 URL 与请求方式

    2、提交的测试数据

    3、查看响应状态码与响应体

    接口测试中主要实现一些简单操作,复杂实现,可以使用 Jmeter

    11. 列出常见请求状态码

    答案见题目2

    12. 接口测试用的什么工具,如何判断响应内容是否符合预期

    测试工具:Jmeter

    判断响应内容可以使用断言组件

    13. JSON与XML的区别比较

    (1).XML的优缺点
    <1>.XML的优点
      A.格式统一,符合标准;
      B.容易与其他系统进行远程交互,数据共享比较方便。
    <2>.XML的缺点
      A.XML文件庞大,文件格式复杂,传输占带宽;
      B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
      C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
      D.服务器端和客户端解析XML花费较多的资源和时间。

    (2).JSON的优缺点
    <1>.JSON的优点:
      A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
      B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
      C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
      D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
      E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
    <2>.JSON的缺点
      A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
      B.JSON格式目前在Web Service中推广还属于初级阶段。

    14. TCP协议和HTTP协议有什么区别

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。前者偏底层,后者偏表层

    15. 介绍一下Cookie和Session

    cookie 和session 的区别:

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
    考虑到安全应当使用session。

    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
    考虑到减轻服务器性能方面,应当使用COOKIE。

    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

    5、所以个人建议:
    将登陆信息等重要信息存放为SESSION
    其他信息如果需要保留,可以放在COOKIE中

    16. post方法和get方法的区别,分别用在哪些场景下

    区别:

    1、安全性, POST 隐式提交数据, GET 显示提交数据,前者更安全

    2、数据提交量, POST 提交数据时,数据量无限制, GET 提交数据时,数据量有限制,具体限制值视浏览器而定

    3、效率,GET 执行效率比 POST 更高

    场景:

    1、当提交的数据涉及安全或隐私性数据时,建议使用 POST,比如登录

    2、当提交的数据量较大时,建议使用 POST,比如注册

    3、当数据量不大且不涉及安全性问题时,建议使用 GET

    17. 介绍一下json的格式

    1、对象格式

    语法:

    {

    “键1”:”值1”,

    “键2”:”值2”,

    “键3”:”值3”,

    .....

    }

    举例:

    存储一个学生的信息

    {

    “name”:”张三”,

    “性别”:”男”,

    “电话”:”110”

    }

    2、数组格式

    语法:[值1,值2,值3....]

    举例:存储一些人名

    [“刘德华”,”周星驰”,”黄秋生”]

    3、复合格式

    数组格式可以和对象格式相互嵌套

    3-1、对象中嵌套数组,举例: 存储人的基本信息,其中有爱好一项,爱好对应多个值

    {

    “name”:”张三”,

    “性别”:”男”,

    “电话”:”110”,

    “爱好”:[“工作”,”学习”,”生活”]

    }

    3-2、数组中嵌套对象,举例:存储一些学生的基本信息

    [

    {

    “name”:”张三”,

    “性别”:”男”,

    “电话”:”110”

    },

    {

    “name”:”李四”,

    “性别”:”男”,

    “电话”:”120”

    },

    {

    “name”:”王五”,

    “性别”:”女”,

    “电话”:”119”

    }

    ]

    接口测试用例如何编写。

    在编写接口测试用例之前,我会熟悉需求,查看API文档,分析哪些字段是必填的,可选的,枚举值(固定值,如男,女)等,然后用工具自动生成测试用例。并且覆盖率为100%。

    相关文章

      网友评论

          本文标题:接口测试面试

          本文链接:https://www.haomeiwen.com/subject/nmiohctx.html