如上图所示,UI测试、接口测试和单元测试是都是测试环节需要走通的,其中单元测试通常是由开发同学完成,这里就不展开了,重点说一下我理解的UI自动化和接口自动化策略。
UI测试
UI测试是最接近软件真实用户使用行为的测试类型。通常是模拟真实用户使用软件的行为,即模拟用户在软件界面上的各种操作,并验证这些操作对应的结果是否正确。
接口测试
API测试,主要针对的是各模块暴露的接口,通常采用灰盒测试方法。首先以黑盒方式设计如何调用API的测试用例,同时在测试执行过程中统计代码覆盖率,然后根据代码覆盖率情况来补充更多、更有针对性的测试用例。
那么,UI自动化和接口自动化需要更偏向哪个呢?
一、UI自动化
大家所在公司都属于互联网公司,最大的特点就是快——产品需要不停的迭代,迭代时间基本在15天左右。
UI自动化的优点是能够实际模拟真实用户的行为,直接验证软件的商业价值;
缺点是维护成本很高,UI自动化测试的稳定性问题,一直是阻碍GUI测试发展的重要原因。
现在的互联网公司,最大的特点就是快,不停地迭代更新保持自己的竞争力。在快速迭代的情况下,页面的改动可能会很频繁,而UI自动化本身基于页面元素,前端小小的改动到UI测试的层面可能就是从头到尾的推翻重做。
二、接口自动化
相比于UI自动化会出现的更新迭代较快的问题,可以通过接口层面来进行自动化测试。
目前市场上大部分项目,都是前后端分离的项目,由此产生了大量的接口。这些接口基本不会有大改动,有也是属于业务重新设计了,所以接口自动化的相对稳定性高,维护成本相对UI自动化会低很多。
三、工具推荐
UI自动化层级,更多是用的selenium,支持在多种浏览器上进行web测试。
下载:github
API自动化层级,Eolinker是国内最好用的之一,上手难度小,导出来的报告也很直观和美观。
在线使用:www.eolinker.com