zoukankan      html  css  js  c++  java
  • 史上最全的MonkeyRunner自动化测试从入门到精通(2)

    原文地址https://blog.csdn.net/liu_jing_hui/article/details/60955696

    最基本脚本功能开始编写

    (1)Monkeyrunner和Monkey的区别 
    1)Monkeyrunner工具在工作站上通过API定义的特定命令和事件控制设备或模拟器(可控) 
    2)精确控制事件之间的事件 
    3)可以进行:点触屏、拖拽、长按、键盘事件 
    4)可以智能截图对比和判断 
    5)回溯出详细具体的BUG路径 
    (2)Monkeyrunner优缺点: 
    1) 能完全模拟人工所有操作 
    2) 有详细的API文档参考 
    3) 可以写出智能图像对比脚本 
    4) 支持java和Python两种语言脚本 
    5) 脚本移植性差 
    (3)Monkeyrunner的脚本编写

    1) 终端USB调成开发者模式 
    2)电脑安装手机驱动

    (4)实现一个简单的运行的实例(通过命令行的方式进行实现,同时)

    步骤一:打开cmd,输入monkeyrunner,如图所示:

    这里写图片描述

    步骤二:进入shell命令交互模式后,首要一件事就是导入monkeyrunner所要使用的模块。直接在shell命令下输入命令: 
    from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice 
    再回车,这步完成我们就可以利用monkeyrunner进行测试工作了。

    这里写图片描述

    步骤三:模拟器的链接,下面我们就要Monkeyrunner连接上模拟器,进行一系列操作了。输入命令: 
    device=MonkeyRunner.waitForConnection() 
    其中,device=MonkeyRunner.waitForConnection(6,’emulator-5554′) 
    参数1:超时时间,单位秒,浮点数,默认是无限期地等待。 
    参数2:指定的设备名称device_id,默认为当前设备(手机优先,其次为模拟器)

    这里写图片描述

    输入命令后,页面上没有错误信息返回,即成功连接设备。

    步骤四:app安装并启动。 模拟器启动成功后,我们安装自己想要的apk,这里我们选择qq音乐安装。 
    输入命令:device.installPackage(‘F:QQyinle_439.apk’),其中,参数是APK的相对路径。 
    安装成功返回true,此时查看模拟器我们可以在IDLE界面上看到安装的APK的图标了。

    这里写图片描述

    步骤五:进行启动 
    app安装成功后,现在启动该app,命令为: 
    device.startActivity(component=”package名/.activity”) 
    首先,我们有必要说一下,如何获取一个app的package名和activity。这里,我们只描述一种获取方式。 
    使用aapt,其中aapt是sdk自带的一个工具,在sdkuilds-tools目录下:

    这里写图片描述

    以存储在F盘的qq音乐为例,运行cmd,命令行中切换到aapt.exe目录,

    方法一: 
    执行命令:aapt dump badging F:QQyinle_439.apk ,注意,apk路径中一定不能有空格。

    这里写图片描述

    由上图可知:package name:com.tencent.qqmusic 
    activity:.activity.AppStarterActivity 
    方法一由于日志较多,寻找起来比较费劲,所以我们引出方法二。 
    方法二(推荐): 
    把日志存储在特定的文件中,在文件中通过搜索关键字,得到包名及活动名,这里我把结果输出到F盘的log.txt中: 
    aapt dump badging F:QQyinle_439.apk > F:log.txt 
    到此,已经获取了app的package名和activity。下面,我们真正的启动app。在原有cmd运行窗口,输入命令: 
    device.startActivity(component=” com.tencent.qqmusic/.activity.AppStarterActivity “) 
    命令执行后,模拟器上的app被启动。这表示命令启动app成功。这里的关键是app的package name和activity对应获取正确,否则启动不了特定app。

    这里写图片描述

    (5)在eclipse中进行使用,编写脚本语言。在eclipse中进行创建项目。

    步骤一:在File中,New一个Project,并选择PyDev Project。

    这里写图片描述

    这里写图片描述

    步骤二: 根据需求,填写项目名称,并选择项目的类型为Jython,点击Finish。

    这里写图片描述

    步骤三: 项目新建完成后,单击选中项目,右键,New一个PyDev Module,新建完成后,就可以写python程序了。

    这里写图片描述

    步骤四: 现在,我们把Monkeyrunner中写的脚本,直接拷贝到eclipse中,新建的PyDev Module中,包括导包、连接设备、安装app、启动app:

    #引入monkeyrunner需要的两个模块:
    from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice 
    #把模拟器和monkey绑定,绑定后在monkeyrunner的操作等同于在模拟器的操作:
    device=MonkeyRunner.waitForConnection()
    #安装一个apk应用包
    
    device.installPackage('F:\QQ_374.apk') 
    #启动特定的Activity
    device.startActivity(component="com.tencent.mobileqq/.activity.SplashActivity")
     

    (6)eclipse中的运行Monkeyrunner脚本配置 
    步骤一: 菜单栏中选择Run-External Tools-External Tools Configurations,

    这里写图片描述

    这里写图片描述

    步骤二: 添加相关配置信息,如下图:

    这里写图片描述

    注:以上配置只针对test02.py,如果有新的PyDev Package,要同时更改Working Directory和Arguments的配置。 
    模拟器启动后,接下来就可以运行刚才新建的PyDev Module了

    这里写图片描述

    在模拟器上,我们可以看到app的自动安装和启动。这说明环境已经配置成功,之后就可以在eclipse中编辑monkeyrunner脚本,并运行。

  • 相关阅读:
    针对数据库开发人员的性能调优小提示
    Oracle EBS 12 目录结构
    程序集反射
    DataTable.Select() 返回DataTable结果
    有趣的23中设计模式
    『原创』用C++开发WM应用系列(5)——接触ListBox控件
    『原创』用C++开发WM应用系列(1)——"Hello World" Pro!(上)
    【参考】在PPC上面检查文件MD5
    用C++开发WM应用系列文章索引
    『原创』用C++开发WM应用系列(1)——"Hello World" Pro!(下)
  • 原文地址:https://www.cnblogs.com/111testing/p/8853435.html
Copyright © 2011-2022 走看看