什么是接口测试:
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系。
接口的分类:
常见的接口有webservice接口、http接口,还有dubbo接口。
1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
为什么做接口测试:
如今的系统越来越复杂,尤其是目前的微服务系统,涉及子系统很多,那么测试前移会提前发现问题,所以这个时候接口测试就是最重要的,可以提前发现系统之间交互点的问题,提前发现提前修改,等前端完成后,在测试就节省开发成本和时间.
1.接口测试和前端测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。
2.接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证
如何做接口测试:
由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
--也可以用接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。
接口测试的测试点是什么:
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
核心:持续集成是接口测试的核心;
优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);
PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能。
接口测试质量评估标准:
b) 业务规则覆盖是否完整
c) 参数验证是否达到要求(边界、业务规则)
d) 接口异常场景覆盖是否完整
e) 接口覆盖率是否达到要求
f) 代码覆盖率是否达到要求
g) 性能指标是否满足要求
h) 安全指标是否满足要求
接口测试用例:
业务功能测试:
- 正常业务场景
- 错误业务场景
边界分析测试
1.业务规则边界分析
2.输入输出参数边界分析
覆盖所有的必填参数
组合可选参数
参数有、无或null
参数的顺序、个数、类型
参数类型数值大小,输入的数值范围
参数字符串类型null 长度
参数包含特殊字符
参数包含空格
参数组合测试
1.多参数组合测试
2.少参数组合测试
异常场景测试
幂等(重复提交)
并发测试
事务测试
分布式测试
环境异常测试
大数据量测试 服务不可用测试
性能测试
响应时间、并发数、TPS CPU、内存、IO、带宽
安全测试
敏感信息是否加密、sql注入、批量送红包
接口测试需要哪些知识:
①了解系统及内部各个组件之间的业务逻辑交互;
②了解接口的I/O(input/output:输入输出);
③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;
④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;
⑤数据库基础操作命令(检查数据入库、提取测试数据等);
⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等。
如何学这些技能?
①系统间业务交互逻辑:通过需求文档、流程图、思维导图、沟通等很多渠道和方式;
②协议:推荐《图解http》这本书,内容生动,相对算是入门级的书籍,其他的还有《图解tcp、IP》等;
③接口测试工具:百度这些工具,然后你会发现,好多的教学博客、相关问题解决方案、以及一些基于工具的书籍,当然,选择合适的书很重要;
④数据库操作命令:学习网站以及一些数据库相关书籍,入门级推荐:《mysql必知必会》、《oracle PL/SQL必知必会》等等。
⑤字符类型:还是百度,有句话这么说:内事不决问百度,外事不决问Google……
如何获取接口相关信息?
一般的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,如果没有,想办法获取。。。