接口测试基础

一、接口基本知识

①、接口定义:我们常说的接口就是API,接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址,请求参数,拼接报文,然后发送请求,检查返回结果。

②、接口类型:接口一般分为两种:1.程序内部的接口 2.系统对外的接口
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

二、接口测试测什么

①、为什么要做接口测试
1)越底层发现bug,它的修复成本是越低的。
2)前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
3)检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
4)如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
5)接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
6)现在很多系统前后端架构是分离的,从安全层面来说:
(1)只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
(2)前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
接口测试点:目的:测试接口的正确性和稳定性;
测试后台逻辑的正确性,修改body里的值来看后台逻辑是否正确处理。

②、接口测试,测什么?
1.检查接口返回的数据是否与预期一致
2.检查接口的容错性。比如传入一个错误的数据是否有异常处理
3.接口参数的边界值。比如传递的参数足够大或为负数时,接口是否可以正常处理
4.接口的性能,http请求接口大多与后端执行的SQL语句性能、算法等比较相关
5.接口的安全性。外部调用的接口尤为重要
测试重点是检查数据交换,传递参数和控制管理过程,以及系统间的相互逻辑依赖关系。
通俗点,通过URL向服务器或者其他模块等传递测试的数据,对比返回的结果是否符合预期结果。

可用性:
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果
1)接口功能是否正确实现;
2)返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
3)参数值边界值、等价类测试;

健壮性:
即错误和异常处理
1)输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应(返回的状态码应与设计的一致);
2)输入错误的参数,接口能正确处理,并按预期响应;
3)多输入、少输入参数,接口能正确处理,且按预期响应;
4)错误传输数据格式(如json格式写成form格式)测试;
(总之,不能直接抛出异常调试代码、代码实现细节信息等;通常返回事先约定的错误码)

安全性:
主要指传输数据的安全性
1)敏感数据(如密码、秘钥)等是否加密传输;
2)返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
3)接口是否对传入的数据做安全校验,如身份ID加token类似校验;
4)接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);

性能:
如接口的响应时间、并发处理能力、压测处理情况
1)并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);(建议涉及数据插入都应该做此测试,往往开发员写接口时没考虑并发性)
2)接口响应时长在用户可忍受的范围内;(F12查看响应时间)
3)对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;

三、接口测试工具

接口协议及相应的接口测试工具:
1、基于http协议的接口
http协议又叫超文本传输协议,主要是用于和服务器之间交互数据,这种接口常使用get和post两种方法请求,基于这种协议开发的接口是目前市面上面最多的!一般使用的接口测试工具有: Postman、ApiPost
2、基于webService协议的接口
webService是基于soap的通信协议,请求和返回报文一般是xml格式的。一般使用的接口测试工具有:SoapUI
3、基于Dubbo协议的接口
1、dubbo 缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况
2、不适合传送量的服务,比如传文件,传视频等,除非请求量很低。
3、基于Dubbo协议的接口一般也是使用SoapUI工具进行测试。

四、接口测试用例设计

接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多!
接口测试设计测试用例的思路如下:
1.接口业务逻辑测试?(正例)
接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。
2.模块接口测试?(反例)
模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。
模块接口测试的主要包括以下几个方面:
1)鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
2)其他参数异常:
1、必填项检查
2、参数的长度、类型、格式异常:
常规参数:(数字、字符串、日期)
参数长度:6-18位。或身份证、电话的长度。
参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。
日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。
3)错误码异常覆盖。
4)接口测试其他的关注点

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值