zoukankan      html  css  js  c++  java
  • [安卓自动化测试] 001.UIAutomator初探

    UIAutomator初探

    这篇文章你会学到的东西:
    1、什么是自动化测试
    2、有哪些测试
    3、自动化测试工具
    4、认识UIAutomator
    5、用UIAutomator制作第一个自动化测试工具。
    


    ps:笔者也是刚开始学习UIAutomator,若有错误的地方,或者有更好的操作方式,望请不吝赐教。

    偷懒改变世界。
    人们懒的走路,发明了汽车。
    人们懒的爬楼梯,发明了电梯。
    人们懒的洗衣服,发明了洗衣机。
    人类的进步,离不开偷懒而又聪明的发明家。现在,一群偷懒而又聪明的程序员将偷懒上升到新的高度——利用程序来进行自动化测试。将测试员从繁琐的测试用例中解放出来,从此,可以一边喝着咖啡一边看着机器自动的执行测试,测试员不必看着测试用例重复进行无数次的测试步骤,也不必担心失误而导致不必要的错误,更不用担心压力测试而导致身心疲惫。UIAutomator就是这么一个被聪明的偷懒家发明出来的东西。我们可以使用它,来编写自动测试的代码,执行这些代码,就可以让机器自己执行测试,而我们,嘿嘿,去喝杯咖啡或者看看足球比赛吧。

    什么是自动化测试

    自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

    有哪些测试

    1、Google CTS测试:兼容性测试,测试ROM的兼容性标准
    2、实验室机器人测试,机械臂自动化模拟测试
    3、Monkey Test 压力测试
    4、End User Test 终端用户测试
    对于美国的手机运营商,如:T-Mobile、Sprite、AT&T,他们都有自己一系列的手机性能测试、他们的测试项目、测试方法、测试过程,其实都是他们的商业机密,一个保证测试结果的严谨性,一个也保证了手机厂商能够不作弊的完成测试。所以千万不要学华X手机,在T-Mobile实验室偷拍手机机器人的软件、技术参数及其他机密信息,而被T-Mobile列入北美黑名单。逗比新闻

    自动化测试工具

    MonkeyRunner

    monkeyRunner提供一个API来控制Android设备。可以写一个Python脚本来安装应用、运行应用、发送键值、截图。monkeyRunner对python进行了封装,加入一些针对Android设备的类。可以完全用python脚本来实现这些功能。适用于压力测试。

    Instrumentation

    基于Android单个Activity的测试框架。适用于白盒测试

    Robotium

    一个优秀的测试框架,基于Instrumentation的二次封装。使用于白盒测试

    QTP

    一个web上的自动化测试工具,通过录制脚本来实现自动化测试。

    UIAutomator

    目前最佳的UI自动化测试框架。基于Android4.x+系统,专业UI自动化测试,可以模拟用户操作手机的各种行为。编写快速,可以使用大部分Android Api、无需前面,没有Activity限制。

    认识UIAutomator

    UIAutomator,翻译过来就是Android UI 自动化测试,在Android4.1版本中推出了UiAutomator测试框架,此框架一改过去较麻烦的UI自动化测试,和解放了过去诸多枷锁,让UI自动化测试变得非常容易和简单。

    用UIAutomator制作第一个自动化测试工具

    我们用UIAutomator制作一个自动化测试工具,它只有一个简单的能力——帮助我们按手机的Home键。

    第一步:创建一个测试工程

    我们用ADT来创建一个测试工程。

    创建一个java Project。

    选中菜单栏->File->New->Java Project就可以创建一个java工程了。
    如图所示:

    alt text

    添加必备的jar包。

    在工程目录下新建libs包。里面存放从Android SDK的platform/android-19/目录下获取的两个jar包:android.jar和uiautomator.jar。把这两个jar包丢到libs目录下。并build path 配置好这两个jar包。

    编写测试用例类。

    我们创建了一个Test类,它继承了UiAutomatorTestCase类。我们在此编写一个测试用例方法。它的作用是按下手机的home键。因为UiAutomator遵循Junit3,所以方法前都要带test。代码如下:

    package com.babybus.uiautomator.demo001;
    
    import com.android.uiautomator.core.UiDevice;
    import com.android.uiautomator.testrunner.UiAutomatorTestCase;
    
    public class Test extends UiAutomatorTestCase {
    
    	public void testPressHomeKey() {
    		
    		UiDevice.getInstance().pressHome();
    	}
    }
    

      

    第二步:创建build.xml
    在终端执行脚本

    在终端输入代码:

    android create uitest-project -n [jar name] -t 1 -p[project path]

    android create uitest-project 表示说要创建一个uitest-project项目
    -n 这个项目的名称
    -t 需要用到的android SDK的id。我们可以在终端执行android list来查看用的sdk的id编号。如下图:

    alt text

    -p 工程目录
    输入好代码回车,如下图:

    会在工程目录下创建build.xml.刷新工程,如图所示:

    第三步:修改build.xml

    我们把build.xml第二行的help改成build。代码如下:

    <project name="BBUIAutomator" default="build">
    第四步:编译,生成自动化测试jar包。
    编译

    执行命令:ant -buildfile [build.xml路径] 或者你也可以cd到工程目录下,执行命令:ant -buildfile build.xml,回车,如下图:

    出现BUILD SUCCESSFUL,就表示编译成功了。我们会在bin目录下,发现编译好的jar包。

    第五步:push jar包到手机
    我们需要把这个生成的自动化测试jar包push到手机的data/local/tmp目录下。

    执行命令:

    adb push [jar path] /data/local/tmp


    终端运行结果如下:

    第六步:执行jar包里面的自动测试代码。这里如果正确,应该看到好像有一个隐形人,按下了手机的Home键。

    执行命令:

    adb shell uiautomator runtest [jar name] -c [类名(完整类名)]

    回车,等几秒,你会看到手机好像有个人按了home建,屏幕返回到Home页面。 命令输出结果如下:

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4493142.html

  • 相关阅读:
    C语言 弹跳小球
    selenium 相关操作
    aiohttp 多任务异步协程
    39 数据库索引
    36 数据库 库表行增删改查 枚举 集合
    07 线程池回调函数
    06 gevent版真正的协程
    05 greenlet版协程
    03 线程池
    04 生成器版协程
  • 原文地址:https://www.cnblogs.com/superdo/p/4543069.html
Copyright © 2011-2022 走看看