服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - android monkey自动化测试改为java调用monkeyrunner Api

android monkey自动化测试改为java调用monkeyrunner Api

2020-12-20 16:55Android教程网 Android

一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现可以用java调用monkeyrunner Api,于是,就简单研究了一下。这里做一些总结。希望有对在研究的午饭可以有所用处

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

android monkey自动化测试改为java调用monkeyrunner Api

导入之后,我简单创建了一个测试类,然后添加一个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)。结果这就像一个无底洞了,总是找不到最终一个文件的父类:如图:

android monkey自动化测试改为java调用monkeyrunner Api

折腾了一番,我就感觉不应该是这样的,不过搜索了很多零碎的资料,差不多都是跟这个方法一个意思。最后,我在一个论坛找到了一个勉强称之为解决方法的答案。他重新给了我四个包,说是我导入的这四个包版本太新了(我的更新到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<string> categories = new arraylist<string>();
categories.add("android.intent.category.launcher");
// 启动要测试的主界面,主要是配置自己的包和启动类
device.startactivity(null, action, null, null, categories,
new hashmap<string, object>(),"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中的touchdragtype,等等,都是monkeyrunner中的方法,你也可以简单的封装一下就可以使用。跟使用python时,没多少区别。
 
说到为什么要使用java语言调用monkeyrunner来写脚本,我因为习惯了用python写,暂时没体会到有啥太大的优势,也许是工程量大时,用java更直接和便于管理,也许就是个人爱好了。这个有待以后体验。
 

延伸 · 阅读

精彩推荐
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7432021-03-11
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9592022-03-02
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8332021-03-31
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6182021-03-27
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810042021-05-03
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4622021-03-09
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4652021-01-03