初涉移动应用测试

来源:互联网 发布:知乎 北京 中科院 编辑:程序博客网 时间:2024/05/22 17:22

          自从1993年世界上第一款智能手机IBM Simon诞生以来,特别是进入21世纪以后,手机的使用已经远远超过了电脑,人们更愿意用小巧方便的手机进行工作、学习、娱乐、社交等,使用手机的时间远远超过了电脑,因此对于移动应用的测试变得非常重要。

       电脑虽然品牌众多,但大抵都是基于Windows、OS X和Linux操作系统的。和电脑不同,以安卓手机为例,安卓手机的商家很多,而且不同商家的操作系统常常是不同的,并且屏幕分辨率、传感器等类型也十分众多,因此安卓的碎片化问题十分严重。如何做好安卓的移动应用测试,是一个非常有挑战性的问题。

       当然随着技术的不断进步,现在已经有很多优秀的测试框架和工具来帮助我们进行移动应用测试,常用的有:Robotium、Money、MonkeyRunner、Espresso、Appium等。

       Robotium是一个开源的库,基于JUnit扩展了很多关于Android UI的有效测试方法。Money是Android SDK自带的测试工具,在测试过程中可以向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。MonkeyRunner也是Android SDK自带的测试工具,但功能比Monkey要强大。Espresso是Google的开源自动化测试框架,它的特点是规模小而间接,API更加精确。

        其中,Appium是我目前用的最多,最熟悉的一个测试工具。Appium是一个开源的自动化测试框架,它可以用于测试原生App,移动Web App,混合App。它可以使用WebDriver protocol来驱动iOS,Android,Windows的app。

       Appium的核心其实是一个暴露了一系列REST API的server。这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。

    而要写一个Appium脚本的基本步骤如下:

    1.选连接设备或启动模拟器,之后用adb devices  查看

    2.启动Eclipse 并新建一个Java工程

    3.复制第三方包到lib,选中导入第三方包

    4.启动Appium,配置

    5.在项目根目录下新建一个目录用来存放APK

    6.再在APPS目录下新建一个目录
    7.在测试类中编写脚本

    注意:如果运行过程中出现异常,检查是不是设备断开了;另外,做测试时最好不要装手机助手,不然经常会抢5037 端口。

    当然,仅仅凭借个人的力量来编写脚本等进行移动应用测试显然是不够的,常常会遇到测试覆盖率不够,测试用例过于复杂的情况,这时可以借助一些第三方的测试平台,如:百度MTC、腾讯优测、Testin云测、阿里云测等等。

    仅仅通过第三方云测试平台仍然是不够的,我们开发者更希望是有大量的真实用户作为测试者来使用我们的应用,从他们的反馈中改进应用。这就是众测(众包测试)关注的地方。众测的目的是利用大众的测试能力和测试资源,在短时间内完成大工作量的产品体验,并能够保证质量,第一时间将体验结果反馈至平台,再由平台管理人员将信息搜集,交给开发人员,这样就能从用户角度出发,改善产品质量。百度众测是众包模式的典型应用,它将企业产品的相关测试工作交由网络社区大众来完成。
    众测平台需要把三方面的资源整合到一起:
    1.需要测试服务的企业方:企业方需要解决测试工作量成倍增长的问题。
    2.众测平台运营者:负责对整个测试项目的实施和后续质量进行管理和保证。
    3.测试社区:是由有一定测试技能的个体测试者组成的测试社区。
    只有了解到用户最真实的需求和体验,才能更好的改进产品,开发出更好的产品。


参考资料:

-      5个最佳安卓测试框架–伯乐在线

-      Android 手机自动化测试工具有哪几种?-知乎




原创粉丝点击