uiautomator做自动化的过程
UIautiomator官网地址:http://android.toolib.net/sdk/index.html
1.环境搭建
使用uiautomator需要导入jar包,uiautomator.jar和android.jar,位置在sdk/platforms/android*使用时需要注意自己的SDK版本需要大于16, SDK Tools版本需要大于21.如我下面跟新后SDK后出现了很多工具,以下是你需要使用到的工具
创建一个Java project项目
1.
2添加java Build path,创建一个library的个(不创建也可以)导入需要用到uiatuomator.jar和Android.jar,我使用的是Android19
因为博主使用的是junit做断言,所以也导入junit的包
导入了所有需要的包了,现在开始编码了
2.编码
完成后,编码中编码,根据自己需要的场景编码,如博主中中部分编码的截图:
uiatuomator使用还是挺简单,原理我还没有去深研究,因为今天主要写使用过程,就不追溯他的实现了,在使用uiatuomator时你必须明白几个类
UiAutomatorTestCase
UiDevice
UiSelector
UiScrollable
UiObject
UiWatcher
3.运行
编译和运行
1.创建build文件
在\Android-sdk\tools\目录下,运行命令android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
eg:
android create uitest-project -n AutoRunner -t 6 -p e:\workspace\AutoRunner
E:\Soft\JAVA\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19
上面的name就是将来生成的jar包的名字,可以自己定义,android-sdk-ID就是上面看到的6;path是Eclipse新
建的工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。
需要知道自己的sdk版本号,注意:可能提示版本太低,实际上已满足要求,解决方案:1.升级SDK 2.在sdk的bin目录下用Android list target命令 查询这个版本号
2.编译生成jar
CMD进入项目的工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:
BUILD SUCCESSFUL
Total time:1 second
还有直接使用eclipse直接生成,选择build右键------>run as---->ant build
直接更改build.xml文件,更改为“default="build"”,在进行一次build
3.push并运行jar
将jar包push 到模拟器或者真实安卓设备
adb push <jar文件路径> data/local/tmp
eg:
adb push e:\workspace\AutoRunner\bin\AutoRunner.jar data/local/tmp
adb -s emulator-5554 push e:\workspace\AutoRunner\bin\AutoRunner.jar data/local/tmp
运行jar包
adb shell uiautomator runtest <jar文件名> -c <工程中的类名,包含包名>
eg:
adb shell uiautomator runtest AutoRunner.jar -c com.Runner
adb -s emulator-5554 shell uiautomator runtest AutoRunner.jar -c com.Runner(虚拟机)
uiautomator做自动化的过程的更多相关文章
- 使用uiautomator做UI测试
转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautoma ...
- [转载]使用uiautomator做UI测试
这个只是单纯的mark一下.还没有认真去研究.鉴于最近也不会做手机的自动化测试,所以留作以后参考吧. 转自: http://blog.chengyunfeng.com/?p=504 在Android ...
- [zhuan]使用uiautomator做UI测试
http://blog.chengyunfeng.com/?p=504 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就 ...
- 关于RF做自动化大致流程的梳理
RF只是一个框架,类似于单元测试框架,可以实现对用例的有效管理.结合其它第三方库,可以进行,接口,数据库,APP的自动化测试.结合JENKINS,还可以进行有效的持续集成. 本文不讲调用第三方库的哪些 ...
- 聊聊用Selenium做自动化碰到了哪些坑?都是怎么解决的?
本周我们的讨论话题是关于Selenium自动化: 话题:聊聊用Selenium做自动化碰到了哪些坑?都是怎么解决的? 话题描述:Selenium是大家做UI自动化用到的主流框架,在平时写脚本的过程中, ...
- AppVeyor-CI为GitHub项目做自动化集成(dotnet为主)
travis-ci对dotnet的项目做自动化集成不太友好,尤其是使用mono的编译和不能使用MSTest进行自动化测试,所以转到appveyor进行. appveyor的配置非常简单,有两种方式: ...
- 菜鸟如何使用hanlp做分词的过程记录
菜鸟如何使用hanlp做分词的过程记录 最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧.把整个学习的过程中截图在配文字的 ...
- 【Golang 接口自动化00】为什么要用Golang做自动化?
为什么使用Golang做自动化 顺应公司的趋势学习了Golang之后,因为没有开发那么多的时间和项目来实践,怕步此前学习Java缺少练习遗忘殆尽的后尘,决定利用工作之余的时间把此前用Python的写的 ...
- 如何用Python做自动化特征工程
机器学习的模型训练越来越自动化,但特征工程还是一个漫长的手动过程,依赖于专业的领域知识,直觉和数据处理.而特征选取恰恰是机器学习重要的先期步骤,虽然不如模型训练那样能产生直接可用的结果.本文作者将使用 ...
随机推荐
- Code First 更新数据库结构
参考:http://blog.csdn.net/sxycxwb/article/details/12186159 0.删除之前的数据库 1.Run the Enable-Migrations comm ...
- minicom 没有tx 信号
在minicom -s 的配置中:——> Serial port setup --> 选择F - Hardware Flow Control : No默认是yes, 但是没有tx信号输出 ...
- HW6.12
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- A Tour of Go Exercise: Fibonacci closure
Let's have some fun with functions. Implement a fibonacci function that returns a function (a closur ...
- 新浪新闻API接口
头条 http://api.sina.cn/sinago/list.json?channel=news_toutiao推荐 http://api.sina.cn/sinago/list.json?ch ...
- OWIN学习
在微软.net的dll中 有Microsoft.Owin Microsoft.Owin.Security, Microsoft.Owin.Security.Cookies, Microsoft.Owi ...
- Struts2中DMI(动态方法调用)的错误问题(There is no Action mapped for namespace [/xxx] and action name [xxx!yyy] a)
默认的Struts.xml中是这样的 <constant name="struts.enable.DynamicMethodInvocation" value="f ...
- 一个使用CDS VIEW 的 DEMO
一个使用CDS VIEW 的demo REPORT demo_cds_currency_conversion. CLASS demo DEFINITION. PUBLIC SECTION. CLASS ...
- C#基础知识之方法重载总结
1.首先解释一下什么是方法重载? 方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术. 这里所说的参数不同是指以下几种情况: ① 参数的类型 ...
- iOS 有关自动轮播图片
//初始化当前视图 _currentImageView = [[UIImageView alloc] init]; [_currentImageView setImageWithURL:[NSURL ...