优点:1.可以对所有操作进行自动化,操作简单;

  2.不需要对被测程序进行重签名,且,可以测试所有设备上的程序,比如~某APP,比如~拨号,比如~发信息等等

     3.对于控件定位,要比robotium简单一点点

缺点:1.uiautomator需要android level 16以上才可以使用,因为在level 16及以上的API里面才带有uiautomator工具

  2.如果想要使用resource-id定位控件,则需要level 18及以上才可以

     3.对中文支持不好(不代表不支持,第三方jar可以实现)

     4.个人感觉,控件定位不如robotium那样层级分明,仅仅个人感觉,用户行为注入还是和插桩有点点区别的

第一步、环境准备:

1.JDK1.8(1.7我试验了果断不好使,一点不惯病)

2.eclispse(IDE尊崇个人意愿)

3.android SDK以及配置

4.ANT(主要用于build我们的脚本,生成jar包)

ant的搭建主要分几步:1.下载ant安装文件并且解压安装;

2.新建系统环境变量ANT_HOME,参数值是你的ant安装目录;

3.在Path环境变量中添加ant安装目录的bin文件夹,比如我的就是C:\cod\apache-ant-1.9.6\bin

4.配置完以后,测试一下,在命令行下输入ant -version,如果显示你所安装的ant版本信息,证明环境变量配置成功

第二步、建立我们的测试工程:

一、建立Java Project(普通Java项目)

二、添加依赖jar

对应安卓版本的jar,如我的是android-18

  android.jar
  uiautomator.jar

三、在测试工程src文件夹中add package,然后添加一个class文件,

随便写一个测试类:

如下:

package com.uiautomator.www;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiSelector;
/*** 测试点击HOME键,启动51CTO应用*/
import com.android.uiautomator.testrunner.UiAutomatorTestCase;/*** * @author Administrator*    **/
public class Demo extends UiAutomatorTestCase{public  void testDemo() throws Exception{UiDevice device = UiDevice.getInstance();if (device.isScreenOn()) {device.wakeUp();}UiObject object = new UiObject(new UiSelector().text("51CTO学院"));object.click();}
}

四、查看当前查看对应android版本的SDK的ID值

android list target

五、创建测试:

运行命令:android create uitest-project -n <name> -t <android-sdk-ID> -p <project_path>
比如:

android create uitest-project -n AutoRunner -t 2 -p F:\workspace\DemoTest

说明:

上面的name就是将来生成的jar包的名字,可以自己定义;android-sdk-ID就是上面看到的对应android版本的SDK id;path是Eclipse里刚才建立的测试工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。如果没生成,检查上面的步骤。

六、j编译生成jar

CMD进入测试工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:

成功后,会在工程bin目录下生成对应名称的jar包

七、将jar包push到手机data/local/tmp目录下,

对应的命令是:adb push <jar文件路径> data/local/tmp

adb push AutoRunner.jar /data/local/tmp

八、运行测试:

然后使用命令行启动我们已经push进去的uiautomator脚本

adb shell uiautomator runtest <jar文件名> -c <工程中的类名(包含包名)>

adb push AutoRunner.jar /data/local/tmp

例:

adb shell uiautomator runtest AutoRunner.jar -c com.uiautomator.www.Demo

完成这一步后,手机会执行uiautomator脚本并且开始进行操作

转载于:https://www.cnblogs.com/longronglang/p/6431304.html

Uiautomator之入门相关推荐

  1. 【测开实战】从快手薅羊毛说起之Appium/原生XCUITest/原生UIAutomator菜鸟级入门

    1. 需求 像这样进入某一个账号(一般是发的视频时间都比较长的号),每个视频停留60s,然后自动往后翻,赚取金币,小弟两个账号已经小赚500了,嘻嘻. 2. 实现 2.1原生XCUITest 首先配置 ...

  2. python安卓自动化实现方法_带你用 Python 实现自动化群控(入门篇)

    原标题:带你用 Python 实现自动化群控(入门篇) 来自公众号: AirPython 1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 H ...

  3. Python爬虫开发从入门到实战

    Python爬虫开发从入门到实战(微课版) 第1章 绪论 爬虫的主要目的是获取网页内容并解析.只要能达到这个目的,用什么方法都没有问题. 关于获取网页,本书主要介绍了Python的两个第三方模块,一个 ...

  4. 带你用 Python 实现自动化群控(入门篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 别君去兮何时还?且放白鹿青崖间.须 ...

  5. AI考拉技术分享会—手把手教你入门UI 自动化测试 Appium

    2019独角兽企业重金招聘Python工程师标准>>> AI考拉日常技术分享会,前有众多前后端以及android大神分享,这次测试老司机Eric也放招,手把手带devs入门UI自动化 ...

  6. 【appium】appium自动化入门之基本参数完整版(67个appium基本参数和关键字)

    想想看appium入门已经做了半个多月了,不说掌握所有的文章,但掌握百分之八十,一定就能达到入门的程度了 入门篇也是完结的时候了,进阶篇什么时候做呢就看时间吧,下一个系列先预定为selenium的入门 ...

  7. 字节女测试工程师万字总结的软件测试入门技巧

    成为一个优秀的测试工程师需要具备哪些知识和经验? 针对这个问题,可以直接拆分以下三个小问题来详细说明: 1.优秀软件测试工程师的标准是什么? 2.一个合格的测试工程师需要具备哪些专业知识? 3.一个合 ...

  8. python全栈工程师 pdf_python全栈工程师项目开发实例实战入门教程百度云

    python全栈工程师项目开发实例实战入门教程百度云 课程目录: 开学典礼 pycharm的基本使用 Python基本语法 数值类型数据及运算 字符串的基本操作 字符串的常用方法 列表的基本使用 列表 ...

  9. Appinum 自动化测试利器入门

    文章目录 1 前言 2 什么是Appinum? 3 环境准备 3.1 设置JDK变量 3.2 设置Android环境 3.2.1 windows 3.2.2 Mac环境 3.3 下载Appium工具 ...

  10. Appium的入门使用

    ps:有没有人和我一样觉得Appium官方文档写的很烂的, 这官方文档,还不如很多人写的博客详细,而且对于初学的入门者实在是不够友好, 官网:https://github.com/appium/jav ...

最新文章

  1. 使用饼图_常见图表规范:直方图、圆环图和饼图
  2. CentOS 7 网络连接优先由与无线问题解决
  3. INotifyPropertyChanged 接口
  4. php自动加载什么时候用到,php的自动加载的使用
  5. Linux Shell 文本处理工具集锦 zz
  6. C++11左值和右值引用讲解
  7. 普通人有必要也学个人品牌吗?
  8. delphi xe android 黑屏,Delphi XE之路(3)解决启动时短暂的黑屏
  9. mysql时间戳转为日期格式_mysql时间戳与日期格式的相互转换
  10. 实用网站汇总(不定期更新)
  11. 微信小程序 腾讯地图大头针定位,获取当前地址,地图移动选点,定位当前位置
  12. html5期末大作业课程设计仿苹果官网(源码+报告)
  13. 编程制作动态壁纸的思路_Android应用源码动态壁纸开发必看例子源码
  14. 数据库 流量切分_基于hash计算的多层实验流量切分的实现
  15. Monocular Depth Estimation UsingLaplacian Pyramid-Based Depth Residuals翻译
  16. 用 Python 玩视频剪辑 让生活简易化
  17. ios 各种动画机制
  18. 2022年初级经济师考试测试题及答案
  19. IDEAD搭建SpringBoot项目
  20. ultraedit 安装教程

热门文章

  1. C++ 从入门到入土(English Version)Section 9 : Computer Graphics and Command Prompt
  2. web集群之Ngnix相关配置
  3. shell 第一次练习
  4. TcpTrace实现的基本原理
  5. 解决atomikos在oracle应用中的XA事务异常 Error in recovery
  6. 常用 Git 命令清单(阮一峰)
  7. 斯坦福22岁辍学少年的独角兽野心:准备颠覆硅基无人车激光雷达
  8. Android RxVolley = Volley + RxJava + OkHttp
  9. 分享你最喜欢的技巧和提示(Xcode,Objective-C,Swift,C...等等)
  10. 构建samba文件共享服务器