首页 > 代码库 > Uiautomator(1)

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

 

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

Uiautomator(1)