一、 引言:为什么推送测试如此重要?
推送通知是App与用户保持互动、提升留存的关键功能。一条失败的推送(如不该推时乱推、该推时不推、内容错乱)会直接导致:
用户流失:频繁或无关的推送会使用户厌烦,进而关闭通知或卸载应用。
功能失效:核心业务通知(如订单、聊天消息)无法到达,影响App核心体验。
品牌形象受损:推送内容错误或发送给错误的人群,会显得非常不专业。
因此,对推送通知进行全面的测试至关重要。
二、 测试环境与前置准备
在开始测试前,需要搭建好测试环境:
后端推送平台:确保你有一个测试环境下的推送管理后台(如极光、个推的后台,或公司自研平台),并拥有测试权限。
测试设备池:覆盖不同品牌(华为、小米、OPPO、vivo、苹果等)、不同操作系统版本(Android 8~14, iOS 12~17)、不同屏幕尺寸的设备。
测试账号:准备多个测试账号,用于测试特定用户/分群的推送。
抓包工具:Charles/Fiddler,用于拦截和检查推送请求与回执,定位问题。
ADB命令(Android必备):
查看设备是否连接:
adb devices
查看日志(尤其关注推送相关的TAG): (根据你用的推送SDK调整)
adb logcat | grep -i "jpush|xiaomi|getui"
三、 核心测试维度与实战用例
1. 功能测试
这是最基础也是最重要的部分。
基本推送流程:
用例1:从推送后台向单个设备发送通知,验证目标设备是否能成功接收并显示。
用例2:向特定用户(通过账号) 发送通知,验证只有登录了该账号的设备能收到。
用例3:向标签/分群用户(如“北京地区”、“VIP用户”)发送,验证分群逻辑是否正确。
用例4:向全量用户发送,验证广播推送的覆盖范围。
通知内容校验:
用例5:验证通知的标题、正文、图标、大图是否按预期显示。
用例6:验证富媒体推送(如图片、长文本、行动按钮)的显示与功能。
用例7:验证自定义声音和振动模式是否生效。
用户交互测试:
用例8:点击通知后,是否能正确跳转到指定的App内页面(Deep Link)。
用例9:当App处于前台、后台、进程被杀掉三种状态时,分别测试推送的接收与点击行为。
用例10:测试清除通知(左滑/右滑清除)是否正常,且不会触发任何跳转。
特殊场景测试:
用例11:离线推送:将设备断网 -> 发送推送 -> 再恢复网络,验证推送是否能被拉取到。
用例12:多条推送:连续发送多条推送,验证通知栏是否按顺序排列,且点击每条都能正确跳转。
2. 兼容性测试
这是移动端测试的重灾区。
操作系统:重点测试Android和iOS的主要版本。
设备厂商定制化系统(Android重点):
小米、华为、OPPO、vivo等厂商有各自的推送服务和后台管理策略(如“自启动”、“关联启动”、“电池优化”)。
测试点:在App的权限设置中,手动关闭“允许通知”、“自启动”等权限,观察推送行为。确保引导用户正确设置的文案和流程。
不同状态栏:测试在有刘海屏、挖孔屏的设备上,通知的显示是否正常。
3. 性能测试
推送到达率与时效性:
使用工具或脚本,模拟向大量设备(如1万台) 发送推送。
监控从发送到设备接收到通知的平均延迟、95分位延迟。理想情况下应在秒级。
统计成功到达率,业界优秀水平通常在99.5%以上。
App性能影响:
监控在接收和处理推送时,App的CPU、内存占用是否有异常飙升。
测试在弱网环境下,推送的接收和重试机制是否合理。
4. 安全与权限测试
权限控制:
用例:用户首次安装App时,系统级通知权限的弹窗是否出现。
用例:用户在系统设置中关闭了App的通知权限后,App是否无法收到任何推送,且是否有恰当的引导(如“您关闭了通知,可能会错过重要消息…”)。
内容安全:
用例:尝试发送包含特殊字符、超长文本、HTML/JS代码的内容,验证前端是否做了转义或截断处理,防止注入攻击。
用例:验证推送链接是否为恶意链接。
5. 业务逻辑与边界测试
业务状态:
用例:用户已注销/被封禁,是否还能收到推送?
用例:在特定业务场景下(如正在进行支付),推送是否会打断当前操作?
边界值:
用例:发送空标题、空内容的推送,App和推送后台如何处理?
用例:发送超长标题和内容,查看显示效果(是否截断,UI是否错乱)。
四、 常用工具与技巧
Charles/Fiddler抓包:
定位推送失败原因。抓取App启动时与推送服务器的注册请求,以及推送下发时的数据包,检查HTTP状态码和返回内容。
ADB(Android Debug Bridge):
:查看当前通知栏的所有通知详情。
adb shell dumpsys notification
:查看系统日志,过滤推送SDK的日志,是定位疑难杂症的利器。
adb logcat
推送平台后台:
充分利用后台的“推送记录”功能,查看每条推送的“目标数”、“送达数”、“点击数”等数据,辅助判断问题范围。
云测平台:
如WeTest、Testin,利用其庞大的真机设备池,快速进行兼容性测试。
五、 总结
测试移动端推送通知,远不止“收到就行”这么简单。一个专业的测试工程师需要:
建立测试矩阵:将功能、兼容性、性能等维度与具体的设备、系统版本组合,形成全面的测试用例库。
重视自动化:对于核心的推送功能,可以尝试通过UI Automator/Appium进行点击跳转的自动化,或通过接口自动化验证推送任务是否成功创建。
关注数据与日志:培养通过日志和数据定位问题的能力,这是进阶的必经之路。


















暂无评论内容