软件测试接口测试面试题

1.接口测试的流程(如何做接口测试)

  • 获取接口信息(API接口文档,或者抓包获取接口信息)
  • 接口测试用例设计
    根据获取到的接口信息,按照接口测试用例的设计方法,设计参数 和预期的结果
  • 接口发包
    通过postman向接口传递参数
  • 返回信息验证
    获取接口返回的信息,进行解析和验证

接口信息---->用例设计----->接口发包----->验证结果
填写接口url----》设置http方法-----》设置请求头域----》填写请求参数----》http状态码----》收到接口响应----》检查返回头域----》查看返回主题内容

2.发现前台数据显示错误如何定位问题?

1.查看前台调用的接口是否正确
2.查看数据库中初始存储的数据是否正确
3.查看接口调取过来的数据是否正确

3.接口测试用例如何设计?(请列出接口测试用例的设计思路或方法)

首先必要了解接口需求,查看概要设计文档,弄懂业务逻辑和功能模块

  • 先保证这个功能是好的,也就是输入正常的参数,是否可以返回正确的结果
  • 然后考虑接口异常验证:包括必填项验证、长度、类型异常、比如说手机号11位,输入非11位,10位、12位来验证
  • 还有需要考虑接口的业务逻辑。比如说必须执行了登录,才能进行投标操作
  • 一些必要的接口安全验证要考虑到,例如注册接口中传入的密码是需要加密

4.浏览器输入 url 按回车背后经历了哪些(http协议)

1.在 PC 浏览器的地址栏输入一串 URL,然后按 Enter 键这个页面渲染出来,这个过程中都发生了什么事?
1、首先,在浏览器地址栏中输入 url,先解析 url,检测 url 地址是否合法
2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
3、在发送 http 请求前,需要域名解析(DNS 解析),解析获取相应的 IP 地址。
4、浏览器向服务器发起 tcp 连接,与浏览器建立 tcp 三次握手。
5、握手成功后,浏览器向服务器发送 http 请求,请求数据包。
6、服务器处理收到的请求,将数据返回至浏览器
7、浏览器收到 HTTP 响应
8、浏览器解码响应,如果响应可以缓存,则存入缓存。
9、 浏览器发送请求获取嵌入在 HTML 中的资源(html,css,javascript,图片,音乐······),对于未知类型,会弹出对话框。
10、 浏览器发送异步请求。
11、页面全部渲染结束。

5.cookies 机制和 session 机制的区别

  • cookies 数据保存在客户端,session 数据保存在服务器端
  • cookies 可以减轻服务器压力,但是不安全,容易进行
  • cookies 欺骗; session 较安全,但占用服务器资源
    深度了解可以学习此文章深度解析cookie和session的区别

6.http状态码

类别原因短语
1xxinformational(信息性状态码)接收的请求正在处理
2xxSussess(成功状态码)请求正常处理完毕
3xxredirection(重定向状态码)需要进行附加操作以完成请求
4xxclicent Error(客户端错误状态码)服务器无法处理请求
5xxserver Error(服务器错误状态码)服务器处理请求出错

 200 请求已成功,请求所希望的响应头或数据体将随此响应返回。
 201 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,
且其 URI 已经随 Location 头信息返回
 202 服务器已接受请求,但尚未处理
 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应
(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应
继续使用原有位置来进行以后的请求。
 303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来
检索响应时,服务器返回此代码。
 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。  305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返
回此响应,还表示请求者应使用代理。
 307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者
应继续使用原有位置来进行以后的请求。
 401 当前请求需要用户验证。如果当前请求已经包含了 Authorization
证书,那么 401 响应代表着服务器验证已经拒绝了那些证书
 403 服务器已经理解请求,但是拒绝执行它。与 401 响应不同的是,身份
验证并不能提供任何帮助,而且这个请求也不应该被重复提交
 404 请求失败,请求所希望得到的资源未被在服务器上发现
 500 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
一般来说,这个问题都会在服务器的程序码出错时出现。
 501 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的
方法,并且无法支持其对任何资源的请求。
 502 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收
到无效的响应。
 503 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。

7.http 协议请求方式

GET, POST 和 HEAD 方、OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

8.http报文(HTTP 请求报文与响应报文格式)

请求报文包含三部分:
a、请求行:包含请求方法、URI、HTTP 版本信息
b、请求头部(headers)字段
c、请求内容实体(body)
响应报文包含三部分:
a、状态行:包含 HTTP 版本、状态码、状态码的原因短语
b、响应头部(headers)字段
c、响应内容(body)实体

9.常见的 POST 提交数据方式

application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml

10.无状态

1)、无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需
要前面的信息
(2)、无状态协议解决办法: 通过 1、Cookie 2、通过 Session 会话保存。

11.接口测试的必要性(为什么要做接口测试)

1.可以发现很多在页面上操作发现不了的 bug
2.检查系统的异常处理能力
3.检查系统的安全性、稳定性
4.前端随便变,接口测好了,后端不用变
5.可以测试并发情况,一个账号,同时(大于 2 个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
6.可以修改请求参数,突破前端页面输入限制(如金额)

12.接口测试怎么测(平常你是怎么测试接口的?)

  • 通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

  • 参数组合:现在有一个操作商品的接口,有个字段 type,传 1 的时候代表修改商品,商品 id、商品名称、价格有一个是必传的,type 传 2 的时候是删除商品, 商品 id 是必传的,这样的,就要测参数组合了,type 传 1 的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

  • 接口安全
    1、绕过验证,比如说购买了一个商品,它的价格是 300 元,那我在提交订单时候,我把这个商品的价格改成 3 元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
    2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改
    成功
    3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如
    果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则
    是否容易破解。
    4、密码安全规则,密码的复杂程度校验

  • 异常验证:
    所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验
    证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传
    入字符串类型,长度是 10 的,传 11,总之就是你说怎么来,我就不怎么
    来,其实也就这三种,必传非必传、参数类型、入参长度。

  • 性能测试
    接口并发情况,如上面提到的:一个账号,同时(大于 2 个请求)对最后一个商品下单,或不同账号,对最后一个商品下单接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别

13.数据依赖

在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理
用一个全局变量来处理依赖的数据,比如登录后返回 token,其它接口都需要这个 token,那就用全局变量来传 token 参数

14.依赖于第三方数据的接口如何进行测试

mock
详细请看文章
mock测试

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值