测试人眼中的车联网(比亚迪云服务-3.2.1)——物联网的通用功能测试模式
做了好几年的物联网的测试,了解物联网的通信(大多数都差不多)过程,其实也就决定了其测试场景的构造无外乎那几种情况。
以下图例,描述了一个最简单的通讯过程:
A. 终端在定时给协议中心服务器上传一些状态报文(保持心跳在线)。
B. APP发出功能请求后,通过应用服务器发送消息给协议中心服务器,然后再到终端处理,然后再链路回去反馈。
最大的麻烦在哪儿呢:
A、APP所在位置的3G\4G信号的不稳定性。
B、终端所在2G\3G信号的不稳定性(你没看错,物联网很多终端还是2G的)。
C、终端所处的功耗处于低水平状态,终端的唤醒以及终端软件运行的可靠性。
D、协议通信过程的丢包、掉包,补包的可靠状态。
E、终端运动过程中产生的信息波动。
所以APP和终端的2G、3G、4G的信号模拟,长时间的测试观察,以及日志记录,是决定物联网应用测试质量的关键。
从上面图示来看,场景并不复杂,复杂的是工作量比较大,很显然:自动化测试的手段是检测这个过程中的必要武器和手段,是缺一不可的。
另一个比较头痛的事情是如何模拟手机的信号,毕竟去找这样的位置,还是比较难以想象的。
善用搜索引擎,其实你会发现这么一篇文章:
Facebook开源移动网络测试工具Augmented Traffic Control
开源地址:
https://github.com/facebook/augmented-traffic-control
安装过程,可以参考:
http://blog.****.net/gzh0222/article/details/46382343
模拟值:
http://www.jianshu.com/p/fb4824fd5bbc
上面的工具,基本上就可以搞定网络问题了。
剩下的问题是自动化测试代码的问题,如果基于比亚迪云服务(车联网)的功能,比如,上锁、解锁,就大概只需要下面几行代码了。COPY后,搞个循环即可。
车门上锁和解锁的功能意义在于,某日您陪夫人在楼下逛街,突然想起要去车里面拿点东西,或者要去不远的地方接接朋友,而钥匙又在家里,懒得回去拿,使用该功能还是非常省事的。
同时,现在流行的分时租赁的车,下订单后使用APP开门、打火,其实与此功能没有什么大的差别。
据我个人的使用,比亚迪云服务(车联网)在上锁和解锁的成功率还是满高的,使用1年来,也只有1次失败的情况。 那1次失败,连续试了10几次都不成功,后来没办法回家拿了钥匙,点了火,再试又成功了。
同时,有幸也使用过一款后装的,失败率惨不忍毒,那天能有80%的成功率,也许我就不用加班到凌晨2点了。所以有些东西,还是应该相信原装车厂的,毕竞协议是自己的,而不是**人家的协议。
另外,密码输入框的私密控件,做得还不够好,从自动化测试的角度,虽然每个输入框是1个Button,并且有序排列增加了测试脚本开发的便利性,但是却忽略了此类控件的初衷。
工商银行登录界面的安全控件就做得比较好
第1次获取:
第2次获取:
特点:
1.每次启动后数字的顺序是变动中的(变动是为了不让人家从屏幕指纹进行易猜测,增加猜测的难度)。
2.并不能获取到具体的Button,整个面板是一个控件,增加机器识别的难度。
现在的APP基本上做的都是免登录,但在操作一些安全性要求比较高的功能,或者,因为手机被盗或丢弃时,防止别有用心者再次使用,往往采用了以下几种方式进行进一步的操作:
手势密码
2. 数字密码控件
做的撮的就是,上面这种有序可机器识别的模式,采用远程拍摄手的动作,应该突破率还是比较容易的。而工商银行控件的做法,显然是考虑到了这一点,防止轨迹暴露。
3. 指纹识别
在ios上应用得比较多,采集指纹信息进行对比,免去了输入的操作。但是,做个假指模,不清楚是否可以轻意的进去。
4. 人验识别
人验识别,即上传身份证信息后,采用实时摄像头信息对比人验与身份证的相似度。显然,开个车门还要刷脸也是比较麻烦的。就是不清楚iphone x的刷脸体验是怎样的。不过,已经有人开始担忧了。
所以,个人觉得比亚迪云服务(车联网)还是找对了路子,只是控件还有待进一步优化。