服务器接口黑盒测试
本文采用以下接口为例,内容仅供参考。
http://10.134.54.238/mobile_offline?c=bizcard&a=get_data&num=15263636363
分析一下该接口
参数 | 说明 | 备注 |
---|---|---|
http://10.134.54.238/mobile_offline | 接口地址 | 输入 |
Method | 预期采用POST形式 | 输入 |
c | 查询参数,当值为bizcard时选用预期的数据库 | 输入 |
a | 查询参数,当值为get_data时选用预期的查询动作 | 输入 |
num | 查询参数,预期为电话号码 | 输入 |
json格式字符串 | 返回内容 | 输出 |
0x01 分析
分析上面的接口API,我们可以分析出如下的简易流程图
其中,从提取参数
到结果拼接成JSON
均为服务器的执行逻辑。
如果把服务器的测试当做一个黑盒测试,那么只需要根据服务器在不同输入情况下,给出的输出结果来判断服务器的功能是否正确即可。
即,简化成下面的图形。到此为止,一个服务端的黑盒测试模型,就出来了。它跟客户端的黑盒测试模型基本一致。
0x02 测试用例构造
那么,设计完整的输入测试用例就变得尤其重要。需要覆盖全部的黑盒功能测试点。
对于本例,输入的检查点有两个,一个是Method
,一个是查询参数
。预期结果可以通过输出来判断。
0x03 执行测试
有了测试用例之后,我们需要做的是构造符合我们用例的具体用例,验证Case能否通过。
工具选择
我们需要选择一款能够发送请求的工具,且该工具能够修改method和query args。这样的工具有很多,可参照此表。
我们以curl
为例。
Case实现
- 将method设置为post,进行请求
curl -X "POST" "http://10.134.54.238/mobile_offline?c=bizcard&a=get_data&num=15263636363"
- 将method设置为get/put/delete,进行请求
curl -X "GET" "http://10.134.54.238/mobile_offline?c=bizcard&a=get_data&num=15263636363"
curl -X "PUT" "http://10.134.54.238/mobile_offline?c=bizcard&a=get_data&num=15263636363"
curl -X "DELETE" "http://10.134.54.238/mobile_offline?c=bizcard&a=get_data&num=15263636363"
- 设置a参数为空
curl -X "POST" "http://10.134.54.238/mobile_offline?c=bizcard&a=&num=15263636363"
以此类推,可完成响应的用例构造。通过执行,观察结果,可完成该接口的黑盒测试。