背景:由于接口测试先于前端功能测试完成,当前端再次demo时,与会的关联系统 要求 更改 参数 配置系统 里的 参数
过程:我们后端在更改完成代码后,需要我这边再做个回归测试
步骤:
1. 拉取开发最新代码后,本地起服务
-
起完服务,直接回归时之前成功的数据校验 一直报错,后面找开发一起看下,分析原因
-
分析原因从下面几个方面入手
a. 确认分支是不是最新 —> 是的
b. 确认数据库是否是正确环境的 —> 是的
c. 开始debug分析,发现系统在拉取文件是有过滤条件的,必须是当前系统时间开始,往前一天的0时0分截止,两个时间截点范围内才被过滤出来
d. 然后多次跑,发现这个过滤条件 始终 没有把新 上传的文件统计在 c 步的 过滤结果列表内(文件上传我代码里加上时间戳以避开重复文件名)
e. … 又找了下其它 可能 的原因
f. 终于 找到了,原来 我们 是 在 虚机里起的服务,跑的测试,虚机里的 系统时间 比 实际的时间要晚个 15分钟,但服务器的时间又是实际时间,i.e 虚机系统时间 10:20分发送rpc请求,然而服务器的时间是 10:35,按10:20分的时间戳上传到 文件服务器的, 但文件服务器是按 10:35(可能延迟)来处理,但是 参数处理系统在 过滤文件时是 按 10:20作为截止时间,实际的10:35时间戳的文件并不在过滤范围内,导致数据 就没有出现 在 查询 的范围内,后面一切的校验 都是 徒劳
g. 更改虚机的 系统时间 重新回归,搞定
总结:
这次的问题,比较少见,谁会想到 公司给配的 虚机系统时间 要比 实际时间 晚15分,以后遇到时一定要早提前更改;遇到类似的问题,采取同样的trouble shooting思路,可能是分支,数据库等环境配置,到 代码调试,步步定位问题。有些代码,开发更熟悉,拉上开发一起看更快。
有小伙伴遇到类似的问题,欢迎讨论~