Android UIAutomator自动化测试
描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试。 UIAutomator不需要测试人员了解代码实现细节,属于功能和黑盒测试。测试代码结构简单,编写容易,学习曲线低。基于JAVA,一次编译可以运行于所有Android设备。
使用限制:uiautomator是一个包含一套UI测试API,和支持运行测试程序的JAR包。该JAR包位于sdk/platforms/android-*/uiautomator.jar. 使用时需要注意自己的SDK版本需要大于16, SDK Tools版本需要大于21.
Uiautomator使用步骤:
1、 在Eclipse中,新建java项目“CalculatorAutoTest”;
2、 右键java项目->构建路径->配置构建路径->库->添加库->选择JUnit,下一步->选择Junit4->完成;
3、 添加必要的Jar包:右键java项目->构建路径->配置构建路径->添加外部JAR->选择sdk/platforms/android-*/目录下的uiautomator.jar和android.jar,路径中的*请使用自己以下载的最新版本;
4、 在java项目中新建类CalTest继承UiAutomatorTestCase;
代码:目前用于项目的自动化测试代码。
//进行自动化测试
publicvoid testDemo() throws UiObjectNotFoundException{
// UiScrollable appview = new UiScrollable (new UiSelector().className("android.view.View").instance(0));
// UiObject openapp = appview.getChildByText(new UiSelector().className(android.widget.TextView.class.getName()) , "Biohop");
// openapp.clickAndWaitForNewWindow();
while(true){
UiObject TestLinearlayout=new UiObject(new
UiSelector().resourceId("com.android.test:id/mainTesting"));
TestLinearlayout.click();
sleep(1000);
UiObject TestingToNamelayout=new UiObject(new UiSelector().resourceId("com.android.test:id/testingToName_go_linearLayout"));
TestingToNamelayout.click();
sleep(1000);
UiObject QRlayout=new UiObject(new UiSelector().resourceId("com.android. test:id/DataMatrixSure_linearlayout"));
QRlayout.click();
sleep(28000);
UiObject TestResultlayout=new UiObject(new UiSelector().resourceId("com.android. test:id/testingTimeCountSure_Linearlayout"));
TestResultlayout.click();
sleep(1000);
UiObject TestResultDialog=new UiObject(new UiSelector().resourceId("com.android.test:id/systemSetDialog_close"));
TestResultDialog.click();
sleep(1000);
}
}
5、 进入cmd命令行管理器:进入sdk/tools所在的目录,键入
-> d:
-> cd Android\android-sdk-windows\tools
6、 查看当前sdk中,sdk的所有版本信息,在tools目录下,键入:
-> android list target
7、 目的是为了知道相应版本的id号,同时不仅仅UIAutomator需要sdk4.1或以上版本的支持,同时如果你需要通过UI控件的id进行UI识别,那么所选择的sdk,需要API Level 18以上的版本,所以这里我选择了id=7的sdk版本。
8、 创建打包测试代码的Build脚本。通过如下命令来生成Build脚本:
<android-sdk>/tools/android create uitest-project -n <name> -t 1 -p <path>
其中:<name>是包含测试代码的项目名称,<path>是包含测试代码的项目文件路径。-t后面的1是Android sdk版本id。在cmd中键入:
-> android create uitest-project -n CalculatorAutoTest -t 7 -p D:\workspace\CalculatorAutoTest
9、 在命令行中,进入CalculatorAutoTest项目所在文件夹,并使用ant工具对build.xml进行编译,另ant编译工具需要自行安装和配置环境变量
-> ant build
10、下面还需要将这个jar文件拷贝到手机的 /data/local/tmp/ 目录中,拷贝操作可以通过一下命令实现:
-> adbpush D:/workspace/CalculatorAutoTest/bin/CalculatorAutoTest.jar /data/local/tmp/
11、 最后运行jar文件:下面“CalTest”为类CalTest,有包名的要将包名也写上
-> adb shell uiautomator runtest CalculatorAutoTest.jar -c CalTest
\
配置参考网站:http://www.it165.net/pro/html/201409/22071.html
13、使用命令:adb shell uiautomator runtest CalculatorAutoTest.jar -c CalTest对程序进行测试,必须要将USB连接上电脑测试程序才能运行。断开USB连接,测试也能够运行的方法:使用命令:adb shell uiautomator runtest CalculatorAutoTest.jar--nohup -c CalTest
Android UIAutomator自动化测试的更多相关文章
- Android UiAutomator 自动化测试编译运行---新手2
1.首先打开eclipse创建java项目
- 【转】Python + Android + Uiautomator自动化测试
1.首先来介绍下UIAutomator工具 UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器. 2.UIAutomator测 ...
- Android UiAutomator 自动化测试一些代码实例---新手3
1.打开浏览器,打开百度实例 public void testBrowser() throws RemoteException, UiObjectNotFoundException{ //灭屏幕-亮屏 ...
- Android UiAutomator 自动化测试环境搭建---新手1
1.首先需要准备的工具有 1.java jdk 2. android开发工具 adt 3.ant 安装包(如果下载adt里面有) 2.首先安装java环境,jdk这个百度就可以了. 3.android ...
- Appium python自动化测试系列之Android UIAutomator终极定位(七)
android uiautomator text定位 可能有人不知道为什么说android uiautomator是终极定位,而且android uiautomator和appium有什么关系呢?如果 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- Android UiAutomator - CTS Frame
使用UiAutomator进行UI自动化测试后,生成的测试结果并不是很美观.为了生成一份好看的测试结果(报告),本文将使用CTS框架,当然也可以自己编写一份测试报告框架(如:生成html,excel报 ...
- Android UiAutomator
UiAutomator是一个做UI测试的自动化框架.<Android自动化测试框架>中已有详细介绍,这里就不再累赘了. 一.首先了解自动化测试流程 自动化需求分析 测试用例设计 自动化框架 ...
- Appium+python自动化(十二)- Android UIAutomator终极定位凶“胸”器(七)(超详解)
简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测 ...
随机推荐
- vue后台管理系统权限处理
vue后台管理系统权限 1.权限问题:用户和管理员进入管理系统看到的模块是不一样的,管理员看的的要比用户看到的多.需要用到动态加载路由,router.addRouters()来动态的挂载路由 // 1 ...
- go第三方常用包
配置 go-ini/ini 用于读取 ini 格式配置文件. 地址:https://github.com/Go-ini/ini tomal 用于读取 conf 格式配置文件. 地址:https://g ...
- MySQL对JSON类型UTF-8编码导致中文乱码探讨
前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中 ...
- Javascript函数之深入浅出递归思想
一.递归函数的理解 1.生活中的递归 "递归"在生活中的一个典例就是"问路".如图小哥哥进入电影院后找不到自己的座位,问身边的小姐姐"这是第几排&qu ...
- Hive分析窗口函数
数据准备 CREATE EXTERNAL TABLE lxw1234 ( cookieid string, createtime string, --day pv INT ) ROW FORMAT D ...
- PYTHON数据类型(进阶)
PYTHON数据类型(进阶) 一.字符串.列表.字典.元祖.集合的补充 str #captalize 首字母大写,其余小写 s1.capitalize() #swapcase 大小写翻转 s1.swa ...
- 01FPGA设计流程
今天学习了FPGA设计流程的视频,我理解要做一个完整的FPGA系统,所要经历的步骤,先将它简单总结如下: 我在对上面的流程图进行解释: 第一:设计定义就是我们这个FPGA系统或者FPGA设计所要实现的 ...
- vim-0-indent(缩进)
缩进: 参考自http://liuzhijun.iteye.com/blog/1831548,http://blog.csdn.net/chenxiang6891/article/details/41 ...
- python之进程,线程
什么是进程(process)? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本 ...
- Typora+markdown 最常用语法教程
Typora+markdown 最常用语法教程(by 程序员宝藏) Typora+markdown 最常用语法教程(by 程序员宝藏) 请先配置推荐配置(文件->偏好设置): 文章目录 Typo ...