一接口测试概述
从底层到上层依次是单元测试、服务测试、UI测试,越接近接近底层,收益成本比越高,我这要说的就是服务测试,也叫做接口测试、API测试
二接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等
通俗一点就是输入数据,返回数据,不同种类的接口应用层协议可能不一样,传输的数据格式也可能不一样。检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期。
接口就是前段和后端的一个桥梁,那前端的界面要如何展示出来呢,它需要通过接口从服务端去获取。目前很多的项目都是前端和后端分离开发的,前端,后端开发完成,只需要做一个联调就好了,前端没有数据也能够进行开发,我们只需要通过Mock就可以完成了。
接口测试类型
主要包含三种测试:
Web接口测试应用程序接口测试数据库测试
主要接口类型:
getpostputheaddeletesearchconnectpropfindproppatchmkcolcopymovelockunlockoptions
测试API在不同条件下返回正确的响应或输出。此输出通常是以下三种之
通过或失败状态数据或信息调用另一个API
如何开展接口测试
一般来说,我们开展接口测试的流程如下:
需求确定后,开发出API文档拿到API文档,编写接口测试用例开发交付实施接口测试
接口测试用例跟常规的功能测试用例基本一样,可以从接口功能测试、接口业务测试、接口性能测试、接口安全测试等角度考虑
接口功能的关注点是
接口每个参数输入正确与错误接口参数却是接口参数边界值接口参数类型
项目后端接口测试内容:
APP测试:
接口业务测试,功能测试:
主要是从业务的角度出发,把接口组合成一条业务链,比如登录之后下个订单,然后再取消,数据库中的数据是否正确等等
接口的性能测试:
是指接口是否满足业务的要求,比如业务要求系统可以满足50个人同时下单,那么下单这个接口就要可以承担50TPS,目前业内一般使用JMETER去做性能测试,或者我们自己用Python脚本编写压力测试脚本
边界值测试:
在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分。前端的输入输出很多时候都是提供固守的值让用户选择,在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。
针对接口的功能和业务逻辑测试,如果采用手工的方式可以使用POSTMAN、HTTPCLIENT等工具,也可以使用JMETER、SOAPUI工具,同时也可以自己写脚本去测试,这种方式更为灵活,更容易实现一些复杂的场景和业务逻辑
Python做接口自动化测试
使用python做接口自动化测试是非常简单的,python入门非常简单,通过短时间的学习后,就可以开展自动化测试了,但需要掌握如下知识:
理解HTTP学会使用Fiddler熟悉python基础,python数据类型、函数、模块、类Mock服务熟悉常用的python模块,如requests、json、configobj、pyyaml等熟悉python单元测试框架,如unittest、pytest、nose等熟悉python操作数据库的方法
三持续集成
每天打开项目跑测试,那将会非常的麻烦,解决的办法就是持续集成Jenkins,点一下构建,自动完成测试,每天都能看到自己项目的质量情况、质量报告
对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:
流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。
结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等
问题定位:报错信息、日志更精准,方便问题复现与定位。
结果校验:加强自动化校验能力,如数据库信息校验。
代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。
性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。
四接口测试质量评估标准
业务功能覆盖是否完整
业务规则覆盖是否完整
参数验证是否达到要求
接口异常场景覆盖是否完整
接口覆盖率是否达到要求
代码覆盖率是否达到要求
性能指标是否满足要求
安全指标是否满足要求
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点