接口测试的总结

本文主要分为两个部分:前端

  第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结二者以前的区别与联系。但该部分只交代了怎么作和如何作?并无解释为何要作?java

  第二部分:主要介绍为何要作接口测试,并简单总结接口持续集成和接口质量评估相关内容。数据库

 

第一部分:后端

首先,在作接口测试的过程当中,常常有后端开发会问:安全

  1. 后端接口都测试什么?怎么测的?
  2. 后端接口测试一遍 ,前端也测试一遍,是否是重复测试了?

      因而,为了向开发解释上述问题,普及基本的测试常识,特地梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提升团队协做效率,从而更好的保证产品质量。服务器

 

而后,咱们试着回答上面的问题:架构

问题1.一、后端接口都测试什么?并发

  --回答这个问题,咱们能够从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前咱们项目后端接口测试的主要内容:app

 

问题1.二、咱们怎么作接口测试?工具

  --因为咱们项目先后端调用主要是基于http协议的接口,因此测试接口时主要是经过工具或代码模拟http请求的发送与接收。工具备不少如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

 

问题二、后端接口测试一遍 ,前端也测试一遍,是否是重复测试了?

  --回答这个问题,咱们能够直接对比接口测试和app端测试活动的内容,以下图为app测试时须要覆盖或考虑内容:

   从上面这两张图对比能够看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分因为各自特性或关注点不一样须要进行特殊的测试,在此不作讨论。接下来咱们针对以上三部分相同的内容再进行分析:

一、基本功能测试:

  因为是针对基本业务功能进行测试,因此这部分是两种测试重合度最高的一块,开发同窗一般所指的也主要是这部分的内容。

二、边界分析测试:

  在基本功能测试的基础上考虑输入输出的边界条件,这部份内容也会有重复的部分(好比业务规则的边界)。可是,前端的输入输出不少时候都是提供固守的值让用户选择(以下拉框),在这种状况下测试的边界范围就很是有限,但接口测试就不存在这方面的限制,相对来讲接口能够覆盖的范围更广,一样的,接口出现问题的几率也更高。

 三、性能测试:

  这个比较容易区分,虽然都须要作性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用状况等。两种测试时的策略和方法都有很大区别,因此这部份内容是须要分开单独进行测试的,理论上来讲这也是不一样的部分。

 

综论:

      一、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此以外,针对各自特性的测试都不同,须要分别进行有针对性的测试,才能确保整个产品的质量。

  二、接口测试能够关注于服务器逻辑验证,而UI测试能够关注于页面展现逻辑及界面前端与服务器集成验证

  

第二部分:

一、什么是接口测试?

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

 

二、为何要作接口测试?

  a) 现在的系统复杂度不断上升,传统的测试方法成本急剧增长且测试效率大幅降低,接口测试能够提供这种状况下的解决方案。

  b)  接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,能够减小人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为何能低成本高收益的根源。

  c)   如今不少系统先后端架构是分离的,从安全层面来讲:

        一、只依赖前端进行限制已经彻底不能知足系统的安全要求(绕过前面实在太容易), 须要后端一样进行控制,在这种状况下就须要从接口层面进行验证。

        二、先后端传输、日志打印等信息是否加密传输也是须要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

 

三、接口测试持续集成:

      对接口测试而言,持续集成自动化是核心内容,经过持自动化的手段咱们才能作到低成本高收益。目前咱们已经实现了接口自动化,主要应用于回归阶段,后续还须要增强自动化的程度,包括但不限于下面的内容:

  a) 流程方面:在回归阶段增强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

  b) 结果展现:更加丰富的结果展现、趋势分析,质量统计和分析等

  c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

  d) 结果校验:增强自动化校验能力,如数据库信息校验。

  e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提升代码覆盖率。

  f) 性能需求:完善性能测试体系,经过自动化的手段监控接口性能指标是否正常。

 

四、接口测试质量评估标准:

  a) 业务功能覆盖是否完整

  b) 业务规则覆盖是否完整

  c) 参数验证是否达到要求(边界、业务规则)

  d) 接口异常场景覆盖是否完整

  e) 接口覆盖率是否达到要求

  f)  代码覆盖率是否达到要求

  g) 性能指标是否知足要求

  h) 安全指标是否知足要求

相关文章
相关标签/搜索