博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]Android自动化测试之使用java调用monkeyrunner(五)
阅读量:6048 次
发布时间:2019-06-20

本文共 2433 字,大约阅读时间需要 8 分钟。

众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现可以用java调用monkeyrunner Api,用java语言写测试脚本。
 
于是,就简单研究了一下。这里做一些总结。希望有对在研究的午饭可以有所用处。
开始时,搜素到一些零碎的教程,说使用java调用monkeyrunner时,需要导入android sdk  tools路径下的lib里面的4个包:ddmlib.jar,guavalib.jar,monkeyrunner.jar,sdklib.jar.当然,这里建的是java工程,往工程里面导包就是通过:右键工程》properties》Java Build Path》Libraries》add External JARs》OK。如下图:

导入之后,我简单创建了一个测试类,然后添加一个MonkeyDevice对象,然后引入需要的包,结果发现报了错误,引用的资源找不到,根据看到的例子的提示说,需要手动添加AdbBackend.java文件到自己的工程中去。于是,我就在搜了一下,在官网上下到了这个类(官网地址:http://www.java2s.com/Open-Source/Android/android-core/platform-sdk/com/android/monkeyrunner/adb/Catalogadb.htm)添加进去,之后,MonkeyDevice问题解决了,但是,下一个问题出现了,AdbBackend的父类文件找不到,就是MonkeyRunnerBackend.java,然后我只好去搜这个文件,然后手动添加到自己的工程中(地址是:http://www.java2s.com/Open-Source/Android/android-core/platform-sdk/com/android/monkeyrunner/MonkeyRunnerBackend.java.htm)。结果这就像一个无底洞了,总是找不到最终一个文件的父类:如图:

折腾了一番,我就感觉不应该是这样的,不过搜索了很多零碎的资料,差不多都是跟这个方法一个意思。最后,我在一个论坛找到了一个勉强称之为解决方法的答案。他重新给了我四个包,说是我导入的这四个包版本太新了(我的更新到android4.1)。我添加进去之后,果然能用。
这里简单贴一下我的代码,说一下调用问题:
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 MyTest2 { private static IMonkeyDevice device; private static AdbBackend adb; public static void main(String[] args) { // TODO Auto-generated method stub if (adb==null){ adb = new AdbBackend(); // 参数分别为自己定义的等待连接时间和设备id device = adb.waitForConnection(8000,"MSM8225QRD5"); } //添加启动权限 String action = "android.intent.action.MAIN"; Collection
categories = new ArrayList
(); categories.add("android.intent.category.LAUNCHER"); // 启动要测试的主界面,主要是配置自己的包和启动类 device.startActivity(null, action, null, null, categories, new HashMap
(),"cn.com.fetion/.android.ui.activities.StartActivity", 0); // 点击某一个坐标 device.touch(202,258,TouchPressType.DOWN_AND_UP); } }
这些代码还是比较简单,主要注意的是两点:1).
adb.waitForConnection(a,b);这个方法里添加的是等待启动的时间和自己的设备名字。2).startActivity()这个方法的倒数第二个参数是配置你的要测试的apk的包名和主界面,
 
运行java application就可以连上你的测试设备。其他的一些需要用到的测试方法,比如monkeyrunner中的touch,drag,type,等等,都是monkeyrunner中的方法,你也可以简单的封装一下就可以使用。跟使用python时,没多少区别。
 
说到为什么要使用java语言调用monkeyrunner来写脚本,我因为习惯了用python写,暂时没体会到有啥太大的优势,也许是工程量大时,用java更直接和便于管理,也许就是个人爱好了。这个有待以后体验。
 
首发地址:

转载于:https://www.cnblogs.com/kenfang/articles/4311174.html

你可能感兴趣的文章
C++著名类库
查看>>
企业单点登录解决方案(CAS)之三安全指南
查看>>
Java Robot对象实现服务器屏幕远程监视
查看>>
用报表软件自定义地图
查看>>
CentOS7.4安装Gitlab10.5.1及,汉化,修改端口,url,安装runner
查看>>
开源流媒体系统:OBS ( Open Broadcaster Software ) 介绍
查看>>
如何绕过安卓SSL证书的强校验
查看>>
haproxy根据用户客户端做ACL的文件例子
查看>>
Linux系统运行级管理
查看>>
在选择数据库的路上,我们遇到过哪些坑?(1)
查看>>
微服务扩展新途径:Messaging
查看>>
Windows 7样式地址栏(Address Bar)控件实现
查看>>
[ffmpeg]通过Qt调用ffmpeg命令
查看>>
决心书
查看>>
Android音乐播放器的开发实例
查看>>
Android Camera 使用小结
查看>>
流控算法
查看>>
带你认识OSI,network就靠它
查看>>
【小松教你手游开发】【面试必读(编程基础)】C# 理解泛型
查看>>
Pyton学习—循环语句
查看>>