Appium自动化测试

一、使用工具

eclipse

appium

Android AVD

appium下载配置参见:http://www.cnblogs.com/fnng/p/4540731.html

二、示例

1、打开Appium,有两种方法:

       a、点appium.exe ,点击右边的运行按钮

       b、cmd输入 appium

2、打开Android avd

3、在eclipse中创建Maven Project 。参见:http://jingyan.baidu.com/article/375c8e19b5014c25f2a22912.html

4、新增apps文件夹,放入你要测试的apk

                                                                                              

                                 

5、在pom.xml中添加:

<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>LATEST</version>
			<scope>test</scope>
		</dependency>


6、创建测试文件


package dream.AppiumDemo;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.HasTouchScreen;
import org.openqa.selenium.interactions.TouchScreen;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteTouchScreen;
import org.openqa.selenium.remote.RemoteWebDriver;

public class CallTest {
	
	private WebDriver driver;
	
	@Before
	public void setUp() throws MalformedURLException{
		 // set up appium
		File classpathRoot = new File(System.getProperty("user.dir"));
		File appDir = new File(classpathRoot, "apps");
		File app = new File(appDir, "app-debug.apk");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability("device","Android");
		capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
		capabilities.setCapability(CapabilityType.VERSION, "6.0");
		capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
		capabilities.setCapability("platformName", "Android");
		capabilities.setCapability("deviceName", "Android Emulator");

		capabilities.setCapability("app", app.getAbsolutePath());
		capabilities.setCapability("app-package", "com.example.annieliu.permissiontest");
		capabilities.setCapability("app-activity", ".MainActivity");
		driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

	}
	
	@After
	public void tearDown(){
		driver.quit();
	}
	
	@Test
	public void call(){
		WebElement e=driver.findElement(By.id("btn_main_btn"));
		e.click();
	}
	
	public class SwipeableWebDriver extends RemoteWebDriver implements HasTouchScreen{

		private RemoteTouchScreen touch;

		public SwipeableWebDriver(URL remoteAddress, Capabilities desiredCapabilities) {
			super(remoteAddress, desiredCapabilities);
			// TODO Auto-generated constructor stub
			touch=new RemoteTouchScreen(getExecuteMethod());
		}



		public TouchScreen getTouch() {
			// TODO Auto-generated method stub
			return touch;
		}
		
	}

}


7、运行

右键项目—— Run As —— JUnit Test ;项目会自动在模拟器中运行,如有错误,eclipse中会显示错误所在的地方:

                                                                          


可以看到cmd或者appium中看到运行日志:

odules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "E:\workspace_ecli
pse\AppiumDemo\apps\app-debug.apk" "G:\Users\annieliu\AppData\Local\Temp\com.exa
mple.annieliu.permissiontest" zh
info: [debug] No strings.xml for language 'zh', getting default strings.xml
info: [debug] java -jar "F:\work\appium\appium\Appium\node_modules\appium\node_m
odules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "E:\workspace_ecli
pse\AppiumDemo\apps\app-debug.apk" "G:\Users\annieliu\AppData\Local\Temp\com.exa
mple.annieliu.permissiontest"
info: [debug] Reading strings from converted strings.json
info: [debug] Setting language to default
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 push "G:\\Users\\annieliu\\AppData\\Local\\Temp\\com.example.anni
eliu.permissiontest\\strings.json" /data/local/tmp
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from E:\sdkforandroidstudio\build-tools\23.0.2\aapt.exe

info: [debug] Retrieving process from manifest.
info: [debug] executing cmd: E:\sdkforandroidstudio\build-tools\23.0.2\aapt.exe
dump xmltree E:\workspace_eclipse\AppiumDemo\apps\app-debug.apk AndroidManifest.
xml
info: [debug] Set app process to: com.example.annieliu.permissiontest
info: [debug] Not uninstalling app since server not started with --full-reset
info: [debug] Checking app cert for E:\workspace_eclipse\AppiumDemo\apps\app-deb
ug.apk.
info: [debug] executing cmd: java -jar F:\work\appium\appium\Appium\node_modules
\appium\node_modules\appium-adb\jars\verify.jar E:\workspace_eclipse\AppiumDemo\
apps\app-debug.apk
info: [debug] App already signed.
info: [debug] Zip-aligning E:\workspace_eclipse\AppiumDemo\apps\app-debug.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from E:\sdkforandroidstudio\build-tools\23.0.2\zipa
lign.exe
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: E:\sdkforandroidstudio\build-tools\23.0.2\zipalign.
exe -f 4 E:\workspace_eclipse\AppiumDemo\apps\app-debug.apk G:\Users\annieliu\Ap
pData\Local\Temp\116124-13608-1qmuoqn\appium.tmp
info: [debug] MD5 for app is 2c9f4c81813acbeccb960c91b6e77ea6
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "ls /data/local/tmp/2c9f4c81813acbeccb960c91b6e77ea6.apk"
info: [debug] Getting install status for com.example.annieliu.permissiontest
info: [debug] Getting device API level
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "getprop ro.build.version.sdk"
info: [debug] Device is at API Level 17
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "pm list packages -3 com.example.annieliu.permissiontest"
info: [debug] App is not installed
info: Installing App
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "mkdir -p /data/local/tmp/"
info: [debug] Removing any old apks
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "ls /data/local/tmp/*.apk"
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell rm "/data/local/tmp/nowplayer1010.apk"
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 push "E:\\workspace_eclipse\\AppiumDemo\\apps\\app-debug.apk" /da
ta/local/tmp/2c9f4c81813acbeccb960c91b6e77ea6.apk
info: [debug] Uninstalling com.example.annieliu.permissiontest
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "am force-stop com.example.annieliu.permissiontest"
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 uninstall com.example.annieliu.permissiontest
info: [debug] App was not uninstalled, maybe it wasn't on device?
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "pm install -r /data/local/tmp/2c9f4c81813acbeccb960c91b6e7
7ea6.apk"
info: [debug] Forwarding system:4724 to device:4724
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 forward tcp:4724 tcp:4724
info: [debug] Pushing appium bootstrap to device...
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 push "F:\\work\\appium\\appium\\Appium\\node_modules\\appium\\bui
ld\\android_bootstrap\\AppiumBootstrap.jar" /data/local/tmp/
info: [debug] Pushing settings apk to device...
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 install "F:\work\appium\appium\Appium\node_modules\appium\build\s
ettings_apk\settings_apk-debug.apk"
info: [debug] Pushing unlock helper app to device...
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 install "F:\work\appium\appium\Appium\node_modules\appium\build\u
nlock_apk\unlock_apk-debug.apk"
info: Starting App
info: [debug] Attempting to kill all 'uiautomator' processes
info: [debug] Getting all processes with 'uiautomator'
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "ps 'uiautomator'"
info: [debug] No matching processes found
info: [debug] Running bootstrap
info: [debug] spawning: E:\sdkforandroidstudio\platform-tools\adb.exe -s 022GPLD
U39014748 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.boo
tstrap.Bootstrap -e pkg com.example.annieliu.permissiontest -e disableAndroidWat
chers false
info: [debug] [UIAUTOMATOR STDOUT] java.io.FileNotFoundException: /data/cust/xml
/hw_launcher_load_icon.xml: open failed: ENOENT (No such file or directory)
info: [debug] [UIAUTOMATOR STDOUT] at
info: [debug] [UIAUTOMATOR STDOUT] libcore.io.IoBridge.open(IoBridge.java:409)
info: [debug] [UIAUTOMATOR STDOUT] at java.io.FileInputStream.<init>(FileInputSt
ream.java:109)
info: [debug] [UIAUTOMATOR STDOUT] at android.content.res.ResourcesEx.readDefaul
tConfig(ResourcesEx.java:809)
info: [debug] [UIAUTOMATOR STDOUT] at android.content.res.ResourcesEx.<init>(Res
ourcesEx.java:761)
info: [debug] [UIAUTOMATOR STDOUT] at android.content.res.Resources.getSystem(Re
sources.java:208)
info: [debug] [UIAUTOMATOR STDOUT] at android.database.CursorWindow.<clinit>(Cur
sorWindow.java:47)
info: [debug] [UIAUTOMATOR STDOUT] at android.database.BulkCursorDescriptor.read
FromParcel(BulkCursorDescriptor.java:75)
info: [debug] [UIAUTOMATOR STDOUT] at android.database.BulkCursorDescriptor$1.cr
eateFromParcel(BulkCursorDescriptor.java:34)
info: [debug] [UIAUTOMATOR STDOUT] at android.database.BulkCursorDescriptor$1.cr
eateFromParcel(BulkCursorDescriptor.java:30)
info: [debug] [UIAUTOMATOR STDOUT] at android.content.ContentProviderProxy.query
(ContentProviderNative.java:369)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.core.InteractionCo
ntroller.getSystemLongPressTime(InteractionController.java:116)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.core.InteractionCo
ntroller.<init>(InteractionController.java:93)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.core.UiAutomatorBr
idge.<init>(UiAutomatorBridge.java:77)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.core.UiDevice.<ini
t>(UiDevice.java:79)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.core.UiDevice.getI
nstance(UiDevice.java:102)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.testrunner.UiAutom
atorTestRunner.start(UiAutomatorTestRunner.java:105)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.uiautomator.testrunner.UiAutom
atorTestRunner.run(UiAutomatorTestRunner.java:87)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.commands.uiautomator.RunTestCo
mmand.run(RunTestCommand.java:90)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.commands.uiautomator.Launcher.
main(Launcher.java:83)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.internal.os.RuntimeInit.native
FinishInit(Native Method)
info: [debug] [UIAUTOMATOR STDOUT] at com.android.internal.os.RuntimeInit.main(R
untimeInit.java:235)
info: [debug] [UIAUTOMATOR STDOUT] at dalvik.system.NativeStart.main(Native Meth
od)
info: [debug] [UIAUTOMATOR STDOUT] Caused by: libcore.io.ErrnoException: open fa
iled: ENOENT (No such file or directory)
info: [debug] [UIAUTOMATOR STDOUT] at libcore.io.Posix.open(Native Method)
info: [debug] [UIAUTOMATOR STDOUT] at libcore.io.BlockGuardOs.open(BlockGuardOs.
java:110)
info: [debug] [UIAUTOMATOR STDOUT] at libcore.io.IoBridge.open(IoBridge.java:400
)
info: [debug] [UIAUTOMATOR STDOUT] ... 21 more
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: current=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRun
ner
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: class=io.appium.andro
id.bootstrap.Bootstrap
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=
info: [debug] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap:
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: numtests=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: 1
info: [debug] [BOOTSTRAP] [debug] Socket opened on port 4724
info: [debug] [BOOTSTRAP] [debug] Appium Socket Server Ready
info: [debug] [BOOTSTRAP] [debug] Loading json...
info: [debug] [BOOTSTRAP] [debug] json loading complete.
info: [debug] [BOOTSTRAP] [debug] Registered crash watchers.
info: [debug] Waking up device if it's not alive
info: [debug] Pushing command to appium work queue: ["wake",{}]
info: [debug] [BOOTSTRAP] [debug] Client connected
info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"action","action"
:"wake","params":{}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: wake
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "dumpsys window"
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":true,"status":0}
info: [debug] Screen already unlocked, continuing.
info: [debug] Pushing command to appium work queue: ["getDataDir",{}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"action","action"
:"getDataDir","params":{}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getDataDir
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":"\/data\/local\/tmp
","status":0}
info: [debug] dataDir set to: /data/local/tmp
info: [debug] Pushing command to appium work queue: ["compressedLayoutHierarchy"
,{"compressLayout":false}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"action","action"
:"compressedLayoutHierarchy","params":{"compressLayout":false}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: compressedLayoutHierarchy
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":false,"status":0}
info: [debug] Getting device API level
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "getprop ro.build.version.sdk"
info: [debug] Device is at API Level 17
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "am start -S -a android.intent.action.MAIN -c android.inten
t.category.LAUNCHER -f 0x10200000 -n com.example.annieliu.permissiontest/com.exa
mple.annieliu.permissiontest.MainActivity"
info: [debug] Waiting for pkg "com.example.annieliu.permissiontest" and activity
 "com.example.annieliu.permissiontest.MainActivity" to be focused
info: [debug] Getting focused package and activity
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "dumpsys window windows"
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "getprop ro.build.version.release"
info: [debug] Device is at release version 4.2.2
info: [debug] Device launched! Ready for commands
info: [debug] Setting command timeout to the default of 60 secs
info: [debug] Appium session started with sessionId 2cdaf775-ee09-4ca3-96a4-fa3f
9db06c49
info: <-- POST /wd/hub/session 303 40395.775 ms - 74
info: --> GET /wd/hub/session/2cdaf775-ee09-4ca3-96a4-fa3f9db06c49 {}
info: [debug] Responding to client with success: {"status":0,"value":{"platform"
:"WINDOWS","browserName":"","platformVersion":"4.2.2","webStorageEnabled":false,
"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"network
ConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{
"app":"E:\\workspace_eclipse\\AppiumDemo\\apps\\app-debug.apk","browserName":"",
"app-package":"com.example.annieliu.permissiontest","app-activity":".MainActivit
y","platformName":"Android","device":"Android","version":"6.0","deviceName":"And
roid Emulator","platform":"WINDOWS"},"app":"E:\\workspace_eclipse\\AppiumDemo\\a
pps\\app-debug.apk","app-package":"com.example.annieliu.permissiontest","app-act
ivity":".MainActivity","platformName":"Android","device":"Android","version":"6.
0","deviceName":"022GPLDU39014748"},"sessionId":"2cdaf775-ee09-4ca3-96a4-fa3f9db
06c49"}
info: <-- GET /wd/hub/session/2cdaf775-ee09-4ca3-96a4-fa3f9db06c49 200 8.926 ms
- 838 {"status":0,"value":{"platform":"WINDOWS","browserName":"","platformVersio
n":"4.2.2","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":
true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEna
bled":false,"warnings":{},"desired":{"app":"E:\\workspace_eclipse\\AppiumDemo\\a
pps\\app-debug.apk","browserName":"","app-package":"com.example.annieliu.permiss
iontest","app-activity":".MainActivity","platformName":"Android","device":"Andro
id","version":"6.0","deviceName":"Android Emulator","platform":"WINDOWS"},"app":
"E:\\workspace_eclipse\\AppiumDemo\\apps\\app-debug.apk","app-package":"com.exam
ple.annieliu.permissiontest","app-activity":".MainActivity","platformName":"Andr
oid","device":"Android","version":"6.0","deviceName":"022GPLDU39014748"},"sessio
nId":"2cdaf775-ee09-4ca3-96a4-fa3f9db06c49"}
info: --> POST /wd/hub/session/2cdaf775-ee09-4ca3-96a4-fa3f9db06c49/element {"us
ing":"id","value":"btn_main_btn"}
info: [debug] Waiting up to 0ms for condition
info: [debug] Pushing command to appium work queue: ["find",{"strategy":"id","se
lector":"btn_main_btn","context":"","multiple":false}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"action","action"
:"find","params":{"strategy":"id","selector":"btn_main_btn","context":"","multip
le":false}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: find
info: [debug] [BOOTSTRAP] [debug] Finding btn_main_btn using ID with the context
Id:  multiple: false
info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[DESCRIPTION=btn_main_btn, IN
STANCE=0]
info: [debug] [BOOTSTRAP] [debug] Failed to locate element. Clearing Accessibili
ty cache and retrying.
info: [debug] [BOOTSTRAP] [debug] Finding btn_main_btn using ID with the context
Id:  multiple: false
info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[DESCRIPTION=btn_main_btn, IN
STANCE=0]
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":"No element found",
"status":7}
info: [debug] Condition unmet after 628ms. Timing out.
info: [debug] Responding to client with error: {"status":7,"value":{"message":"A
n element could not be located on the page using the given search parameters.","
origValue":"No element found"},"sessionId":"2cdaf775-ee09-4ca3-96a4-fa3f9db06c49
"}
info: <-- POST /wd/hub/session/2cdaf775-ee09-4ca3-96a4-fa3f9db06c49/element 500
637.736 ms - 195
info: --> DELETE /wd/hub/session/2cdaf775-ee09-4ca3-96a4-fa3f9db06c49 {}
info: Shutting down appium session
info: [debug] Pressing the HOME button
info: [debug] executing cmd: E:\sdkforandroidstudio\platform-tools\adb.exe -s 02
2GPLDU39014748 shell "input keyevent 3"
info: [debug] Stopping logcat capture
info: [debug] Logcat terminated with code null, signal SIGTERM
info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"shutdown"}
info: [debug] [BOOTSTRAP] [debug] Got command of type SHUTDOWN
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":"OK, shutting down"
,"status":0}
info: [debug] [BOOTSTRAP] [debug] Closed client connection
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: current=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRun
ner
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: class=io.appium.andro
id.bootstrap.Bootstrap
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=.
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: numtests=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: 0
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=
info: [debug] [UIAUTOMATOR STDOUT] Test results for WatcherResultPrinter=.
info: [debug] [UIAUTOMATOR STDOUT] Time: 8.803
info: [debug] [UIAUTOMATOR STDOUT] OK (1 test)
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: -1
info: [debug] Sent shutdown command, waiting for UiAutomator to stop...
info: [debug] UiAutomator shut down normally
info: [debug] Cleaning up android objects
info: [debug] Cleaning up appium session
info: [debug] Responding to client with success: {"status":0,"value":null,"sessi
onId":"2cdaf775-ee09-4ca3-96a4-fa3f9db06c49"}
info: <-- DELETE /wd/hub/session/2cdaf775-ee09-4ca3-96a4-fa3f9db06c49 200 1594.9
34 ms - 76 {"status":0,"value":null,"sessionId":"2cdaf775-ee09-4ca3-96a4-fa3f9db
06c49"}

                 

三、参考资料

http://www.cnblogs.com/puresoul/p/4696825.html

http://www.cnblogs.com/oscarxie/p/3488262.html

http://jingyan.baidu.com/article/375c8e19b5014c25f2a22912.html




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值