写点什么

一次无脑接口测试导致的无效排查的经历

作者:liuzhen007
  • 2022 年 1 月 09 日
  • 本文字数:976 字

    阅读完需:约 3 分钟

一次无脑接口测试导致的无效排查的经历

目录

项目背景

问题 

解决

综上所述


项目背景

公司自研了私有化的对象存储服务,目前需要对上传接口进行功能测试。

问题 

使用第三方测试工具 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, err := c.Request.FormFile("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 参数时,末尾多写了几个空格。

综上所述

对象存储服务的上传接口没有问题,原来是一场误会,接口调用方的问题,测试用例的问题。


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄


发布于: 刚刚阅读数: 3
用户头像

liuzhen007

关注

敲代码,搞开发。 2021.05.01 加入

本人深耕音视频技术,走全栈路线,前后端通吃,兼顾各端与流媒体服务器。 博客主页地址:https://liuzhen.blog.csdn.net 微信公众号:玩转音视频 欢迎交流学习!

评论

发布
暂无评论
一次无脑接口测试导致的无效排查的经历