最近采用华为Honour8测试开发的APP,测试人员一直反馈手机无法收到信鸽的推送消息,于是对信鸽在华为手机上的性能做了一个验证,为了保证严谨,从以下几个方面做了验证:
测试情况具体描述如下:
1.检测华为手机推送设置
经过检测,华为手机推送设置均为打开状态,APP推送也未关闭。
所以首先可以排除是由于手机设置不正确导致。
2.测试信鸽推送通道
采用信鸽demo,使用与APP版本相同的SDK(V3.1)进行测试,测试次数为30次。
使用小米5手机和华为手机做对比性实验,同时安装相同版本的信鸽demo,同时对两台手机做推送测试,小米5手机接收成功次数为30次,成功率为100%,华为接收成功11次,成功率仅为33%,而且集中在某一段时间内始终收不到推送。
但在相隔一天后,采用同样版本的信鸽SDK(V3.1)测试,同样测试30次,成功率为100%.
所以排除信鸽推送通道的问题.
3.测试云端调用故障信息推送接口
使用小米手机和华为手机,安装相同APP版本,采用不同账号登录,并绑定同一台设备。
使用接口调试工具调用云端推送接口进行测试,测试次数为20次,小米手机收到故障提醒测试未20次,成功率100%,华为手机收到次数为0,成功率0%.
但在第二天,采用同样的方法测试,测试次数为20次,收到提醒的概率为100%,信鸽后台的推送数据也显示推送送达情况为已送达。
所以排除云端故障信息推送接口的问题。
4.测试信鸽SDK版本
使用信鸽SDK版本为3.1时,推送30次,成功率为33%,但是将信鸽SDK切换到3.2版本后,华为手机接收成功率显著提高,发送30次,成功率为100%
但在相隔一天后,采用同样版本的信鸽SDK(V3.1)测试,同样测试30次,成功率为100%。
所以排除是由于版本差异引起的问题
5.测试是否为华为手机系统问题
通过测试信鸽demo,可以排除是华为系统问题,那么唯一的不确定因素就是华为系统和网络因素。
经过对该款华为手机的调研,该款手机在开发上为了省电,当APP在后台运行时,会将应用从运行池中清理掉,这种状态下,应用将无法收到推送消息。
6.测试APP兼容性问题
通过排查原因2和原因3,APP兼容性问题基本可以排除,手机端可以收到推送数据。
最终结论
通过本次的调研,排除是由于手机设置,信鸽推送通道,云端推送接口,信鸽SDK版本等因素,且在手机端是可以收到推送消息的,但是在某一个集中的时段,会收不到设备消息,最终将问题定位到网络状况和手机系统问题。