目录
接口
编辑
接口(API)的组成
接口测试概念
为什么做接口测试?
模块接口测试
模块接口测试
Web接口测试
接口测试质量评估标准
接口测试流程
软件测试流程基本步骤:
接口测试测试的是:
接口测试点:
接口测试工具jmeter(postman,restclient)
jmeter优缺点
badboy录制工具
接口
接口(API)的组成
- http — 普通的http请求,默认端口为80
- https — 加密的http请求,传输数据更加安全,默认端口为443
- ftp — 文件传输协议,主要用来传输文件,默认端口为21
- IP(域名):就是指提供接口的系统所部署的服务器地址,可以是直接的IP地址
- 端口:如果不填端口,都是默认端口,否则需要填写端口号
- 接口地址:指系统提供的接口在什么位置
- 接口参数:参数在接口路径后,用“?”来表示路径地址结束,用“&”来区分参数个数
接口测试概念
接口测试是测试系统组件间接口 的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
针对软件接口的分类一般有如下几种情况:
1)系统与系统之间的调用,如微信向用户提供统一的对外接口,程序员调用接口完成基于微信的小程序等;
2)同一系统内部上层服务对下层服务的调用,如一个软件程序一般分为表示层,业务层和数据层,表示层调用业务层的接口来完成自己的工作,而业务层又会调用数据层的接口来实现相应的业务等。
其以保证系统的正确和稳定为核心,重要性主要体现为以下几个方面:
(1)能够提早发现 bug,符合质量控制前移的理念。
(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。
(3)接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑
为什么做接口测试?
1.越底层,越稳定。2.越底层,越高效。3.越底层,越低成本。4.越底层,越难实施
模块接口测试
接口测试大体分为两类:模块接口测试和web接口测试。
模块接口测试
是单元测试的基础,它主要测试模块的调用与返回。经常需要编写一些桩模块与驱动模块。
主要测试要点如下:
检查接口返回的数据是否与预期结果一致。
检查接口的容错性,假如传递数据的类型错误时是否可以处理。
接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。
接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。
接口的安全性
Web接口测试
web接口测试又可分为两类:服务器接口测试和外部接口测试。
服务器接口测试:是测试浏览器与服务器的接口。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试。
外部接口测试:这个很典型的例子就是第三方支付,比如在我们应用中在充流量时,交话费时,都会调用第三方支付接口。
主要测试要点如下:
请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。
检查返回数据的正确性与格式;json是一种非常常见的格式。
接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
接口的性能,这直接影响用户的使用体验。
接口测试质量评估标准
- 业务功能覆盖是否完整
- 业务规则覆盖是否完整
- 参数验证是否达到要求(边界、业务规则)
- 接口异常场景覆盖是否完整
- 接口覆盖率是否达到要求
- 代码覆盖率是否达到要求
- 性能指标是否满足要求
- 安全指标是否满足要求
接口测试流程
- 需求评审,熟悉业务和需求
- 开发提供接口文档
- 编写接口测试用例
- 用例评审
- 提测后开始测试
- 提交测试报告
软件测试流程基本步骤:
- 测试计划拟制;
- 测试方案编写;
- 测试用例设计;
- 测试执行;
- 生成软件问题报告
接口测试测试的是:
- 接口功能是否实现
- 返回值是否正确
- 测试参数内容
- 数据安全性
- 敏感性数据
- 接口能否正确处理
接口测试点:
目的:测试接口的正确性和稳定性;
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
核心:持续集成是接口测试的核心;
优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);
接口测试工具jmeter(postman,restclient)
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序);能满足接口功能自动化、批量数据准备、性能测试等多重需求;当前业界最主流的接口测试工具之一,很多公司的接口自动化平台和性能测试平台都是基于其内核扩展的,不仅适合个人学习和使用,更适合规模化和团队化使用。
jmeter优缺点
优点:
- 开源,他是一款开源的免费软件,使用它你不需要支付任何费用
- 小巧,相比LR的庞大,它非常小巧,不需要安装,但需要JDK环境,因为它是Java开发的工具。
- 支持功能扩展开发。
- 学习成本比较低,容易上手。
- 验证功能时候,能够跳过前端页面数据限制,验证服务端对数据是否有限制等
缺点:
- 支持想协议没有loadrunner多,不过目前主流协议基本上都支持
- 压测的结果分析报表没有loadrunner详细丰富,不过一些主要的性能指标都支持生成展示了,比如TPS,QPS,吞吐量等
badboy录制工具
当需要开发大量接口,这时候可以先利用badboy工具录制脚本,然后保存成.jmx文件,再把这个文件导入到jmeter中去,进行一定修改然后即可完成大量脚本的开发工作。