TA的每日心情 | 擦汗 4 天前 |
---|
签到天数: 1042 天 连续签到: 4 天 [LV.10]测试总司令
|
自从今年小编接触了首个sdk相关的测试以来,这几个月中又陆续接到了一些sdk测试任务,在此过程中又总结了一些心得与技巧来和大家分享一下,作为前文的一个续篇:智能硬件sdk测试初探
一、sdk demo的质量
目前,sdk demo是小编测试sdk的主要途径,所以sdk demo的质量会直接影响到我们测试的结果。
首先,作为测试用的demo,通常我们不需要它拥有美观的界面以及完全友好的用户体验,但是一定要真正按照实际使用sdk的方式来对sdk进行调用,这是很重要的,否则测试的重点很容易跑偏。
其次,demo是否可以覆盖sdk在实际使用中会用到的全部功能也很重要,这客观影响到我们的测试覆盖度。
再有,demo的设计是否可以满足测试的需求也很重要,比如,要进行性能和稳定性测试的话,demo是否可以实现自动化批量测试,以及是否可以对结果或日志进行保存这些都需要考虑。
最后,demo本身是否会影响到测试的结果也需要考虑,比如demo本身的一些逻辑存在bug,或者本身存在内存泄漏等稳定性问题。这种问题比较普遍,可能经常遇到,对于我们测试sdk可能会产生较大干扰,同时也会影响到测试进度,需要尽可能地减少。
在某些项目中,sdk demo是由开发侧制作并提供的,开发提测sdk的同时已经准备好了demo。这种情况就需要我们对demo的质量做个预先的评估。小编之前就遇到了由于开发提供的demo质量的问题,未完全覆盖到app的调用逻辑,导致sdk集成到app后出现问题的情况,测试sdk demo的时候完全正常,结果app的测试同学却遇到了问题。双方测试和开发排查、沟通半天,最后才查到是sdk的问题,白白浪费了各方不少的时间。所以,拿到demo以后,先简单测试并与开发就一些调用上的细节进行核对,如果发现有哪些地方不满足我们上述所说的一些条件,我们应该及时提出,由双方共同商讨解决方法后及时修改,避免测试中出现隐患。
二、手机app sdk测试对资源情况的监控
不同于之前的智能硬件sdk测试,所用的系统由公司自己控制,我们可以较为方便地对系统进行操作,比如获取root权限或者在sd卡中执行脚本等等,对手机app所用sdk的测试,我们要在不同的手机上进行测试。不同品牌、不同系统的手机,由于厂商的限制,我们有时很难进行像获取root权限这样的操作,也很难在手机内部运行自定义的简易脚本来做各种事情,因此对资源情况的监控,我们就不能放在手机里来做了。
这种情况,我们使用外部监控的方式来对手机中运行程序的资源情况进行监控。
第一种方式,可以把之前放在设备中执行的脚本稍加修改,变成在外部执行,通过adb命令来获取相应的资源情况。比如在windows系统下,我们可以使用一个超简单的bat脚本来实现:
- [url=home.php?mod=space&uid=1806]@echo[/url] off
- :LOOP
- set /p=%date:~0,10%-%time% <nul >> log.log
- adb -s deviceid shell "top -b -n 1 | grep 'processname' | grep -v grep" >> log.log
- ping 127.0.0.1 -n 30 >nul
- goto LOOP
复制代码 获取到的日志:
然后就可以像之前一样使用excel等工具绘制曲线图来观察资源占用的变化情况。
第二种方式,我们可以用一些监控工具来实现对于资源的监控。比如android studio、xcode、perfdog等等。最近小编就经常使用perfdog来进行资源监控,这款腾讯公司开发的监控工具使用简单,并且安卓和IOS系统都可以使用,也支持一台电脑同时监控不同系统的多台设备,省时省力。
但目前该工具还存在一些bug,便捷的同时也建议大家不要过度信任该工具,还是要自己多加尝试、使用和观察来避免踩坑。
三、可联网智能设备sdk通过公司网络进行测试
我们已经测试了多款智能设备相关的sdk,其中有一项测试是需要通过网络向设备发送一些数据来进行测试的,这种情况在一般的wifi环境(密码加密或完全公开)下比较容易实现,但对于像搜狗公司这样的、需要web认证的网络条件下就比较麻烦,因为很多智能设备可能无法使用web认证,无法接入公司的wifi网络。像这种情况,经研究,我们可以通过几种方式来解决,作为小经验分享给大家:
1、使用电脑无线网卡创建热点,设备接入。
这种方式比较适合使用笔记本电脑测试的同学,一般直接用笔记本的无线网卡开启热点后,智能设备连到这个热点上,设置好ip后即可从电脑访问设备。用台式机的同学可能需要自备另外的网卡了。
2、使用无线路由器,双方接入。
这种方式比较高效,只要电脑(无线有线均可)和智能设备都连到路由器的wifi上,电脑即可访问到智能设备(这就相当于另外搭建一个无线网络)。如果还需要访问外网和公司网络,可以将路由器的一个端口用来连接公司有线网络,使用dhcp或静态ip的方式均可。
3、使用无线路由器,设备接入,纯路由方式。
这种方式不要求电脑端接入路由器网络,只需要智能设备接入,但实现起来比较复杂。需保证路由器接入公司网络,不要开启NAT,智能设备ip不和路由器和电脑在同一网段,电脑和路由器在同一网段,电脑端设置路由将设备网段流量转发至路由器ip。以上条件应该缺一不可,因为过于复杂,所以不建议使用。
4、使用无线路由器,设备接入,端口转发方式。
这种方式是小编最终所选用的。因为无需对电脑端做任何操作,不用开热点,不用经历断网更不用设置路由,甚至还可以从机房的服务器进行访问。只需将路由器接入公司网络,然后将智能设备所需提供服务的端口在路由器设置个端口映射/转发(DNAT)即可,需注意TCP/UDP协议是否启用。这样从电脑端直接请求路由器ip上映射出来的端口就可以访问到设备指定的端口了。缺点是,如果需要转发不止一个端口或端口是动态的话,不是很好处理。
小结
本文主要介绍了在sdk测试中可能遇到的一些问题和解决的思路,希望能给大家提供一些参考。当然关于sdk的测试还有很多其他的方法和注意事项,欢迎各位同学一起讨论交流,共同进步~
|
|