记一个深层的bug

1. 业务场景

  产品需要每隔几天进行一次组件的更新,在自动化测试中,每隔30s检测一次更新源上的某个文件MD5值是否与本地一致,不一致代表有更新的版本,开始更新。

2. 问题出现

  一个再平常不过的繁忙的下午,公司网络卡的令人发指,突然发现自动化测试脚本发来一封,更新组件成功的邮件,感觉一切尽在掌握。一会有个同事测试其他项目时发现,客户端上的组件是xxx版本,比我自动化的版本还新???

3. 问题排查

  进入环境一看,server端版本是最新的,客户端组件版本升不上来,进一步排查是在更新源上下载的安装包只有不到1M,解压失败。突然感觉产品更新那块的代码,以及自动化代码哪里出问题了。与RD沟通一会后确认是,产品更新代码逻辑在判断下载server.ini的配置文件后,就默认更新成功了,把最新的版本号写入server端的配置文件了,实际上下载的组件压缩包是不完整的,也就是说没有校验实际组件包,太荒唐了。测试的自动化代码,检测到server端的配置文件中该组件版本号与更新源上一致,判断更新成功,也没有判断下载的组件包。产品测代码和自动化脚本都是睁眼瞎。

4. 总结分析

  虽然组件包大小只有9M,对网络带宽的要求很少,但是遇到网络不行时,下载超时导致下载的文件不完成,因此一定要做下载包的校验。

posted @ 2021-08-20 10:25  LastOneBlackHole  阅读(32)  评论(0编辑  收藏  举报