2014-09-22 2 views
2

Моя установка:Как отправить локальный файл apk на удаленный сервер приложений?

  • PC-1
  • PC-2

PC-1:

  • имеет АПК файл
  • выполняет appium испытания против PC-2

PC-2:

  • имеет только nodejs с appium работает

Проблема: Когда я хочу, чтобы запустить тест

org.openqa.selenium.SessionNotCreatedException: 
A new session could not be created. 
(Original error: Bad app: <<local_path>>myApp.apk. 
App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name. 
cause: Error: Error locating the app: 
ENOENT, stat '<<local_path>>myApp.apk') (WARNING: The server did not provide any stacktrace information) 

Build info: version: '2.41.0', revision: '3192d8a6c4449dc285928ba024779344f5423c58', time: '2014-03-27 11:29:39' 
System info: host: 'my-PC', ip: 'XXX.XXX.XXX.XXX', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_55' 
Driver info: org.openqa.selenium.remote.RemoteWebDriver 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595) 
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) 

Мои Шапки:

caps.setCapability("device","android"); caps.setCapability("deviceName","Galaxy S3"); caps.setCapability("platformName","android"); caps.setCapability("version", "4.3"); caps.setCapability("deviceType", "phone"); caps.setCapability(CapabilityType.PLATFORM, "Windows"); caps.setCapability("app-activity", "package.activities.MyActivity_"); caps.setCapability("app-package", "xx.my.myapp"); caps.setCapability("app", app.getAbsolutePath());

-> Так как же я мой местный заполните файл APK с ПК-1 к ПК-2, где appium работает?

+0

Не могли бы вы предоставить более подробную информацию о вашей среде и создавать инструменты? Важно знать, используете ли вы Maven или Gradle, и используете ли вы Jenkins/Travis/TeamCity для своих сборок. – deadmoto

ответ

4

Итак, ошибка, которую вы получаете, Bad App, объясняется тем, что Appium не может найти .apk, который вы дали ему в приложении.

Журналы показывают, что вы пытаетесь сообщить Appium, что приложение находится по адресу: <>myApp.apk.

Я думаю, что ваша app.getAbsolutePath() функция не возвращает путь к .apk

Appium способен загрузить сжатый .apk файл с URL. Если вы размещаете .apk в локальной сети или каким-либо образом объединяете эти два компьютера, вы должны указать возможность «приложения» на этот URL.

Испытание если вставить путь в окне браузера он должен принять вас, чтобы загрузить .apk

+1

Вы правы - я теперь использую URL 'http: //my-repo/myApk.apk' - Документацию о возможностях Appium можно найти здесь: http://appium.io/slate/en/master/? ruby # appium-server-capability –

+0

Не забудьте проголосовать. – sheeptest