背景
由于客户端繁多的使用场景和其他不可控因素,不同的用户群体不同机型的操作系统,造成用户和销售等多方反映在使用APP的过程中,发生了一系列问题(如 :“网络服务器开了个小差~”、“加载失败,请重试”等)。对待这些常见问题和偶发问题,客户端对异常信息显示过于单调,在APP发生类似错误时,问题原因难以在短时间内及时确认以至于问题解决周期长,维护难等问题。
问题
根据常见问题进行客户端和后端网络访问及返回数据做统一的校验和异常类型判断,并提供文案展示到界面中。
客户端常见异常,短提示,页面错误布局,分析文案
1.服务器开了个小差~(错误码)
产生原因:无法请求到服务器,如后台炸了,无法访问等
解决方案:联系后端技术人员查明服务器状态
2.数据解析异常~数据类型转换异常~
产生原因:客户端请求的数据转换异常,如字段默认值、类型等与声明不符合
解决方案:联系app开发人员进行接口数据确认调试。
3.连接服务器失败,请稍后重试~请求网络超时,请稍后重试~
产生原因:服务器状态(访问速度慢等)当前网络环境(运营商、网速)
解决方案:联系后端和app开发人员进行环境诊断。
4.证书验证失败~
产生原因:前后台https网络请求证书不匹配
解决方案:联系后端和app开发人员进行证书问题修复。
5.网络连接不可用,请稍后重试~
产生原因:当前没有网络连接、网络被运营商限制等
解决方案:提醒用户检查手机网络是否有问题
6.NullPointerException~
产生原因:接口数据解析发生问题,某字段为null值
解决方案:需要技术人员去诊断数据问题
7.未知错误,如闪退等常见错误~
产生原因:特定的场景下发生的问题
解决方案:需要技术人员特定场景分析
目标
针对上述问题,对于特定环境产生的偶发问题,可能需要特定机型,场景去还原测试。有时候我们还得需要用户的账号信息,接口地址等信息以便于开发任务快速定位问题所在。
方案
方案一:利用系统中现已集成的友盟平台,增加自定义埋点事件,上报数据可个性化上传。
方案二:sentry集成
二者差异性:
友盟平台自定义埋点事件上报的数据不利于查看,对于设备信息等采集的不够完善。
![](https://img.haomeiwen.com/i1427091/d0a4d82479130572.png)
sentry主要专注于持续集成、提高效率并且提升用户体验,采集到的信息便于查看,相对于友盟来说较为完善。
![](https://img.haomeiwen.com/i1427091/2b92a6f78876705d.png)
![](https://img.haomeiwen.com/i1427091/6e4a9e2424be2098.png)
二者相比,方案二较为更佳。
网友评论