iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android monkey自动化测试改为java调用monkeyrunner Api
  • 673
分享到

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

JAVAmonkeyrunnerapi测试Android 2022-06-06 11:06:09 673人浏览 泡泡鱼
摘要

众所周知,一般情况下我们使用Android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现可以用java调用monkeyrun

众所周知,一般情况下我们使用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<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中的touch,drag,type,等等,都是monkeyrunner中的方法,你也可以简单的封装一下就可以使用。跟使用Python时,没多少区别。
  说到为什么要使用java语言调用monkeyrunner来写脚本,我因为习惯了用python写,暂时没体会到有啥太大的优势,也许是工程量大时,用java更直接和便于管理,也许就是个人爱好了。这个有待以后体验。 您可能感兴趣的文章:java接口自动化测试框架及断言详解Java自动化测试中多数据源的切换(实例讲解)java单元测试JUnit框架原理与用法实例教程详解Java单元测试Junit框架实例Java中的异常测试框架JUnit使用上手指南Java接口自动化测试框架设计之Get请求方法和测试详解


--结束END--

本文标题: android monkey自动化测试改为java调用monkeyrunner Api

本文链接: https://www.lsjlt.com/news/28177.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android界面自动化测试工具monkeyrunner
    MonkeyRunner是一个Android平台的界面自动化测试工具,它基于Python语言,可以通过编写脚本来模拟用户操作。Mon...
    99+
    2023-09-23
    Android
  • Bash脚本中如何使用Java API实现自动化测试?
    自动化测试是软件开发中不可或缺的一环,它可以提高测试效率,降低测试成本,同时也可以保证软件质量。在自动化测试中,Bash脚本和Java API是两个非常重要的工具。本文将介绍如何在Bash脚本中使用Java API实现自动化测试。 一、B...
    99+
    2023-10-27
    api django bash
  • 怎么用java写自动化测试脚本
    使用Java编写自动化测试脚本可以通过以下步骤进行:1. 确定测试框架:选择一个适合的测试框架,比如JUnit、TestNG等。这些...
    99+
    2023-10-10
    java
  • 如何使用appium做Android手机自动化测试
    这篇文章给大家介绍如何使用appium做Android手机自动化测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Appium这个听起来既生疏也熟悉的自动化测试工具,比起原生的UiAutomator可能是异常的不起眼,...
    99+
    2023-06-05
  • pytest自动化测试中的fixture的声明和调用
    目录1. fixture的声明2. fixture的调用2.1 fixture的调用方式2.1.1 使用fixturename2.1.2 使用@pytest.mark.usefixt...
    99+
    2024-04-02
  • Android常用9种自动化测试框架是什么
    这篇文章主要介绍“Android常用9种自动化测试框架是什么”,在日常操作中,相信很多人在Android常用9种自动化测试框架是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android常用9种自动化测...
    99+
    2023-06-05
  • 自动化测试框架pytest的Fixture固件怎么调用
    本篇内容介绍了“自动化测试框架pytest的Fixture固件怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是固件Fixture...
    99+
    2023-07-05
  • 第三代api自动化测试框架使用教程(pytest+allure+sql+yaml)
    使用教程 一、配置1、环境配置2、框架配置3、启动入口 二、用例编写1、用例模板2、参数依赖写法2、函数(方法插件)写法3、接口上传文件和表单参数4、接口上传json参数5、接口无数据填写...
    99+
    2023-09-07
    sql 自动化 python
  • 怎么实现android应用程序自动化测试的批处理脚本
    本篇内容介绍了“怎么实现android应用程序自动化测试的批处理脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!测试平台:兼容androi...
    99+
    2023-06-08
  • Java反射的应用场景:从框架开发到自动化测试
    Java反射是一种能够获取类、方法、字段及其属性的强大技术,在框架开发、自动化测试、逆向工程等场景中发挥着重要作用。 1. 框架开发 借助反射,您可以构建可扩展且灵活的软件框架。通过反射,您可以发现和加载类,创建类的实例,调用类的方法,...
    99+
    2024-02-09
    Java 反射 框架开发 自动化测试 逆向工程
  • 如何在java中使用Selenium开发一个自动化测试框架
    这篇文章给大家介绍如何在java中使用Selenium开发一个自动化测试框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和...
    99+
    2023-06-06
  • 如何更改 GoLand 在生成自动化测试时使用的默认消息结构
    php小编鱼仔教你如何更改GoLand在生成自动化测试时使用的默认消息结构。在进行自动化测试时,GoLand默认使用的消息结构可能无法满足你的需求,而手动更改每个测试用例的消息结构又太...
    99+
    2024-02-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作