灰盒测试(接口测试)——软件测试入门11
小伙伴们比较关心的灰盒测试更新啦~,之前因为各种原因没有及时更新,很抱歉。
我们先来介绍下什么是灰盒测试:(灰盒测试又叫接口测试)
接口测试,接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系。
灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒测试那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过些表征性的现象、事件、标志来判断内部的运行状态。
接口测试的实质:
通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理,然后再把应答报文发送给客户端,客户端接收应答报文这一过程。
接口测试分类(系统间、上下层):
系统与系统之间的调用,比如银行、支付宝等会提供接口供电子商务网站调用。
上层服务对下层服务的调用,应用层又会调用服务层提供的接口,一般会通过服务之间的调用。
接口测试流程:
类似于功能测试,需求讨论、评审需求、确定需求——>产出接口 1 定义—根据需求文档及接口定义,设计测试用例——>评审用例——>执行测试。
接口测试工具:
fiddler:史上最强大的app、web接口调试工具
HttpRequester:firefox上的一个插件,可以模拟多种请求
Postman:Chrome插件,不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求。
Wireshark:用来获取网络数据封包,包括http,TCP、UDP等网络协议包。
接口测试四要素:
地址、提交方式、参数、返回值
—、接口测试的设计思路分析
1、是否满足前提条件
有些接口需要满足前置条件,才可成功获取数据。常见的,需要登录Token。
逆向用例:
针对是否满足前置条件(假设为n个条件),设计0~N条用例。
2、是否携带默认值参数
正向用例:
带默认值的参数都不填写、不传参、必填参数都填写正确且存在的“常规”值,其它不填写,设计1条用例;
3、业务规则、功能需求
这里根据实际情况,结合接口参数说明,可能需要设计n条正向用例,和逆向用例
4、参数是否必填
逆向用例:
针对每个必填参数,都设计1条参数值为空的逆向用例
5、参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
逆向用例:
根据实际情况,可能需要设计0~n条用例
6、参数数据类型限制
逆向用例:
针对每个参数都设计1条参数类型不符的逆向用例
7、参数数据类型自身的数据范围限制
正向用例:
针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例
逆向用例:
针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例
逆向用例:
针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例
以上你个方面考虑全的话,基本可以做到如下几个方面的覆盖:
主流程测试用例:正常的主流程功能校验;
分支流测试用例:正常的分支流功能校验
异常流测试用例:异常容错校验