Web接口测试其实可以等同于功能测试,只是被测对象是接口,无界面交互而已;所以用例设计的方法是通用的。
常用的测试方法如下:
1、等价类划分法
2、边界值分析
3、因果图判定法
4、场景分析法
17.4.1接口测试用例设计关注点
1、接口的协议类型(http还是https…)。
2、 接口请求的方法(get/post…)。
3、 参数是否必填。
4、参数间是否存在关联。
5、参数取值范围。
6、业务规则。
17.4.2接口测试用例设计思路
1) 优先级--针对所有接口。
1、暴露在外面的接口,因为通常该接口会给第三方调用。
2、供系统内部调用的核心功能接口。
3、供系统内部调用非核心功能接口。
2) 优先级--针对单个接口。
1、正向用例优先测试,逆向用例次之(通常情况,非绝对)。
2、是否满足前提条件 > 是否携带默认参值参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 >参数数据类型自身的数据范围值限制。
17.4.3接口测试用例设计分析
通常,设计接口测试用例需要考虑以下几个方面:
1、是否满足前提条件
有些接口需要满足前置条件,才可成功获取数据。常见的,需要登陆Token。
逆向用例:
针对是否满足前置条件(假设为n个条件),设计0~n条用例。
2、是否携带默认值参数。
正向用例:
带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其它不填写,设计1条用例。
3、业务规则、功能需求。
这里根据实际情况,结合接口参数说明,可能需要设计n条正向用例和逆向用例
4、参数是否必填。
逆向用例:
针对每个必填参数,都设计1条参数值为空的逆向用例。
5、参数之间是否存在关联。
有些参数彼此之间存在相互制约的关系。
逆向用例:
根据实际情况,可能需要设计0~n条用例。
6、参数数据类型限制。
逆向用例:
针对每个参数都设计1条参数值类型不符的逆向用例。
7、参数数据类型自身的数据范围值限制。
正向用例:
针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例。
逆向用例:
针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例。
针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例。
以上几个方面考虑全的话,基本可以做到如下几个方面的覆盖:
主流程测试用例:正常的主流程功能校验。
分支流测试用例:正常的分支流功能校验。
异常流测试用例:异常容错校验。