服务器接口黑盒测试

本文采用以下接口为例,内容仅供参考。

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"

以此类推,可完成响应的用例构造。通过执行,观察结果,可完成该接口的黑盒测试。