一次无脑接口测试导致的无效排查的经历
目录
项目背景
公司自研了私有化的对象存储服务,目前需要对上传接口进行功能测试。
问题
使用第三方测试工具 ApiPost 测试上传接口时,发现 dzuuid 参数始终无法正确解析出来,于是开始了排查工作。
ApiPost 测试界面如下图所示:
除了单文件上传模式,上传接口还支持分片上传模式,上图中的 dzuuid 参数就是用来表示分片属于哪个文件的,在服务器端对应参数 Identifier。现在的问题是服务器端解析 dzuuid 参数时始终为空,打印日志如下:
[Info] 2021/12/23 20:00:24 权限地址为空,跳过 auth.go 46
[2021-12-23 20:00:26.970][info][file.go:392] 上传文件类型: MP4
[2021-12-23 20:00:26.970][info][file.go:362] chunk.Identifier:
服务器日志截图如下:
解决
首先,把上传请求中的 file 参数解析后出来,代码如下:
返回值 header,类型为 multipart.FileHeader 指针,我们将其打印出来,日志输出详情如下:
[2021-12-23 20:00:26.970][info][file.go:363] &{{0xc000200540 -1 200} 0xc0001e0300 0xc0001e0400 [] [0xf6e780 0xf6f720 0x1002b60 0xfff4e0 0xfbb120 0xfff220 0x1006e80] 6 /bag/file/upload 0xc0001984e0 0xc00054e750 {{0 0} 0 0 0 0} map[X-B3-Flags: X-B3-Parentspanid: X-B3-Sampled: X-B3-Spanid: X-B3-Traceid: X-Request-Id: auth:map[]] [] map[] map[dname:[0.doc] dtranscode:[false] dtype:[3] dzchunkindex:[0] dztotalchunkcount:[1] dzuuid :[123123123] identifier:[666666]] 0}
日志截图如下:
通过日志,我们发现,上传的 dzuuid 参数并非我们想象的那样,只是“dzuuid”那么简单,实际上是“dzuuid ”的样子。有点像“挂羊头卖狗肉”的意思,哈哈。
终于知道原因了,是自己写错参数名称了,在设置 dzuuid 参数时,末尾多写了几个空格。
综上所述
对象存储服务的上传接口没有问题,原来是一场误会,接口调用方的问题,测试用例的问题。
- 点赞
- 收藏
- 关注作者
评论(0)