接口自动化简介-如何做好接口自动化测试

长青诗 238 2022-08-04


本文关于接口自动化简介以及如何做好接口自动化测试

一、分层自动化测试

分层自动化测试是最近曝光度比较高的概念,传统的自动化测试更关注的是UI层的自动化测试,而分层自动化测试则倡导产品的不同层次都要进行自动化测试。

单元测试:关注代码的实现逻辑,比如一个if分支或者一个for循环的实现;

服务层测试:关注的代码所提供的接口是否可靠;

UI层测试:关注的是界面层的测试;

单元测试和服务层测试,可以通过junit、testNG、unittest等一些测试框架来实现自动化测试。

UI层的测试可以借助selenium、appium模拟页面操作实现自动化测试。

我们看这个模型为什么要设计成金字塔形,而不是长方形或者倒三角形呢,这是为了表示不同阶段投入自动化测试的比例,越往上层,其维护成本越高,尤其是ui层的元素会时常发生变化,所以我们应该把更多的自动化测试放在单元测试和接口测试阶段。

在这里我们不是说不提倡大家做UI测试,而是不应该投入太多精力去做UI层的自动化测试。


什么是接口

接口:外部系统与本系统之间以及系统内部的各个子系统间,以约定标准提供的服务,包括对外提供的接口/对内提供的接口。



在这块我们举一个比较生活化的例子,我们平常使用的笔记本,在笔记本的两端有很多小插口,最常见的就是USB插口,我们可以把鼠标连接在USB插口上,也可以把键盘、U盘连接在USB插口上,为什么同一个USB接口可以连接这么多设备呢,其实这个接口,他就有一个统一对外的连接标准。

在我们开发当中,也有一个对外暴露的接口,因为他们服务的协议都是统一的,最常见的就是hhtp协议,我们规定好一种格式,让客户端来调用我们。

这里面键盘鼠标属于调用方,插到笔记本的USB上,就可以连接设备,就可以进行操作了。对外暴露的一个统一的一个规范,这样去理解接口,更形象一些。

什么是接口测试

在了解完什么是接口之后,我们来说一下什么是接口测试。

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

我们在具体测试过程中,我们不用关心接口调用方和接收方的实现逻辑,我们只需要知道传入什么数据,返回什么的结果是否达到我们的预期。接口测试其实也是黑盒测试,他与UI测试的区别就是没有界面交互,是不可视化的。

我们为什么要做接口测试

测试前置:我们不能等到整个系统全部开发完成才能进行测试,我们可以通过调用接口来进行测试,把问题拦截在前期,降低问题修复成本。

Bug更容易定位:因为我们按接口进行测试,出现问题后在被测接口中排查就可以了,它比系统集成之后,发现问题更容易定位,系统集成之后有各种模块的调用,出现bug之后再排查,排查的链路非常的长。另外从机制上更接近出问题的地方更容易命中问题。

前后端分离结构:现在很多系统都采用前后端分离架构,各服务之间更多的是通过接口来实现信息互通,对接口进行直接测试,可以更全面的覆盖各类测试场景。

自动化测试落地性价比高:比UI自动化测试更稳定,我们上面已经说了UI层的元素时常发生变化,有时改一个简单的元素,都有可能导致我们的自动化测试走不下去,写一套自动化测试脚本比较容易的,但是维护起来,会耗费很大的时间精力,相对来说,接口就比较稳定,一个项目没有大的改造,入参和出参就是固定的,变化的概率比较小,这样维护起来也比较方便。

减少安全隐患:比如我们在平常的测试过程中,测试用户名和密码,密码格式要求不能输入特殊字符,前端做了校验,而后端没有处理,这样我们只测试页面,这条case就默认通过了,但一些黑客可能通过抓包的方式进行登录,这样安全隐患就比较大了。我们对接口进行安全测试,可以避免安全隐患。

接口测试用例如何设计




如何做好接口自动化测试

自动测试最终都要做回归测试,当代码有变化时,有可能会影响不应改变的逻辑,此时为了确认这种情况,需要进行回归测试。有时回归测试的范围比较大,如果完全由人工测试,一次两次还是可以接受的,如果每次都这么做,人力成本不说,反复执行同一个测试用例的测试人员也会抱怨。



  对界面进行自动化测试,可以实现对人工测试不容易进行的验证,如验证接口中大量数据的排序、多字段比较等,如果都是通过人肉进行的,则效率问题是不可接受的。



  功能逻辑难以由手工完全验证,一些异常、极限场景难以由手工构建,此时如果理解接口的内部逻辑,则使用脚本有目的地构造此类场景,从而触发接口的内部逻辑,从而对这些逻辑进行验证测试,这相对容易。



  对针对线接口采用定时自动测试,可启动一定的监控作用,当接口功能有问题时,通过定时巡检即可及时发现。



  第一是对业务要有相当程度的了解,如果要设计好的接口自动化测试用例,必须对业务有深入的了解,因为前期接口自动化会有一定的投入,如果我们能把有限的精力集中在业务上,能起到事半功倍的效果。



  第二,拥有设计功能测试用例所用到的测试设计基本原理,自动化测试与功能测试一样,同样不可穷举,也不能做到足够的充分测试,然后需要通过一些测试分析,选出最有效的测试用例。



  最终具有一定的代码能力、架构设计能力。



  界面自动化测试需要注意哪些



  因为进行接口自动化测试有一定的成本,所以编写自动化接口测试用例,实际上要有一个折衷。



  若测试用例书写得非常精细,我们将测试界面中的每个功能点,甚至是每条分支路径上都包含在内,那么测试代码的逻辑尤其依赖于被测代码的逻辑,而如果测试代码逻辑稍有改变,测试用例可能会失败。



  即使测试代码的逻辑发生了变化,但如果我们的测试用例验证的内容不够精细,那么测试用例的执行也可能会变得不容易失败,这样就可以忽略由于代码变化而造成的真正错误。



  因此,进行自动化测试要找到一个平衡点,特别是要注意与其他级别的测试相互配合,如单元测试、 UI自动化测试、人工测试等等。在测试之前,我们可以预先定义一组分层测试的规格说明,也就是哪些逻辑应该有接口自动化测试保证,哪些逻辑由用户测试来保证。当我们进行不同级别的测试时,我们可以相互合作以达到一个高的测试覆盖率。本规格

上述就是小编为大家整理的关于接口自动化简介以及如何做好接口自动化测试的内容



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中synchronized用法汇总
下一篇:SpringBoot中Jackson日期格式化技巧分享(jackson 日期格式化)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~