您的位置:首页 > 编程语言 > Qt开发

mqtt 推送的客户端测试方法

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

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

测试工具:无线网卡、模拟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几分钟一次,允许的误差就在十几分钟。

6、什么是ARP协议呢?

TCP/IP七层协议你知道吧?ARP就是位于最底层的网络接口层(链路层)。这里的底层和“我是底层码农”的底层有本质的不同。码农换了一个,还有另外一个;但是链路层连不上,往上走的其他东西都不会起作用。简单说就是和硬件断网差不多一个意思。

具体是怎么起作用的呢。每个客户端都有一个物理地址,路由器也有物理地址。物理地址和IP地址有什么关系呢?

打个比方,就像我们每个人都有一个名字,我们去上课,每个人有一个学号,老师叫38号的同学起来回答问题,那个分配到38号的XXX同学就要站起来。这里的学号就好比IP地址,每个人的姓名就好比物理地址。每个学期我们都会重新排一次座位,每个人都要拿一个学号。但是到了硬件层面,每个“学期”都非常短,一般60S就是一个“学期”。所以每隔60s。
A、每个客户端就会发ARP指令去问路由器老师,老师老师,我的学号(IP地址)是多少?然后路由器老师就会给你一个学号。不给你学号你怎么样?不给你就辍学了(用着手机的你就开始骂人了,这破手机,怎么又上不了网了。)
B、或者路由器老师过来问,谁拿了38这个学号,拿了这个学号的你就要马上应答了,路由器老师一般会问四五次,四五次都没人回答,不好意思,学校销毁了你的档案了。

所以要上网前,手机和路由器就要用arp作为通信协议,安排好IP地址,安排好了才能上网。(也不是arp发得多就好,路由器会有一个识别,如果发得太多,可能你就是对老师(路由器)别有心机的变态,这个时候就会报IP冲突,你就又辍学了)

回到实际问题,wireshark怎么看,在过滤器哪里输入arp就可以过滤出来了。通过看这个你可以知道为什么有某一段时间一直上不了网,软件不给力还是硬件不给力?是软件就提BUG,是硬件就换个好一点的手机  /  换个好一点的wifi发射软件 / 换个好一点的路由器来测试。

心跳表现测试方法:开启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