python接口自动化(二)--什么是接口测试、为何要作接口测试(详解) (转载)

转自:https://www.cnblogs.com/du-hong/p/10494149.html

简介

  上一篇和你们一块儿科普扫盲接口后,知道什么是接口,接口类型等,对其有了大体了解以后,咱们就回到主题-接口测试。html

什么是接口测试

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

  通常来讲,测试接口,就是指测试接口的功能,性能和稳定性测试,固然可能还有安全性测试。这个入门系列会让你掌握接口的功能测试。通常,来讲咱们据说到的接口基本上都是指HTTP或者HTTPS协议的接口测试,也就是一些web服务请求。一个软件项目中,前端

有不少接口,少的有几十个,多的有几百上千个接口。这个时候,咱们没有软件界面,没有具体的测试场景,只有一个接口描述文档。咱们须要把接口这样抽象的东西,经过软件测试的理论和方法去测试接口,找出接口的功能和安全性的缺陷。接口有内部接口和外部web

接口。内部接口就是开发人员本身开发的接口。外部接口,比如网站调用微信支付和支付宝支付接口。还有一些模块与模块之间的接口。学习过Java或者用过selenium的人,应该对接口有了解。你的自动化脚本调用了不少selenium的接口。数据库

 为何要作接口测试

  一、如今不少系统先后端架构是分离的,由于不一样端(前段,后端)的工做进度不同,因此咱们要针对最开始出来的接口,以及须要调用其余公司的(银行,支付宝,微信,qq等)一些接口进行接口测试及验证数据,从安全层面来讲,
 
只依赖前端进行限制已经彻底不能知足系统的安全要求(绕过前端太容易了), 须要后端一样进行控制,在这种状况下就须要从接口层面进行验证。在这种状况下就须要从接口层面进行验证。先后端传输、日志打印等信息是否加密传输也是需
 
要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
 
 二、现在系统愈来愈复杂,传统的靠前端测试已经大大下降了效率,并且如今咱们都推崇测试前移也叫 测试左移,但愿测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是否是得等先后端都完成你才能进行测试,才能进行自动化代码编
 
写。 而若是是接口测试,只须要先后端定义好接口,那这时自动化就能够介入编写接口 自动化测试代码,手工测试只须要后端代码完成就能够介入测试后端逻辑而不用等待前端工做完成。
  
   测试左移这个是一次偶然的机会在群里看到的,孤陋寡闻的我,第一次看到,也是只知其一;不知其二,后来查了一些资料供你们参考。
  
   测试左移的原则支持测试团队在软件开发周期早期和全部干系人合做。所以他们能清晰地理解需求以及设计测试用例去帮助软件“快速失败”,促使团队更早的修改全部的bug。  
  
   测试左移并无什么独特的,只是让测试人员在软件开发生命周期内更早的参与进来,同时让他们去理解需求、软件设计、软件架构以及软件功能,也让他们去向客户、商业分析师和开发人员问问题,寻找答案,提供反馈结果已达到支持团队的工做得可能性。参
 
与和理解会使测试人员获取产品完整的知识,完全想清楚各类场景,根据软件行为设计实时的场景,这些都会帮助团队在编码完成以前识别出一些缺陷。这样也能够更好的的体现咱们做为一个QA的价值体                                                                
金字塔模型
经过以前对金字塔结构的学习,大概了解到了金字塔模型想告诉咱们的几个道理:
 
  1.越底层,越稳定。
 
  金字塔主要观点认为 单元测试的稳定性高,须要多投入。
 
  2.越底层,越高效。
 
  程序的问题,最终还得落在具体的代码上,因此底层的测试更容易发现问题。
 
  3.越底层,越低成本。
 
  越底层测试能越早发现问题,越早发现问题,修复的成本天然越低。
 
  4.越底层,越难实施。
 
  越底层的实现对 技术专业性要求越高,这点跟第三点有点矛盾,每每越专业的人才也意味着人力成本越高。
 
  综合下金字塔模型,随着先后端分离愈来愈清晰,我我的愚见提出了灯笼模型,拿 接口测试和UI层测试以及单元测试作了比较,从图中各部分所占有的比重,能够一目了然的看出并最终认定接口(API)测试能够得到较高的投资回报。
                                                                                   

 

 
  灯笼模型
  我的愚见,若有过错,请批评指正:

  接口将前端和后端进行很好的分离,帮先后端实现数据交互,这样在项目初期就能够和前端工程师讨论须要的后端数据,而后后端根据需求开发后接口,将数据返回给前端,测试人员提早进入测试接口,先后端而后在各自开发本身模块。后端

 项目迁移,以及后期维护,接口带来的便利性,试想一下,若是没有项目交付之后,后端人员将数据库的某个字段的长度、类型修改后发版,而因为某些缘由没有及时通知前端工程师,而此时前端的获取的这个字段的类型、长度是之前的,那么就可能引起线上事故。如安全

果前端技术牛叉,存储获取字段是一个变量,工做量还小点。只须要改变变量类型、长度便可,若是是一个差一点的没有用变量,而前端又是好几百个页面都用到这个字段,这样就形成后果没法想象的,可是用到接口就有不同了,若是出现相似的状况,后端人员只需微信

要将这个字段经过接口作处理是返回的字段保持一致便可,也就是分分钟的事,可能用户都没有察觉就修复了。并且前端、后端、测试也很好排查问题,跑一下接口,查看接口文档返回数据有差别,修给接口就能够,这样处理问题效率也会大大提升。前端工程师

  简单归纳:架构

①.越底层发现bug,它的修复成本是越低的。前后端分离

 

②.前端随便变,接口测好了,后端不用变,先后端是两拨人开发的。

 

③.检查系统的安全性、稳定性,前端传参不可信,好比京东购物,前端价格不可能传入-1元,可是经过接口能够传入-1元。

 

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

 

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

 

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

 

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

 

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

相关文章
相关标签/搜索