【接口测试】接口测试的特点是什么?

2020-10-22 19:27发布

6条回答
爱梦 -拿来吧你
1楼 · 2020-10-23 09:30.采纳回答

一、基础介绍

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中使用。


霸气的名字 - 喜欢晴天
2楼 · 2020-10-22 19:34

接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

具体来说,就是根据测试文档编写测试用例,执行测试,查看不再的参数请求接口时返回的数据是否符合预期,跟普通的测试没太大区别。

接口测试策略包括接口功能测试、接口性能测试和接口安全测试三方面,具体测试点包含但不局限于如下内容:

接口测试点


橘子奶茶冻
3楼 · 2020-10-25 10:54
接口测试的好处:
由于接口测试代码本身就是用junit(当然接口的类型不同,不一定是Junit来实现)来实现的,是属于自动化测试的范畴,因此必定也包含自动化测试所固有的优势。
1) 提高测试质量
软件开发的过程是一个持续集成和改进的过程,而每一次的改进都可能引进新bug,因此当软件的一部,或者全部修改时,都需要对软件产品重新进行测试。其目的是要验证修改后的产品是符合需求的,而当没有自动化测试代码时,往往会由于各种各样的原因,回归不充分,导致bug遗漏。
2) 提高测试效率
软件系统的规模越来越大,功能点越来越多,开发人员的自测或者测试人员的人工测试非常耗时和繁琐,势必导致测试效率的低下,而自动化测试正好解决这些耗时繁琐的任务,在对外接口功能不变的情况下,达到了一次编写,永久使用的效果。
3) 提高测试覆盖通过手工测试很难测试到一些更深层次的异常和安全的问题,通过一些辅助的一些测试工具,能分析出代码的覆盖率,通过覆盖率的提高来提高测试的深度。
4) 更好地重现软件缺陷由于每次执行都是相同的代码,一旦代码出错,必定回归出错
5) 更好定位错误
由于接口测试是一种自下向上的测试,因此一量出错,非常容易定位出错,不向系统测试那样了,一旦有Bug,需要几层验证之后才能确定出错位置
6) 降低修改bug的成本接口测试基本和开发人员的编码平行工作,因此发现问题会比系统测试早很多,因此减少了修改bug的成本。
7) 增进测试人员和开发人员之间的合作关系,测试工程师为了更好地开展工作,需要对开发技术有深入的理解和实践,有了与开发工程师更多的交流。
8) 降低了项目不能按时发布的风险由于接口测试很早就介入,在提交给系统测试前对项目代码的核心模块已经做了详尽的测试,必定加速系统测试的时间,由此来保证项目的按时发布。
9)提升测试人员的技能。做接口测试必须了解开发人员的开发流程和一些开发技能,也需要了解测试工具的一些使用方法和一些测试思想,提升了测试人员的技术附加值,提高了自身的竟争力。
10)促使项目开发过程的规范化
要进行接口,需要完善的文档进行保障 ,没有测试文档,接口测试将寸步难行,接口测试将增加开发过程规范化产出,而规范化产出也保证了项目质量。


哈哈哈哈哈哈嗝
4楼 · 2020-10-30 14:23

接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

具体来说,就是根据测试文档编写测试用例,执行测试,查看不再的参数请求接口时返回的数据是否符合预期,跟普通的测试没太大区别。

接口测试策略包括接口功能测试、接口性能测试和接口安全测试三方面,具体测试点包含但不局限于如下内容:

接口测试点



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

刘凤超
6楼 · 2021-01-11 21:12

1. 更早的发现问题

随着敏捷测试的盛行,我们都知道测试工作要尽早的介入到项目开发周期中,因为越早的发现 bug,修复的成本就越低。

然而功能测试一般都要等到系统提供可测试的 UI 界面后才能进行,单元测试又要求较高的专业性和人力成本,所以选择接口测试来更早的介入测试。

接口测试可以在功能界面未开发出来之前对系统的接口进行测试,从而更早的发现总是并以更低的成本修复问题。

2. 缩短产品周期

接口测试更早的介入,可以更早的发现并解决 bug,从而使得留到后期功能测试阶段的 bug 数量减少,最终缩短整个项目的上线时间,有助于实现敏捷测试。

3. 发现更底层的问题

系统中的有些 bug 如果想通过 UI 层功能测试会比较困难,或者构造测试数据和测试条件非常复杂,而通过接口测试可以更简单、更全面的覆盖到底层的代码逻辑,从而发现一些隐藏 bug。

尤其是一些异常的、极端的情况,可以用接口测试很容易的验证。

四、接口测试策略

接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

具体来说,就是根据测试文档编写测试用例,执行测试,查看不再的参数请求接口时返回的数据是否符合预期,跟普通的测试没太大区别。


相关问题推荐

  • Postman是什么软件?2020-08-12 09:55
    回答 4

    Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。

  • 回答 12

    Postman的官网上这么介绍它:Modern software is built on APIs,Postman helps you develop APIs faster,看得出来,它是一个专门测试 API 的工具,如果你正在进行 API 相关的开发,那这篇文章就是你的福利!Postman 提供功能强大的 Web API 和 HTTP 请求的...

  • 回答 14

    接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。...

  • 回答 2

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

  • 回答 11
    已采纳

    接口测试的工具可以进行接口测试的工具很多,这里简单介绍几个: 1、loadrunner:一款商业性能测试工具,用来做接口测试,很好很强大 2、jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request...

  • 回答 5

    接口是指外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。  常见web接口:一类是http协议的接口,另一类是web service接口(如soup、rmi、rpc协议)。...

  • 回答 10

    接口测试的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,本人首推的测试工具是postman和jmeter,接下来就简单介绍下如何使用这两款工具进行接口测试,其他工具本次暂不介绍。1)、Postman是谷歌的一款接口测试插件,它使用简单,支持...

  • 回答 7
    已采纳

    Fiddler显示菜单工具栏的操作教程      秃秃的fiddler      view-->show tool bar      然后菜单栏就出现了      3我感觉在fiddler,有一个非常厉害实用的功能就是      auto responder ,自动回发。      尤其是在调试...

  • 回答 2
    已采纳

    看看这个思维导图能帮助到你吗

  • 回答 4

    早期的开关量控制装置就是继电器逻辑控制,后来有电子技术了,开关量控制装置开始采用电子技术模仿继电逻辑,比较典型的就是比较典型的就是可编程序控制器(PLC),此外还有各种开关电路组成的控制器、以单片机为核心器件的控制器等,很多,其基本原理都是源...

  • 回答 5

    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。...

  • 回答 8

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更...

  • 回答 3

    一、Jmeter关联的方式:Jmeter中关联可以在需要获取数据的请求上 右键–>后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联为什么要进行关联:...

  • 回答 5

    首先第一步要导入mysql驱动包一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Password:密码二、添加JDBC Reques三、在http请求中加入变量username_id_N...

  • 回答 3

    再今天重新学习,从数据库中取数据,并作为变量传到下一个请求中。首先第一步要导入mysql驱动包  一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Pass...

  • 回答 5

    一、CSV 参数化1、我们做性能测试需要并发多个用户,为了真实模拟用户行为,我们需要模拟多个不同的用户登录,这是我们就需要进行参数化。这里我们选择比较常用的参数化方法-CSV Data Set Config首先打开CSV Data Set Config2.新建cvs文件放在和脚本同一个目...

没有解决我的问题,去提问