zoukankan      html  css  js  c++  java
  • java调用monkeyrunner(亲测绝对可行)

    我自己试验了下和官方的API编写不太一样,老别扭了,建议还是用Python写吧

    昨天在网上查了一下一天,都是转来贴别人的,真正敲的很少,我真不知道转的大侠你们自己敲了么?

    先截一段不负责任的blog图,为什么你们的测试脚本都是一样,真心尴尬。

    如下图:

    ---------------------------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------------

    测试脚本没问题。

    好了,开始我的做法。

    前提条件:

    1、我自己将monkeyrunner源码,直接导出jar,然后引入就能编脚本了

    2、难点:

    导出jar包,需要把monkeyrunner源码引用的第三方jar包,也要带上,否则你打出来的monkeyrunner.jar是不能用的。

    用eclipse的fatjar导出的jar,怎么导出参考百度

    3、我写的一个简单的计算器Java版本的case

    脚本如下:

    TestCalculator.java
    package com.monkeyrunner.www;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.HashMap;
    
    import com.android.monkeyrunner.adb.AdbBackend;
    import com.android.monkeyrunner.core.IMonkeyDevice;
    import com.android.monkeyrunner.core.TouchPressType;
    
    public class TestCalculator {
        private static IMonkeyDevice device;
        private static AdbBackend adb;
    
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            if (adb == null) {
                adb = new AdbBackend();
                // 参数分别为自己定义的等待连接时间和设备id
                device = adb.waitForConnection(3000, "192.168.56.101:5555");
            }
            // 添加启动权限
            String action = "android.intent.action.MAIN";
            Collection<String> categories = new ArrayList<String>();
            categories.add("android.intent.category.LAUNCHER");
            // 启动要测试的主界面,主要是配置自己的包和启动类
            device.startActivity(null, action, null, null, categories, new HashMap<String, Object>(),
                    "com.android.calculator2/com.android.calculator2.Calculator", 0);
            // 点击某一个坐标
            device.type("1+1");
            Thread.sleep(3000);
            device.touch(550, 900, TouchPressType.DOWN_AND_UP);
    
        }
    }

    运行结果:1+1=2

     

    总结:

    和官方的api不太一样,用Java写的话,感觉对不上,好别扭,用Python写还是蛮适合的,只是我Python不熟,我习惯Java,有兴趣的同学,请参照demo,自行尝试。

    引用我生成的monkeyrunner.jar,写脚本编译就不会报错了。

    monkeyrunner.jar包下载地址:链接: http://pan.baidu.com/s/1kV3B0xD 密码: pefx

  • 相关阅读:
    使用控制结构——循环语句——基本循环
    oracle字符类型 char,varchar2,varchar,clob,nvarchar,nclob
    使用控制结构——条件分支语句——多重条件分支
    hduoj 1518square
    运算符重载实现复数的加减乘除
    使用游标——参数游标
    开发PL/SQL子程序——触发器——编译触发器,删除触发器,显示触发器
    NYOJ58最少步数
    使用控制结构——条件分支语句——简单条件
    开发PL/SQL子程序——触发器——使用触发器注意事项
  • 原文地址:https://www.cnblogs.com/longronglang/p/6361175.html
Copyright © 2011-2022 走看看