1、分层自动化测试前端
分层自动化测试是最近曝光度比较高的概念,传统的自动化测试更关注的是UI层的自动化测试,而分层自动化测试则倡导产品的不一样层次都要进行自动化测试。
单元测试:关注代码的实现逻辑,好比一个if分支或者一个for循环的实现;
服务层测试:关注的代码所提供的接口是否可靠;
UI层测试:关注的是界面层的测试;
单元测试和服务层测试,能够经过junit、testNG、unittest等一些测试框架来实现自动化测试。
UI层的测试能够借助selenium、appium模拟页面操做实现自动化测试。
咱们看这个模型为何要设计成金字塔形,而不是长方形或者倒三角形呢,这是为了表示不一样阶段投入自动化测试的比例,越往上层,其维护成本越高,尤为是ui层的元素会时常发生变化,因此咱们应该把更多的自动化测试放在单元测试和接口测试阶段。
在这里咱们不是说不提倡你们作UI测试,而是不该该投入太多精力去作UI层的自动化测试。后端
什么是接口
接口:外部系统与本系统之间以及系统内部的各个子系统间,以约定标准提供的服务,包括对外提供的接口/对内提供的接口。安全
在这块咱们举一个比较生活化的例子,咱们日常使用的笔记本,在笔记本的两端有不少小插口,最多见的就是USB插口,咱们能够把鼠标链接在USB插口上,也能够把键盘、U盘链接在USB插口上,为何同一个USB接口能够链接这么多设备呢,其实这个接口,他就有一个统一对外的链接标准。
在咱们开发当中,也有一个对外暴露的接口,由于他们服务的协议都是统一的,最多见的就是hhtp协议,咱们规定好一种格式,让客户端来调用咱们。
这里面键盘鼠标属于调用方,插到笔记本的USB上,就能够链接设备,就能够进行操做了。对外暴露的一个统一的一个规范,这样去理解接口,更形象一些。架构
什么是接口测试
在了解完什么是接口以后,咱们来讲一下什么是接口测试。
接口测试测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,保证对外提供接口的正确性和健壮性。
咱们在具体测试过程当中,咱们不用关心接口调用方和接收方的实现逻辑,咱们只须要知道传入什么数据,返回什么的结果是否达到咱们的预期。接口测试其实也是黑盒测试,他与UI测试的区别就是没有界面交互,是不可视化的。app
咱们为何要作接口测试
测试前置:咱们不能等到整个系统所有开发完成才能进行测试,咱们能够经过调用接口来进行测试,把问题拦截在前期,下降问题修复成本。
Bug更容易定位:由于咱们按接口进行测试,出现问题后在被测接口中排查就能够了,它比系统集成以后,发现问题更容易定位,系统集成以后有各类模块的调用,出现bug以后再排查,排查的链路很是的长。另外从机制上更接近出问题的地方更容易命中问题。
先后端分离结构:如今不少系统都采用先后端分离架构,各服务之间更多的是经过接口来实现信息互通,对接口进行直接测试,能够更全面的覆盖各种测试场景。
自动化测试落地性价比高:比UI自动化测试更稳定,咱们上面已经说了UI层的元素时常发生变化,有时改一个简单的元素,都有可能致使咱们的自动化测试走不下去,写一套自动化测试脚本比较容易的,可是维护起来,会耗费很大的时间精力,相对来讲,接口就比较稳定,一个项目没有大的改造,入参和出参就是固定的,变化的几率比较小,这样维护起来也比较方便。
减小安全隐患:好比咱们在日常的测试过程当中,测试用户名和密码,密码格式要求不能输入特殊字符,前端作了校验,然后端没有处理,这样咱们只测试页面,这条case就默认经过了,但一些黑客可能经过抓包的方式进行登陆,这样安全隐患就比较大了。咱们对接口进行安全测试,能够避免安全隐患。框架
接口测试用例如何设计
前后端分离
自动化测试如何落地工具
借助工具: Postman、Jmeter、jsf平台、jsf测试工具、easytest
编写测试脚本:Java+TestNG单元测试
下面就是我为你们整理出来的一份软件测试资料图免费获取,加群:681491189测试
加油吧,测试员!路就在脚下,成功就在明天!
将来的你确定会感谢如今拼命的本身!