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
小白一枚,初涉此域,如有错误,欢迎指正。