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


__EOF__

  • 本文作者: 久曲健的测试窝
  • 本文链接: https://www.cnblogs.com/longronglang/p/6361175.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • posted @   久曲健  阅读(2394)  评论(0编辑  收藏  举报
    编辑推荐:
    · 开发中对象命名的一点思考
    · .NET Core内存结构体系(Windows环境)底层原理浅谈
    · C# 深度学习:对抗生成网络(GAN)训练头像生成模型
    · .NET 适配 HarmonyOS 进展
    · .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
    阅读排行:
    · 本地部署 DeepSeek:小白也能轻松搞定!
    · 如何给本地部署的DeepSeek投喂数据,让他更懂你
    · 在缓慢中沉淀,在挑战中重生!2024个人总结!
    · 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
    · 从 Windows Forms 到微服务的经验教训
    点击右上角即可分享
    微信分享提示