一、基础介绍
1、什么是接口
我们常说的接口一般指2种
1)API:应用程序编程接口
2)GUI:图形用户界面(接口)
这里我们主要说API——接口测试
 
2、接口测试的目的
测试接口的正确性和稳定性(持续集成是接口测试的核心)
 
3、接口测试的原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。
 
4、接口测试的重点
检查数据的交换,传递和控制管理过程,还包括处理的次数
 
5、接口测试用例设计
接口测试对象主要为接口,但随着系统复杂度越来越高,接口越来越多,完全覆盖是一件很困难的事情,且实际过程中任意接口的变动都可能导致我们接口测试用例不可用,
所以通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常)。
PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能。
 
6、接口测试的优点
天生为高复杂性的平台带来高效的缺陷监测和质量监督能力;平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本)
 
二、接口分类及分析方法,测试重点
1、功能分类
1)功能间接口:系统中功能模块间的接口,比如:ERP系统中采购模块和库存模块之间的接口
     特点:一般部署在同一个服务器中,并且使用同一个数据库
     测试方法:通常采用黑盒测试方法,注意接口数据在不同模块间的走向;尤其是接口间的逻辑控制关系
     例如:销售发货,检查库存可用量,如可用量不足,则不允许发货
2)系统间接口:不同系统间的接口,比如:银行的各个系统间的接口。核心系统和各个外围系统之间都是此类接口
     特点:部署在不同服务器上,不仅采用不同的数据库,而且数据库类型还有可能不同
     测试方法:通常采用白盒测试方法,关注系统间接口的实现方式
     例如:接口文件类型、接口文件格式、接口文件处理方式等
 
2、类型分类
1)业务接口:系统或功能间有业务逻辑关系,比如:ERP系统中,采购入库后,会生成库存入库单,影响可用量等,也可称为:联机接口
     特点:接口间有业务逻辑的上下游关系,可能会涉及跨系统或者模块的逻辑控制,以及反向操作
     测试方法:通常黑盒测试方法,注重分析业务逻辑,采用路径覆盖法分析,重点:注意正向反向操作的测试
2)数据接口:接口数据有上下游关系,比如:企业征信系统,要通过数据交换平台获取核心系统的数据,也可称为:批量接口
     特点:系统间只存在数据的上下游关系,而且都是进行批量处理
     测试方法:通常采用白盒测试方法,关注数据的文件格式,以及记录数及内容是否正确,还要考虑数据加密问题
 
3、数据方向分类
1)单向接口:数据在接口中是单向流动,但根据实现方式分为单项推或单项取
     比如:数据仓库和各系统间的接口基本都是单项的,一方面前端系统向数据仓库推送数据,一方面后端系统从数据仓库取数据仓库提供的数据
     特点:不管是单向推还是单项取,都会有一个FTP地址,存放指定数据文件,并且有定时存取规则,可从日志中查看结果
     测试方法:通常采用黑盒白盒结合的测试方法,着重数据文件格式,是否按照规则存取等
2)双向接口:两个系统间的数据有往来,比如:综合报文处理系统和核心系统,从何报文处理系统即接受核心系统发送的数据,又要将处理结果反馈给核心系统
     特点:可以将不同数据方向的接口分开分析,当做两个单项接口,注意来往数据通常具有关联性
     测试方法:通常采用黑盒白盒结合的测试方法,注重来往数据的关联性,合理设计测试数据,制定测试执行计划
 
4、数据读写方式分类
1)单独读写接口:数据在接口中不仅单项流动,而且都是读或者写的单独操作,比如:前面提到的各系统和数据仓库的数据交换
     特点:与单项接口相似
     测试方法:黑盒白盒相结合的方法,注意读写的权限,以及单接口功能未正常实现时,系统是否有异常处理机制
2)即读又写接口:系统间接口处理时,即读取又写入,比如:贷款合同管理和核心系统,先读取核心系统中的合同信息,添加合同成功后,又将合同编号回写到核心系统中
     特点:一般都是业务类接口,非数据类接口,并且都有逻辑控制的要求
     测试方法:通常采用黑盒测试方法,注意业务逻辑控制,不仅要检查读取的数据是否正确,还要检查回填数据是否正确
 
5、层级分类
1)直接(联机)接口:系统或模块间的接口是直接联通的
     特点:直接联通
     测试方法:黑盒白盒相结合的方法,根据接口特征分析即可
2)间接(非联机)接口:系统间接口不是直接联通,通过第三方中转后,才进行连接,比如:综合报文系统和核心系统,中间隔着一个ESB
     特点:接口间的中间层,会进行处理,才会将数据发送到接口系统,这个不会涉及业务逻辑,只是数据格式转换
     测试方法:黑盒白盒相结合的方法,可直接忽略中间层的存在,设计测试用例;但出现问题时,一定要注意中间层处理是否正确,并且,测试中间层异常时,系统处理是否正确
 
三、怎么做好接口测试
1、接口正确性是双方保障,都要进行测试
 
2、根据接口类型,合理进行测试分析,注意测试重点
 
3、注重业务逻辑分析,包括正向反向操作
 
4、注重数据文件检查
 
四、接口测试的工具
可以进行接口测试的工具很多,这里简单介绍几个:
 
1、loadrunner:一款商业性能测试工具,用来做接口测试,很好很强大
 
2、jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request应对测试
 
3、poster:火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手
 
4、postman:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同poster差别不大,界面简洁
 
5、soapui:开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试;
          该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。
 

PS:写在最后:

以保证系统的正确和稳定为核心,以持续集成为手段,提高测试效率,提升用户体验,降低产品研发成本,关注持续集成是接口测试的灵魂,否则接口测试带来工作量会成指数增长!

转载:https://www.cnblogs.com/imyalost/p/5832672.html

感谢

转载请注明出处,商用请征得作者本人同意,谢谢!!!

接口testing简介的更多相关文章

  1. 开放数据接口 API 简介与使用场景、调用方法

    此文章对开放数据接口 API 进行了功能介绍.使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用. 在给大家分享的一系列软件开发视频课程中,以及在我们的社区微信群聊天中,都积极地鼓励大家开 ...

  2. 微信分享接口SDK简介使用

    很久没做移动端活动了,想不少人都参与过微信里面的活动,既然活动就少不了分享.那我就行一个前端的角度说说如何实现微信分享的吧. 对应微信分享,现在已有公共接口,微信的开发者文档SDK:https://m ...

  3. (一)CGI (通用网关接口) 简介

    CGI (通用网关接口)公共网关接口(Common Gateway Interface,CGI)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能.CGI 应用程序能与浏览器 ...

  4. 廖雪峰Java15JDBC编程-3JDBC接口-1JDBC简介

    JDBC:Java DataBase Connectivity Java程序访问数据库的标准接口 使用Java程序访问数据库的时候,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接 ...

  5. 接口testing需要的技能

    1.什么是接口测试? 定义:测试系统组件间接口的一种测试.主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等: 目的 ...

  6. 集合类(Collection和Map接口)简介

    集合分为Collection和Map,详细分类如下图所示: 以下是测试验证代码: //HashSet,无序(存取不一致).去重 Set set_H = new HashSet(); set_H.add ...

  7. MRCP接口MRCPRecog 简介

    功能:开始一个语音识别,一边讲话,一边识别,需要ASR服务器. 原型:MRCPRecog (grammar, options) grammar ---- 语法文件,可以是一个xml文件 options ...

  8. testing - 测试基本使用接口

    testing - 测试基本使用接口 当你写完一个函数,结构体,main之后,你下一步需要的就是测试了.testing包提供了很简单易用的测试包. 写一个基本的测试用例 测试文件的文件名需要以_tes ...

  9. 让产品有效迭代,前端A/B Testing的简单实现

    A/B Testing简介 互联网产品的迭代速度很快,往往一周一小发布,一月一大发布,产品提出的种种需求,哪些改动是提升产品体验的,哪些是阻碍产品进步的,如果没有数据可以参考,仅仅是靠拍脑袋的话,对产 ...

随机推荐

  1. Centos8安装docker-compose

    一.首先检查是否有pip 执行命令:piv -V 二.更新pip 执行命令:pip install --upgrade pip 三.下载  setuptools 执行命令 :pip install - ...

  2. foreach里的按引用传值问题

    1.foreach($arr as $k=>&$v){ } 这样循环时候最后一个结果前边会有&,出现输出不了的情况,这时候只需要加一个unset($v),加在循环里和外均可. 2 ...

  3. js 之 for循环

    js之 for循环 普通for 循环 语法 for ([initialization]; [condition]; [final-expression]) statement initializati ...

  4. 更改 vsftpd 的端口号

    2019独角兽企业重金招聘Python工程师标准>>> vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成 801 ,修改后能保证用户上传下载不受影响 1.编辑 / ...

  5. 深度使用魅族16T后的评价(本人魅友,绝对客观公正,不要盲目的为手机厂商辩护,想想从当初到现在,魅族正在一步步背离自己的信仰,有问题,解决问题才能有更好的发展)

    缺点: 电池电量问题 发布会上,那都是吹的,真是的体验效果掉电很快,大概只有描述的2/3的使用时间 屏幕触控失灵问题 我也看了很多评价,这个也挺多的,可能是魅族品控的问题,某宝到现在没给我退货换货 发 ...

  6. JAVA大数--POJ 1715 大菲波数

    Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3. 计算第n项Fibonacci数值.  Inp ...

  7. Java面试题:抽象类和接口的区别

    1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系.但是,一个类却可以实现多个interface. 2.在abstract class 中可以有自己 ...

  8. 用Redislive监控redis

    注意:RedisLive是使用Python2.x编写,建议使用2.7,本次环境为Centos 7.2,默认Python版本2.7. 项目地址:https://github.com/nkrode/Red ...

  9. 【Hadoop离线基础总结】Hadoop High Availability\Hadoop基础环境增强

    目录 简单介绍 Hadoop HA 概述 集群搭建规划 集群搭建 第一步:停止服务 第二步:启动所有节点的ZooKeeper 第三步:更改配置文件 第四步:启动服务 简单介绍 Hadoop HA 概述 ...

  10. python入门及数字、字符串类型

    目录 python开发框架 开发 1. 开发语言 2. 语言比对 3. python安装 4. Python开发IDE:pycharm ,eclipse python入门 1. 第一句Python 2 ...