前后端分离项目-接口是什么

时间:2021-06-01 00:38:57

接口都有哪些类型?

接口一般来讲分为两种:

  • 程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。
  • 系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

常见的接口分类

  • webService接口:走soap协议通过http传输,请求报文和返回报文都是xml格式的。测试时需要通过工具才能进行调用、测试。少数公司还在使用这种接口,如医院等行业。
  • http api接口:走http协议,通过路径来区分调用的方法,请求和报文都是key-value形式的,返回报文一般都是json串,有get和post等方法。目前来讲,是最常用的。

接口的本质是什么?

接口你可以简单的理解他就是URL,工作原理就会说URL通过get或者post请求像服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。


什么是接口测试?

通过URL像服务器或者其他模块等,传输我们想传输的数据,然后看看他们返回的是不是我们预期想要的。


为什么要做接口测试?

  • 越底层发现bug,它的修复成本是越低的。
  • 前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
  • 检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
  • 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
  • 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

怎样做接口测试?

1.分析接口文档和需求文档

分析接口文档或者需求文档一般会去找测试点,那么接口测试的测试点我们一般从几种方向去找

  • 功能性测试点
  • 性能测试点
  • 安全性测试点

2.编写接口测试计划

测试计划就是功能测试计划基本一样就是知名的5w1h了

1) why——为什么要进行接口测试;

2) what—测试接口包括哪些;

3) when—测试接口不同阶段的起止时间;

4) where—相应接口文档,接口缺陷的存放位置,测试环境等;

5) who—项目有关人员组成,哪些接口分配给哪些人;

6) how—使用哪些测试工具以及测试方法进行测试。

3.编写接口测试用例

测试用例就是根据具体的哪个接口来编写,一般会分为单接口和多接口两种场景来编写测试用例

1) 单接口场景的测试

  • 正向数据:也就是能正常发送请求,正常获取响应的数据,一般我们从三个方面去组织:
  • 所有必填参数
  • 全部参数(必填参数+选填参数)
  • 参数组合(必填参数+某些选填参数)
  • 反向测试:用不属于规定范围的数据区发送请求检查服务器能否正常处理
  • 异常数据:数据为空,长度过多或者过少(边界值外),类型不符(需要数字类型传递str类型),错误的数据
  • 异常的参数:不传参数,少传参数,多传参数,传递错误的参数
  • 异常的业务数据:结合业务功能考虑输出的各种异常返回情况

2) 多接口场景的测试

  • 业务场景功能测试(站在用户角度考虑常用的使用场景)
  • 多业务场景功能测试主要是测试接口之间数据依赖

4.接口测试执行

根据设计的测试用例就可以执行测试用例当然执行的方式有几种

  • 使用postman之类的工具,一个一个进行测试,这种方式我们叫做手工测试
  • 使用jmeter之类的有自动化功能方式进行测试,这种叫做工具自动化测试
  • 我们可以自己编写测试脚本,使用测试脚本自动加载测试,这种就是自动化测试了

5.生成接口测试报告

  • 测试完成了以后就可以生成测试报告了

前后端分离项目-接口是什么


接口测测试点是什么?

目的:测试接口的正确性和稳定性;

原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;

重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;

核心:持续集成是接口测试的核心;

优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);

用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);

PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能;


其他相关知识?

接口文档

后台接口人员和移动端开发人员之间的配合肯定少不了接口文档这种利器!像中大型项目可能一个接口包含的字段就有上百个,如果没有接口文档,仅仅靠两个人口头交流,那估计一天就只能搞定几个接口配合。


接口文档有哪几种形式哪?

  • Excel,Word等文档形式。(古老方式)
  • 接口管理开源网站(高效便捷)Eolinker

一个完整的接口需要由以下几部分组成

请求地址 http://127.0.0.1:8080/x/xx/xxx

请求方式 post,get

请求参数 id:‘1’,name:‘阿花’

返回参数 json

返回实例


接口测试的原理

通过模拟客户端 or Web浏览器向服务器发送请求,服务器接收请求后对接收到的数据做处理,同时向客户端返回应答,我们模拟的客户端,接收到返回的数据后再对数据进行判断 ,如何判断呢?

1、判断请求: 是否正确, 系统默认的请求成功,会返回200状态码, 假如请求错误返回400, 404, 500等状态码

2、判断数据: 返回数据的正确性与完整性

3、判断安全性: 接口一般不会随意暴露在网上被其他人任意调用,一般我们会对接口做出一些限制,比如请求次数、请求频率限制等等

简单来说:找个能联网的工具根据接口文档,向接口服务器发送请求,获取响应,检查响应是否符合接口文档的规范


接口测试都要掌握哪些知识

①了解系统及内部各个组件之间的业务逻辑交互;

②了解接口的I/O(input/output:输入输出);

③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;

④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;

⑤数据库基础操作命令(检查数据入库、提取测试数据等);

⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等;