2014-05-20 22 views
0

試圖使用appium運行Android的樣本測試。 appium的設置是通過node.js後端完成的。如何解決在Android上運行appium驅動程序時的問題

我在Appium郵件列表中搜索了以下錯誤。但我仍然無法用明確的答案來解決這個問題。這應該是設置方法的一個簡單問題。任何人都可以在這裏指出問題嗎?

下面是設置代碼:

@Before 
    public void setUp() throws Exception { 
     File app = new File("/home/karthi/android/codebase/Sample/bin/TestingActivity-debug.apk"); 
     DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setCapability(CapabilityType.BROWSER_NAME, "Browser"); 
     capabilities.setCapability(CapabilityType.PLATFORM, "Android"); 
     capabilities.setCapability(CapabilityType.VERSION, "4.1.2"); 
     capabilities.setCapability("automationName","Appium"); 
     capabilities.setCapability("platformName","Android"); 
     capabilities.setCapability("platformVersion", "4.1.2"); 
     capabilities.setCapability("autoLaunch", true); 
     capabilities.setCapability("deviceName", "Android Emulator"); 
     capabilities.setCapability("device-orientation", "portrait"); 
     capabilities.setCapability("app", app.getAbsolutePath()); 
     capabilities.setCapability("app-package", "com.hola.sampleapp"); 
     capabilities.setCapability("app-activity", ".activities.TestingActivity"); 
     driver = new AppiumDriver(new URL("http://localhost:4723/wd/hub"), capabilities); 
    } 

我越來越想在Eclipse在Ubuntu上運行這個14.04

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. 
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32' 
System info: host: 'spark', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-24-generic', java.version: '1.7.0_55' 
Driver info: driver.version: AppiumDriver 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:589) 
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:81) 
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240) 
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126) 
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:153) 
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:43) 
at com.hola.testingapp.TestActivity.setUp(TestOuffy.java:35) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) 
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.net.ConnectException: Connection refused 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
at  java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
at java.net.Socket.connect(Socket.java:579) 
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117) 
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:178) 
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) 
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131) 
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) 
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 
at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:322) 
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:301) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:568) 
... 30 more 

java.lang.NullPointerException 
at com.yml.ouffytest.TestOuffy.tearDown(TestOuffy.java:40) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33) 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

回答

5

可能的原因時出現以下錯誤:

你給localhost作爲IP,確保將其與包含端口的appium開始使用的IP相匹配。

您與Android版本低於4.2

+0

是否有必要指定主機和帖子,只要它們都是默認的? – Clergyman

1

提供IP地址和端口相同appium設置IP和端口仿真器上運行測試。

更改版本最新以上4.1.2,並刪除

capabilities.setCapability(CapabilityType.BROWSER_NAME, "Browser"); 
0

我知道這是一個非常古老的問題。但here是使用Appium的Android功能測試框架的示例工作模板,Appium使用Java並從代碼內啓動Appium服務器。

相關問題