提到接口测试,用例其实就是围绕一堆测试数据来的,这样测试数据的设计就显得尤为重要,这也是考验测试工程师设计测试数据的能力,你是如何来规划你的测试数据?有没有进行建模后再执行?你的跑的那么多数据是否有意义?是否是接口测试真正需要的?是不是有依据?这些都是做好接口测试的关键所在。
下面我们从入参到出参,也就是断言开始分析。。。。。
1、入参
入参分正常情况与异常情况两种
1.1 正常系
1) 必填入参典型值、边界值内的边界值
所有入参的边界值可以形成一个测试用例来执行,不需要太多,看起来繁琐
2) 可选项缺省及部分缺省
3) 重要入参的各种合法的有效值
4) 正常默认值
注意点:
1) 入参支持多个值时,多值输入,接口会不会报错
2) 每条用例数据如非必要,数据要多样化
3) 如果有页数,跟需要注意边界值测试
1.2 异常系
主要测试容错性(暂时不考虑安全性)
1) 必填入参缺省、空值,null值,边界外的值
2) 可选项参数边界值外的值
3) 重要入参的各种错误类型
4) 如果有默认值,默认值异常
注意点:
1)如果有页数,输入一个超过页码值,检查接口返回值
2)关于是否要测试异常系情况,要看实际开发是如何控制的
分一下两种情况
(1)由接口进行控制。输入异常值,接口来判断,返回错误信息,前端只需接收信息并显示
(2)由前端进行控制,前端控制用户必须输入正常系的值,而接口可以不做控制
针对第一种情况就必须测试异常系的情况,第二种就可以略去异常系测试,那如何知道是哪一方来控制?这时候可以看看接口文档有没有标出来,如果没写问问开发,就明白了
2、出参(断言)
1) status code状态判断
2) 响应信息数据结构
3) 重要出参是否存在,键值、类型
4) 是否写入数据库,及预期,部分重要用例,参数需要连接数据库取数据进行判断
5) 负面测试用例,错误信息是否与实际是否相符
注意点:
1) 如果是列表形式的返回数据需要验证排序值,不同页数据是否重复
2) 输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求
3) 接口返回存在链接,需要验证链接是否可以打开
4) 接口返回存在图片链接,要验证图片尺寸,是否失真等
5) 所有功能都要考虑兼容旧版本