学妹半夜突然问我什么是接口测试???
然后我给她的讲解如下:
接口测试是项目测试的一部分,正如其名,它测试的主要对象是接口,是测试系统组件间接口的一种测试。
百度百科对接口测试的定义:接口测试一般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
一般来说接口测试按测试对象分为两种类型:模块接口测试、web接口测试;web接口测试又可以分为服务端接口测试和外部接口测试。
模块接口测试其实就是单元测试的基础,适用于分别开发一些功能模块,数据会在这些功能模块之间传递。服务端接口测试,就是测试客户端/浏览器与服务端接口,一般开发人员都分为前端开发和后端开发,他们之间的怎么进行接口交互,可以参考我之前的文章接口测试基础-了解http请求。外部接口测试,其实相对而言的,这个接口不是本系统内部的,而是调用的是第三方的接口,如支付宝授权登录,需要调用支付宝授权接口。
接口测试是一种完整的测试体系,也分为接口功能测试、接口性能测试、接口稳定性测试、接口安全性测试。
接口测试也可以分为参数测试和场景测试。参数测试就是对单个接口的入参和出参进行详细的测试,包括入参默认值、必传项、非必传项、业务逻辑、兼容性测试(是否兼容不同版本的前端)、错误码、异常类型、安全加密等。场景测试,就是指单个接口组成的连续的场景,比如注册功能,需要包括发送验证码接口、注册接口,其中注册接口包含的功能有验证注册账号和注册验证码功能。
了解了接口测试是什么之后,怎么做接口测试呢?接口测试的流程其实和功能测试流程类似:接口测试计划-接口测试用例-接口测试执行-接口测试报告。测试用例设计的依赖对象主要是需求说明书和接口文档。
接口测试因其不是针对普通用户,而是针对的另外一个系统组件,所以不能直接测试,需要使用工具测试,比如服务端http接口测试,常用的工具有jmeter、postman、httpclient等。用工具测试,所以目标就是准备要测试数据测试脚本后直接执行即可, 在进行测试执行编写时,有如下的原则:
1.不同的接口参数覆盖不同的业务场景;
2.在后台构造合适的数据来满足接口的测试用例;
3.根据接口的返回值,断言其是否返回期望结果,并查看数据库验证;
4.测试用例涉及多个步骤的,应对涉及的步骤都验证;
5.删除测试过程中产生的结果,确保每个用例执行前都是一个清洁的环境。
对接口测试而言,持续集成自动化是核心内容,通过自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:
a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。
b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等
c) 问题定位:报错信息、日志更精准,方便问题复现与定位。
d) 结果校验:加强自动化校验能力,如数据库信息校验。
e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。
f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。
接口测试质量评估标准
a) 业务功能覆盖是否完整
b) 业务规则覆盖是否完整
c) 参数验证是否达到要求(边界、业务规则)
d) 接口异常场景覆盖是否完整
e) 接口覆盖率是否达到要求
f) 代码覆盖率是否达到要求
g) 性能指标是否满足要求
h) 安全指标是否满足要求
postman:接口测试工具。常用必备!
fiddler:抓包工具。常用必备!
(温馨提示,文末滑动栏有相关文章哦)
mock:模拟出参的工具,有很多实现方案;
jemter:性能测试工具,也可以用来做接口测试;
python:requests库,学python绕不开这家伙;
swagger-ui等一些web工程。
…
最后,下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。
希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。
由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。
下面是一份配套的软件测试资源包:
上面是一些配套资源,对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。
关注我的微信公众号:程序员二黑,即可免费获取!
最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。
高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救?
清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+
字节跳动软件测试岗,前两面过了,第三面HR天坑!竟然跟我说……