mqtt 推送的客户端测试方法

推送分为服务器和客户端,测试指标包括,并发负载、资源占用、消息到达率、信息延迟。其中客户端的主要是资源占用、信息延迟。服务器端不是我写的,也不是我测的,那部分的东西不清楚;客户端我自测过一轮,现在要给出测试方法给测试工程师检验,重新测试一遍。

测试内容包括:心跳表现,终端主动断网表现、网络堵塞表现,耗电表现。

测试工具:无线网卡、模拟WIFI软件、网络捕获软件(WireShark)。   另(电脑一部、不同型号品牌测试机N部)。

原理介绍:

       手机通过模拟wifi连接到网络,数据流从模拟wifi经过,wireshark可以捕获到数据流,通过观察数据流,可以知道“心跳表现、网络堵塞表现”;放置一段时间,对比电量损耗,可以知道耗电表现。


 有一点背景知识:

1、为什么不用fiddle?mqtt不是http协议,fiddle捕获不到。

2、为什么不用代理?自测过程中发现代理设置了,wireshark上看不到数据流(也许是我打开的方式不对)。

3、wireshark抓哪块网卡?正常来说会看到两块网卡,一个是本机原来就有的网卡- A ,另外一个是模拟wifi开启后模拟出来的网卡- B 。区别在于A会有你电脑上的数据流信息多而杂,好处是终端主动断网后,可以用A来观察服务器的表现,缺点是看到的数据流是本机IP-服务器IP,看不到具体是那部手机的发出的信息。B的数据流比较单纯,看到的数据流是手机IP - 服务器IP。只做终端测试的话,推荐用B来抓数据。

4、wireshark怎么用?详细的找教程,这里提供一点操作方法:

i、在应用显示过滤器哪里可以过滤数据流。eg:tcp.port == 80 && ip.addr == 192.168.137.3。

ii、菜单栏-统计-IO图标那里出来可以绘图,绘图的方法和过滤器的设置是一样的。eg:



5、为什么需要观察心跳表现?我们说的推送是保持一个长连接,在代码层面是这样理解,但是去到实际底层,就是一个一个的中间节点为你保存路由信息,路由器也有优化,过了一段时间,对话双方没有对话,路由信息会被清除,为了维持记录,所以需要隔一段时间发一个心跳,心跳的存在使得服务器知道客户端的所在,有新消息过来时能即使“推送”过来,所以心跳在一定程度上代表允许延迟时间。例如 微 | 信 的动态心跳,后面慢到10几分钟一次,允许的误差就在十几分钟。


心跳表现测试方法:开启wifi,开启软件,开启wireshark,等待.....分析....

网络堵塞表现:同心跳,需要注意的是,抓取网卡B,可以断开网卡A的连接,抓取A,可以断开手机端的网络。最好不要抓取B的同时,关闭模拟wifi/禁用网卡。

耗电表现:现在的方法就是看电量的前后的对比。


附一点资源:

wireshark:https://www.wireshark.org/

linux:http://download.csdn.net/detail/yeshennet/9451137

windows 32位 http://download.csdn.net/detail/yeshennet/9451132

windows 64位 http://download.csdn.net/detail/yeshennet/9451134


模拟wifi(魔方):http://down.ruanmei.com/pcmaster/pcmaster_6.18_full.zip

绿色版:http://download.csdn.net/detail/yeshennet/9509747


你可能感兴趣的:(android)