Java 手机 app 收到的推送消息,能不能做成自动化,怎么做?

杨超 for 西安测试圈 · 2022年08月03日 · 最后由 杨超 回复于 2022年08月09日 · 4213 次阅读

各位大佬,我司想做收取手机 app 推送的自动化,想请教一下能不能做,怎么做 (我们用的 java),拜谢了。

共收到 12 条回复 时间 点赞

我们以前只自动化检测了推送服务链路跟踪,检测功能是否被调用,推送结果这个记不太清楚了,但好像也是有标记的回信的

每次上线前也会测试一下各渠道的推送功能,这块我们是找开发配合,将推送功能封装成服务,测试这边调用 api 进行指定设备触发测试

触发推送,只需要 call 对应平台(google-Android 自带的推送服务, apple -iOS 自带的推送服务,还有其他推送平台)的 api 就可以了。需要指定对应设备的 token,这块需要在 APP 端打开设置,并且从平台端初始化或者更新之后收集起来放到触发的脚本里面使用。

至于 APP 端的自动化,因为这个推送有一定的滞后性(特别在国内测试 Google 的推送,很难可以收到),而且一定要真机才能收到推送,感觉做自动化不好处理,成功率也不好保证。 个人建议可以通过脚本触发后,手工验证各个设备的接受推送和推送消息的跳转。

49875183 回复

请问 你们是测试推送服务功能正常,还是测试 怎么接收推送?

杨超 回复

1、测试推送服务功能正常,确保已正常调用各推送渠道。
2、推送测试就是通达自动化脚本来触发各类型推送,然后人工测试

没有做推送到达手机的自动化,就像 2 楼说的那样,推送是延时性的,而且各推送渠道也不一样,所涉及的设备是不同的,而且 我记得是 vivo 还是 oppo 对推送条数也有限制

Jerry li 回复

谷歌服务的确实很难收到,IOS 的可以做不?

这个推送是指的手机在推送栏那里看到推送的消息吗,如果是这个的话 我们之前通过 android 的 AccessibilityService 的辅助服务来监听通知栏的消息,然后拿到对应的推送内容。

saii 回复

是的 是手机推送栏里的推送消息,你们通过 AccessibilityService 服务的话,是不是融合了安卓 sdk appnium 等工具,等于说有 app 自动化能力的框架,才拿到的? 没有通过接口的方式(长链接保持心跳,然后去轮训拉取推送?)

主要是 IOS 消息的接收,我们是做的日本市场,他们基本上用的 IOS

如果这里说的是手机系统通知栏里的那种推送(不是 App 自定义的站内推送),这些推送必然要经过手机厂商的服务器(华米 OV、Apple 都要),这似乎意味着无法从本地真机上 mock 出来的。

在我司,推送中台将推送服务封装了一个简单的 Web 平台供大家手工测试使用或者自动化调用,要做成自动化那就是去调用这个推送中台的 Api。如果楼主的公司不存在这种推送中台,那就需要自行去和推送服务端的研发沟通,能否开一个内部测试接口给你调用。

假设推送可以了,那接下来就是看手机是否能接受到推送,推送是一定有折损率的,它不会 100% 成功,同时也会存在时延,所以整体上失败率非常高。这个步骤可使用常规的移动端自动化框架去做校验,或者从 App 日志上去做校验也可以,看测试目标自行选择不同方式。

最后备注,推送测试有安全风险,比如一不小心给线上用户批量推送了一个测试消息,那就是一个测试事故了。

杨超 回复

没有哦,就是通过 AccessibilityService 就好了,这个是依赖 ui 即 window 的变化去识别的

11楼 已删除
杨超 #12 · 2022年08月09日 Author
saii 回复

谢谢解答哈😀 😀

杨超 #13 · 2022年08月09日 Author
王稀饭 回复

谢谢解答😀

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册