Uiautomator(1)

monkeyrunner初探失败,继续寻找其他办法。(其实我也不知道我到底在往什么什么方向发展,只是一步一步摸黑前进)

摘自出处:http://www.cnblogs.com/by-dream/p/4872244.html

Uiautomator测试框架的工作流程

  下面是自动UI测试所需的步骤的简短概述:

  1、安装待测应用到手机,通过uiautomatorviewer分析应用程序界面的控件,并确保应用程序的控件可以被自动化框架访问。

  2、创建自动化测试用例来模拟你和应用程序之间交??互的步骤。

  3、将测试用例编译成一个JAR文件,并发动到应用程序安装的那台测试设备?上。

  4、运行测试,查看测试结果。

步骤一分析:

1、 手机连接PC端或者直接打开安卓模拟器;

2、在 ..\sdk\tools\ 目录下打开 uiautomatorviewer.bat;

3、将手机或是模拟器的页面停留在你要分析的页面,然后点击uiautomatorviewer左上角的第二个图标按钮 Device Screenshot,点击之后会将当前手机界面的快照更新到这里来。

右下方的整个区域,是当前选中的页面或者是控件的属性信息。写代码的时候就是需要通过查看属性中的控件的id或者是text等来获取控件的实例,然后点击操作它。

步骤二分析:

1、在Eclipse中建立一个Java的工程。

2、右键选中你建立的工程,在Properties > Java Build Path中:

    a、点击 Add Library > JUnit 添加JUnit3/4

    b、点击Add External JARs... 导入 uiautomator.jar and android.jar 这两个jar包。

    这里需要注意,导入这两个jar包的时候,注意Android的版本号,后面生成build.xml的时候需要知道你导入的这两个jar是哪个sdk版本的。

3、导入成功之后,就可以写代码了。代码的格式参考下面:

以上脚本是:打开手机QQ-点击登录。详细的用法请自行百度。

步骤三分析:

1、脚本确定没有问题之后,准备生成build.xml文件,命令行进到tools文件路径下,输入“android create uitest-project -n %工程名% -t 2 -p %工程目录% ”生成build.xml文件;

注:这里的 -t 后面的 2 就是Android list后对应的你当初引入两个jar包的sdk版本对应的id。我的是 id: 2 or "android-20",所以我这里是2。如果不清楚,可以在命令行中输入“android list”查看。

我在eclipse中,查看我的android.jar和uiautomatorjar的版本是20;

我的命令是:android create uitest-project -n uitest -t 2 -p E:\workspace\uitest

2、生成的build.xml文件是在“...\workspace\uitest\bin”文件夹下的,此时可以刷新Java工程,就可以在看到生成的文件;

3、打开build.xml文件,将“<project name="uitest" default="help">”修改为“<project name="uitest" default="build">”,保存;

4、选中build.xml文件,右键run as->ant build,如下即表示生成成功。

注:如果没有ant build的话就是没有ant这个插件了,需要自行下载安装,但是按理说一般eclipse都是自带这个插件的,我是重新下载了一个新的eclipse,宝宝懒【捂脸】!

5、生成完成之后,需要将这个jar文件放到手机对应的地方,此时命令行进到,输入“adb push jar文件路径+jar文件名 /data/local/tmp”,如“adb push E:\workspace\uitest\bin\uitest.jar /data/local/tmp”,即可将文件传至手机中;

注: /data/local/tmp这个路径在未root的手机中是找不到的,建议没有已经root过的手机的宝宝们,还是使用模拟器吧。

6、确认文件传输成功之后,再到命令行输入“adb shell uiautomator runtest jar名称 -c 包名.类名”,如“adb shell uiautomator runtest uitest.jar -c uitest.QQtest”。

注:此处的包名和类名是指Java工程中的包名和类名,不是你要测试的应用的包名和类名,这种愚蠢的错误我就犯了。。。迷糊一早上,睡完午觉才明白过来。

完成上面那个步骤,基本上就可以看模拟器愉快的运行你的脚本了。

内容参考来自:

http://www.cnblogs.com/by-dream/p/4872244.html

http://blog.csdn.net/robinzhou/article/details/8447058

小白一枚,初涉此域,如有错误,欢迎指正。

时间: 2024-07-31 00:57:54

Uiautomator(1)的相关文章

Android自动化之uiautomator(一)

一.uiautomator简介 Android SDK提供下述工具来支持自动化的功能界面测试: 1.uiautomatorviewer:扫描.分析待测应用的UI组件的图像工具. 2.uiautomator:包含创建定制功能界面测试API和自动化运行测试用例的引擎的JAVA类库. 优点:可以对所有操作进行自动化,操作简单: 缺点:Android版本需要高于4.0. 二.Uiautomator常用API了解 以下是uiautomator最基本最常用到的三个类,这里只是简单地介绍这三个类的作用,后续本

包建强的培训课程(4):App测试深入学习和研究

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 false 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈<「『[[[〝﹙﹛﹝$(.[{£¥ !%),.:;>?]}¢¨°·ˇˉ

UiAutomator Android 的自动测试框架(基础)

</pre>很久没更新博客了,今天至后期的一段时间将带给大家的是<span style="font-family: 微软雅黑; font-size: 14px; line-height: 21px; widows: auto;">UiAutomator android的自动测试框架,一系列的介绍,希望大家喜欢.</span><p></p><p><span style="font-family: 微软

Android 自动化测试(4)&lt;uiautomator&gt; 单元测试

在之前的系列文章中,我介绍过用java来实现过 Android 自动化测试(1)如何安装和卸载一个应用(java).Android 自动化测试(2)根据ID查找对象(java):然后又介绍了用python语言来实现Android 自动化测试(3) 根据ID查找对象&touch&type (python).还说过后续要写点关于单元测试和代码覆盖测试的文章.今天要介绍的就是单元测试. 1. 概要 做过java单元测试的同学,使用Android的单元测试比较简单,参见 如何进行Android单元

appium简明教程(11)——使用resource id定位

上一节乙醇带大家了解了appium的定位策略.实际上appium的控件定位方式是完全遵守webdriver的mobile扩展协议的. 这一节将分享一下如何使用resource id来定位android策略. 什么是resource id,这个不属于本文的范畴,大家可以点这里了解. 我们可以有两种方式来使用resource id进行定位: 使用 findElement(By.id("resourceId")) 的方式.这也是原生的webdriver定义的方法,不过竟然在appium的官方

Android 自动化测试(5)&lt;robotium&gt;

关于Android的自动化测试之UI测试,之前介绍过Android 自动化测试(4)<uiautomator>, 在android原生的单元测试框架上,利用uiautomator.jar这个类库来完成Android的界面上的测试,这已经使得测试比较简单了.但还有更加简单的写测试的方式,那就是利用一些第三方的测试框架,比如robotium. Android的第三方的测试框架,有Robolectric 和 robotium,我试着用了下,觉得robotium已经非常好用了. 1.概要 Roboti

Android官方技术文档翻译——Gradle 插件用户指南(6)

没想到翻译这篇<Gradle 插件用户指南>拖了差不多一个月,还跨年了.不好还好,在2号时终于一口气把剩下的给翻译完了(其实那天剩下的也就不到一章). 今天先发一下第六章,明天再发第七章. 本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide. 翻译不易,转载请注明CSDN博客上的出处: http://blog.c

appium简明教程(10)——控件定位基础

狭义上讲,UI级的自动化测试就是让机器代替人去点来点去的过程. 但机器去点什么(点上面还是点左边),怎么点(是长按还是轻触),这些东西是必须由代码的编写者所指示清楚的. 控件定位就是解决机器点什么的问题的. 一般说来,我们可以这样告诉机器:去点登陆按钮. 机器很笨,它并不知道什么是登陆按钮.因为登陆按钮是自然语言的描述. 如果你让一个人去点登陆按钮,那么他其实也是要经过一系列的脑补以后才可以做这件事的. 这个脑补的过程还原如下: 这个一定是个按钮 这个按钮一定在被测的应用上 这个按钮大概上面有登

Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决的方法

Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决的方法 怪自己二了.写好的不小心弄没了,如今仅仅好又一次写一些了.上篇简单的配置了一下环境.这里呢,就来讲一下相关的仅仅是点 我们先下载一个ROM.随便下,原理都是差点儿相同的,这里我就下载一个红米Note的MIUI稳定版 1.ROM结构 ROM依据厂商的定制可能有所不同,可是大体是不变的 data 内置一些软件 META-INF 脚本文件 update-binary 二进制文件 u