具体步骤可参考:http://blog.csdn.net/u010961631/article/details/9616581
1. 新建Java Project叫UiAutomator
2. 添加JUnit库 (add library)
3. 添加Android库 (add external JARs:android.jar & uiautomator.jar under android-sdk platforms). 在2022年,android库已经绑定到android studio中,所以要先下载它,再在studio中下载API 19版本的SDK,
C:\Users\KK\AppData\Local\Android\Sdk\platforms\android-19
下载以后会看到
C:\Users\KK\AppData\Local\Android\Sdk\platform-tools\adb.exe
C:\Users\KK\AppData\Local\Android\Sdk\platforms\android-19\android.jar
C:\Users\KK\AppData\Local\Android\Sdk\platforms\android-19\uiautomator.jar
另一种方法是用以前的安装包,保留在C:\Users\KK\Documents\MyFiles\Coding\Java\UiAutomator2022
System environment加入到path中:
C:\Users\KK\Downloads\platform-tools_r33.0.2-windows\platform-tools (adb)
C:\Users\KK\Downloads\tools_r22.6.1-windows\tools (android.bat)
C:\Users\KK\Downloads\apache-ant-1.9.16\bin (ant)
第二个https://dl-ssl.google.com/android/repository/tools_r22.6.1-windows.zip中下载 (ref)
4. 在src中添加包com,然后添加HelloWorld.java文件
代码如下:
package com.jctech.uiautomator;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class HelloWorld extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
// Simulate a short press on the HOME button.
getUiDevice().pressHome();
getUiDevice().pressHome();
UiScrollable appViews = new UiScrollable(new UiSelector()
.scrollable(true));
UiObject carmaxApp = appViews.getChildByText(new UiSelector()
.className(android.widget.TextView.class.getName()),
"CarMax",true);
carmaxApp.clickAndWaitForNewWindow();
}
}
5. 获得Android ID
UiScrollable appViews = new UiScrollable(new UiSelector()
.scrollable(true));
UiObject carmaxApp = appViews.getChildByText(new UiSelector()
.className(android.widget.TextView.class.getName()),
"CarMax",true);
carmaxApp.clickAndWaitForNewWindow();
}
}
5. 获得Android ID
cd C:\Users\KK\AppData\Local\Android\Sdk\tools
Run android list and get id=1 for "android-19"
Run android list and get id=1 for "android-19"
2022年android命令已经被deprecated,所以需要从release notes里面下载。
下载完毕后,到tools目录,此时跑android list没有任何目标,因为没有安装任何android api (version),所
以先要type android,这是SDK UI就会出现,安装android 19。安装完毕后,再type android list, 就会出现
id=1 (如果只装了一个API的话)
6. 生成build.xml
6. 生成build.xml
C:\Users\KK\Downloads\tools_r22.6.1-windows\tools>android create uitest-project -t 1 -p C:\Users\KK\Documents\MyFiles\Coding\Java\UiAutomator2022 -n UiAutomator
7. Install ant
Download the latest zip file from http://ant.apache.org/bindownload.cgi
Unzip it
Put this directory\bin in path (C:\Users\KK\Documents\Coding\apache-ant-1.9.3\bin)
Open Cmd and type ant. If output is good, installation is sucessful.
ant build
Download the latest zip file from http://ant.apache.org/bindownload.cgi
Unzip it
Put this directory\bin in path (C:\Users\KK\Documents\Coding\apache-ant-1.9.3\bin)
Open Cmd and type ant. If output is good, installation is sucessful.
8. 用ant Build项目
cd C:\Users\KK\Documents\MyFiles\Coding\Java\UiAutomator2022ant build
生成的UiAutomator.jar在项目root文件中的bin文件夹
ant需要JDK的系统参数,所以要加入到系统变量中。
JAVA_HOME: C:\Program Files\Java\jdk1.8.0_111
9. build成功后,把刚生成的jar Deploy到手机
cd C:\Users\KK\Documents\MyFiles\Coding\Java\UiAutomator2022
adb push C:\Users\KK\Documents\MyFiles\Coding\Java\UiAutomator2022\bin\UiAutomator.jar /data/local/tmp/
adb shell uiautomator runtest UiAutomator.jar -c com.jctech.uiautomator.HelloWorld >> file.txt
这个例子是跳到Home页面,然后打开carmax这个app,所以要确保carmax在home页面里。最后的结果输出到cmd控制台或者file.txt
蓝色三个步骤是在cmd进行,如果java文件数量不变,生成build.xml这步可以忽略
10. 如果更改代码, 需要重复8 - 9步的三个命令。
adb对某设备: adb -s <serialNumber> <command>
adb devices
可以在path加入$android-sdk\platform-tools这样可以在任意路径 运行adb
其他可以和UIAutomator结合用的emulator包括BlueStacks, BlueStack不支持proxy
调用adb connect localhost即可连上emulator
http://diveshblog.weebly.com/blog/working-with-uiautomator
如果公司网络用的是proxy可能需要安装ProxyCap来连接internet
http://www.inforaid.com/change-bluestacks-proxy-settings-use-proxy-server/
References:
adb对某设备: adb -s <serialNumber> <command>
adb devices
可以在path加入$android-sdk\platform-tools这样可以在任意路径 运行adb
其他可以和UIAutomator结合用的emulator包括BlueStacks, BlueStack不支持proxy
调用adb connect localhost即可连上emulator
http://diveshblog.weebly.com/blog/working-with-uiautomator
如果公司网络用的是proxy可能需要安装ProxyCap来连接internet
http://www.inforaid.com/change-bluestacks-proxy-settings-use-proxy-server/
References:
[0] https://www.softwaretestinghelp.com/uiautomator-tutorial/
[1] http://blog.csdn.net/u010961631/article/details/9616581
[2] http://developer.android.com/tools/testing/testing_ui.html
[3] http://blog.chengyunfeng.com/?p=504
[1] http://blog.csdn.net/u010961631/article/details/9616581
[2] http://developer.android.com/tools/testing/testing_ui.html
[3] http://blog.chengyunfeng.com/?p=504
No comments:
Post a Comment