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

举报
liuzhen007 发表于 2022/01/09 10:48:56 2022/01/09
【摘要】 ​目录项目背景问题 解决综上所述项目背景公司自研了私有化的对象存储服务,目前需要对上传接口进行功能测试。问题 使用第三方测试工具 ApiPost 测试上传接口时,发现 dzuuid 参数始终无法正确解析出来,于是开始了排查工作。ApiPost 测试界面如下图所示:​除了单文件上传模式,上传接口还支持分片上传模式,上图中的 dzuuid 参数就是用来表示分片属于哪个文件的,在服务器端对应参数 ...

目录

项目背景

问题 

解决

综上所述


项目背景

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

问题 

使用第三方测试工具 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 参数时,末尾多写了几个空格。

综上所述

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





【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。