推送自动化是一个比较麻烦的事儿,因为它的实现注定涉及到了不同的端,如推送服务器端,手机客户端,还有测试端(接口工具)等等。如何把这些端整合在一起并且让他们的工作正常流畅,本身就是一个蛮复杂的事情,普遍的逻辑应该是这样:
1. 通过接口控制的方式(我用的Jmeter)能够使推送服务器端发送推送信息
2. 手机端安装一个推送通知监听APP,收到推送后可以记录下推送的信息( http://www.jianshu.com/p/82713b43b59e ),再通过logcat或文件的方式保存
3. 测试端用python或者其他语言写一个脚本,来比对1和2里面的推送信息是否一致
这个逻辑是可行的,也是可以实现的,但是总感觉有点麻烦,比如需要PC一直连接手机来获取2里面推送的信息,1也同样需要输出个文件什么的来实现和2的比对,3里面的脚本不仅要实现比对,还要有类似于报告的方式输出测试结果...
总之,我在通过这种方式设计的时候很痛苦,因为需要协作的东西有点多,同样考虑的东西也有点多...
作为一个懒人,我决定修改下上面的逻辑,我希望直接能用Jmeter的断言来实现结果对比,手机不用总是连着USB线,怎么做呢?没错,写一个服务搞定这些。
怎么样?引入一个测试平台服务就能解决上面的问题。逻辑变成了:
1. 通过接口控制的方式(我用的Jmeter)能够使推送服务器端发送推送信息
2. 手机端安装一个推送通知监听APP,收到推送后可以记录下推送的信息并传给测试平台服务器
3. 测试服务器存储这些信息到数据库
4. Jmeter访问测试服务器,拿到客户端收到的推送信息,进行比对
这样,虽然多了一个测试服务器的开发成本,但是整个流程变得流畅多了,不用各种各样的文件和其他脚本的介入,现成的工具直接就能搞定了。
目前我们只实现了Android手机的推送自动化,IOS的推送通知监听APP还没有头绪,主要是也不会开发...