20200311--一些问题的一些思路

240 阅读2分钟

对于偶现问题

能复现最好,但一般比较难。最好查看当时日志,寻找线索。但如果是较早问题,日志可能已经消掉了,那就难了。

关于copy代码

用脑子抄代码,逻辑比眼睛要准确的多。 善用工具的搜索键

对于现场问题

有时候很急,需要快速解决,这时候原因是什么远没有使系统恢复正常来的重要。 要多动手,多尝试。

要多对比。旧的数据显示有问题,那新数据有问题吗? 系统异常,那正常的系统应该什么样。

多问问。

三板斧:查看日志; arthas窥视程序运行状态,抓包; 本地复现。

遇到个预览拉流,请求rtsp路径时的返回值 url2 为空串的问题,分析代码觉得是 MGW 服务注册时没有把 ip和port带过来,要抓下MGW服务注册到CMS的包确认下。 如果不行,替换下class文件,打上日志看下。

另外,arthas用的还不熟,要加强。

对于代码自测

要覆盖所有功能点和异常点,没事多看看测试写的用例,他们想的比较全,这对于提升自己的自测有帮助。

最近一个用户预览路数限制功能,除了测试基本功能,还有多ip情况, 另外 配置异常值怎么处理,打开6路后修改配置数为5怎么处理,轮询时修改路数怎么处理。

拿到证据,找到责任方

我们系统的数据流一般是 客户端--》CMS--》C++服务--》SDK--》设备 我们处在第二环,是数据的中转站,问题一般先到我们这,这时准确快速定位问题所在很关键。 要根据哪个环节有问题来看对应的日志,CMS与客户端交互有日志,客户端自己有日志,CMS与服务交互有日志,服务自己有日志,与CMS的,与设备的。 所以什么时候要抓哪个通信的包,要清楚,端口会不一样。

比如你自己写的代码,客户端参数你接收不到,你找客户端人家不会理你的,你要先确认你的接口没问题,这时可以用 postman 模拟客户端请求,如果也接不到参数,那就是你的接口有问题,如果可以,那再找客户端解决。

要多学习,多解决问题,多总结。