作者:Glen.He\来源:http://www.cnblogs.com/puresoul/本文主要分为两部分:第一部分:主要从问题出发,介绍接口测试的相关内容并结合前端测试进行简单的比较和总结两者的区别和联系。但是这部分只是解释了如何以及如何?并且不解释为什么这样做?第二部分:主要介绍了为什么要做接口测试,并简要总结了接口持续集成和接口质量评估的相关内容。第一部分:首先,在接口测试的过程中,后端开发人员经常会问到:1.测试的后端接口有哪些?你是怎么测量的?2.后端接口测试一次,前端也测试一次。是否重复测试?因此,为了向开发解释以上问题,普及测试的基本常识,特意梳理了接口测试的相关内容以及与前端测试的区别,以便于开发团队和测试团队可以就测试达成基本共识,提高团队协作能力。效率,从而更好地保证产品质量。那么,我们尝试回答以上问题:问题1.1,测试的后端接口有哪些?要回答这个问题,我们可以从接口测试活动的内容入手。看下图,基本上反映了我们项目目前后端接口测试的主要内容:问题1.2,我们如何做接口测试?由于我们项目的前后端调用主要是基于http协议的接口,所以在测试接口的时候主要是使用工具或者代码来模拟http请求的发送和接收。工具很多,比如:postman,jmeter,soupUI,java+httpclient,robotframework+httplibrary等。问题2,后端接口测试一次,前端也测试一次。是否重复测试?要回答这个问题,我们可以直接比较接口测试和应用端测试活动的内容。下图是APP测试需要覆盖或考虑的内容:从上面两张图的对比可以看出,两种测试活动相同的部分是:功能测试、边界分析测试和性能测试,其他部分因其不同的特性或关注点需要进行特殊测试,这里不再赘述。下面我们就以上三部分相同的内容进行分析:1.基础功能测试:由于是测试基础业务功能,所以这部分是两个测试重合度最高的部分。开发者平时所指的也主要是这部分的内容。2、边界分析测试:在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是前端的输入输出往往会提供粘性值供用户选择(比如下拉框)。在这种情况下,测试的边界范围非常有限,而在接口测试中则没有这种限制。相对而言接口可以覆盖的范围更广。同样,接口出现问题的概率也更高。3、性能测试:这个比较容易区分。虽然两者都需要进行性能测试,但侧重点却大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等;界面性能主要关注界面响应时间、并发度、服务器资源占用等。两次测试的策略和方法有很大不同,所以这部分内容需要分开测试。从理论上讲,这也是一个不同的部分。总结:1、界面测试和APP测试活动有一些重复的内容,主要以业务功能测试为主。此外,针对各自特性的测试也不同,需要分别进行针对性的测试,以保证整个产品的质量。2、接口测试可以侧重服务端逻辑验证,UI测试可以侧重页面展示逻辑和界面前端与服务端集成验证。推荐一个SpringBoot基础教程和实例:https://github.com/javastacks...第二部分:1.什么是接口测试?接口测试是一种测试系统组件之间接口的测试。接口测试主要用于检测外部系统与内部子系统的交互点。测试的重点是检查数据的交换、交付和控制管理的过程,以及系统之间相互的逻辑依赖关系。2、为什么要进行接口测试?a)当今系统的复杂度不断上升,传统测试方法的成本急剧增加,测试效率急剧下降。接口测试可以为这种情况提供解决方案。b)接口测试相对容易实现自动化持续集成,相对UI自动化相对稳定,可以减少人工回归测试的人力成本和时间,缩短测试周期,支持后端快速发布要求。接口持续集成是低成本高回报的根本原因。c)现在很多系统都有独立的前端和后端架构。从安全的角度来看:1.只靠前端做限制已经不能满足系统的安全要求了(前端太容易绕过),后端也需要管控。这种情况下,就需要从接口层面进行验证。2、前后端传输、日志打印等信息是否加密传输,尤其是涉及用户隐私信息时,如身份证、银行卡等,还需要验证。3、持续性接口测试集成:对于接口测试,持续集成自动化是核心内容。只有借助于自动化,才能做到低成本高收益。目前我们实现了接口自动化,主要用在回归阶段。未来需要加强自动化程度,包括但不限于以下方面:a)流程方面:在回归阶段,将加强对接口异常场景的覆盖,逐步加入到系统测试中,冒烟试验阶段延伸,最终实现全流程自动化。b)结果展示:更丰富的结果展示、趋势分析、质量统计分析等。c)问题定位:错误信息和日志更准确,便于问题复现和定位。d)结果验证:加强自动验证能力,如数据库信息验证。e)代码覆盖率:不断尝试从当前的黑盒下降到白盒,以提高代码覆盖率。f)性能要求:完善性能测试系统,通过自动化手段监控接口性能指标是否正常。4.接口测试质量评价标准:a)业务功能覆盖是否完整b)业务规则覆盖是否完整c)参数验证是否满足要求(边界、业务规则)d)接口异常场景覆盖是否完整完成e)接口覆盖率是否达到要求f)代码覆盖率是否达到要求g)性能指标是否达到要求h)安全指标是否达到要求在明显位置给出原文链接,否则保留追究法律责任的权利。近期热点文章推荐:1.1,000+Java面试题及答案(2021最新版)2.别在满屏的if/else中,试试策略模式,真的很好吃!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!
