本文介绍一下什么是接口测试
接口测试是项目测试的一部分,它测试的主要对象是接口。主要用于检测外部外部系统与所测系统之间以及内部各系统之间的交互点。
重点是检测数据交互、传递、和控制管理过程以及系统之间的相互依赖关系等
1、系统内部模块接口的测试
模块接口测试主要包括以下内容:
1) 各个模块连接集成起来的时候,穿越模块接口的数据会不会丢失。
2)各个子功能组合起来,能否达到预期要求。
3) 一个模块的功能是否对另外一个模块的功能产生不利的影响。
4)全局数据结构是否有问题。
5) 模块的积累误差是否达到了不可接受的程度。
6)系统环境的测试
2、外部系统与系统的交互:
比如 app---支付宝 ,app--微信等不同系统之间的交互测试
3、硬件接口的测试:
1) 服务器接口的测试。包括服务器与交换机接口,以及服务器与磁盘阵列的接口。重点测试在线的状态,测试当服务器发送故障时,交换机或者磁盘阵列能否与备用服务器连接上。
2) 交换机接口的测试,包括交换机与防火墙接口、交换机与磁盘阵列的接口以及交换机与路由器接口的测试。
3) 路由器与调制解调器的接口测试,包括路由器与单个调制解调器的接口,以及交换机与多个调制解调器的接口。
4) 调制解调器与通信平台接口的测试,包括调制解调器与通信平台的DDN接口,调制解调器与通信平台的ISDN接口,调制解调器与通信平台的X.25接口,以及调制解调器与通信平台的FR(帧中继)接口。
接口测试策略
1.接口逻辑测试
接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。
2.模块接口测试
模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。 模块接口测试的主要包括以下四个方面:
1) 空值(Null)输入,检查模块接口对空值(Null)的反应能力。
2) 参数属性的测试,输入一个未赋值的参数会出现的情况。
3) 异常的测试,制造一些异常的测试场景,测试异常描述是否清晰。
4) 参数的个数设计与模块接口参数的个数不一致时,检查模块接口的反应能力。包括以下两种情况:
a、模块接口参数的个数不一致(或多于原设计的参数个数,或少于原设计的参数个数);
b、模块接口参数的类型不一致(字符型和数值型混用)
1) 数据类型问题,包括:
a、变量的数据类型是否错误。 b、是否存在不同数据类型的赋值。 c、 是否存在不同数据类型的比较。
2) 变量值问题,包括:
a、 变量的初始化或缺省值收到有错误。 b、变量是否发生上溢或下溢。c、变量的精度是否足够。
3) 逻辑判断问题,包括:
a、 是否由于精度原因导致比较无效。 b、表达式中的优先级是否有误。c、逻辑判断结果是否颠倒。
4) 文件I/O问题,包括:
a、对不存在的或者错误的文件是否进行操作。b、 文件是否不以正确的方式打开。 c、文件结束判断是否正确。 d、是否正确地关闭了文件。
接口测试用例设计
用例设计的内容应该包括:主要测试功能点、测试环境、测试数据、执行操作以及预期结果
1)接口测试环境分为两种:一种是程序内部的环境;一种是程序的所调用外部接口的环境。
2)接口测试测试数据分为接口参数数据和用例执行所需系统数据。数据的设计、准备测试用例的数据上需要花费更多的心思。要通过好的测试数据使用例查找问题。接口参数数据需对每个参数根据测试接口的实际的功能进行分析,在符合业务逻辑的情况下进行逻辑组合排列 ,不要遗漏了某些边界值和错误点的数据。每个用例执行所需系统数据和接口参数数据尽可能的采用不一样的数据 ,使用例更容易发现问题.
3)测试功能点,如果一个接口功能复杂时推荐对接口用例进行结构划分 ,这样子用例具有更好的可读性和维护性。接口划分原则为以接口提供的功能点的不同进行合适粒度的划 分。同一功能点的用例又可根据测试环境的不同、数据的不同进行用例的填充。
4)接口测试用例执行操作非常简单,就是所测接口的调用。
5)预期结果验证,这也是接口用例设计的很关键的一步 ,应该细而不冗余。每个用例均需验证 ,避免一个用例中重复做相同的验证 ,提高测试用的效率
接口测试主要关注点
→接口有翻页时,页码与页数的异常值测试
→数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致
→ 每个接口入参的默认值、异常类型、非空校验
→ 接口返回的图片地址能否打开,图片尺寸是否符合需求
→ 当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求
→ 所有列表页接口必须考虑排序值
→ 所有功能都要考虑兼容旧版本
→入参支持传多个值时,要考虑传的值的个数多的情况下,接口会不会报错
→ 输出参数类型