質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

5223閲覧

Android自動化テストでAppiumのsessionが取得できない

lonoru

総合スコア18

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2016/01/15 02:56

編集2016/01/15 08:43

Windows7にてAppiumを使ってAndroidアプリの自動化テストを
実行したのですが、Appiumのsession取得でエラー(status:301)となってしまい
うまく動かず困っています。

以下の参考サイトにある前提条件は確認済みです。
http://www.atmarkit.co.jp/ait/articles/1504/27/news025_3.html

・Windows向けのAppium Desktop Appを動作させる場合は、.NET Framework 4.5再配布可能パッケージをインストールしておく
・JDK(Java Development Kit)7をインストールし、インストールしたディレクトリを「JAVA_HOME」環境変数に設定しておく
・Android SDKをインストールし、インストールしたディレクトリを「ANDROID_HOME」環境変数に設定しておく
・JavaやAndroid SDKのコマンドを実行できるように、以下をコマンドサーチパス(「PATH」環境変数)に追加しておく
$JAVA_HOME/bin
$ANDROID_HOME/tools
$ANDROID_HOME/platform-tools
・Android SDKの「SDK Platforms」のうち、API Level 17以上のものをインストールしておく
・テストを実行する端末・エミュレーターがadb(Android Debug Bridge)で認識された状態にしておく

Appiumのバージョンは1.4.16.1、Javaのバージョンは1.7.0_75です。

Appiumのログは以下です。

Checking if an update is available
Update not available
Launching Appium server with command: C:\Program Files (x86)\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Selendroid --log-no-color
info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)
info: Appium REST http interface listener started on 127.0.0.1:4723
info: [debug] Non-default server args: {"address":"127.0.0.1","port":4723,"logNoColors":true,"platformName":"Android","platformVersion":"23","automationName":"Selendroid"}
info: Console LogLevel: debug
info: --> POST /wd/hub/session {"desiredCapabilities":{"automationName":"Selendroid","app":"C:\develop\workspace\auto_test\app-release.apk","platformName":"Android","deviceName":"09d678c3","browserName":"","app-package":"com.test.mobile","app-activity":"com.test.mobile.MainActivity"}}
info: Client User-Agent string: Apache-HttpClient/4.3.2 (java 1.5)
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : app-package, app-activity
info: [debug] No appActivity desired capability or server param. Parsing from apk.
info: [debug] No appPackage desired capability or server param. Parsing from apk.
info: [debug] Using local app from desired caps: C:\develop\workspace\auto_test\app-release.apk
info: [debug] Creating new appium session 421200ba-4dba-48d9-9692-8469c0e073e8
info: [debug] Starting selendroid server
info: [debug] Getting Java version
info: Java version is: 1.7.0_75
info: [debug] Checking whether adb is present
info: [debug] Using adb from C:\develop\Android\android-sdk\platform-tools\adb.exe
info: [debug] Checking whether selendroid is built yet
info: [debug] Selendroid server exists!
info: [debug] Using fast reset? true
info: [debug] Preparing device for session
info: [debug] Checking whether app is actually present
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices...
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe devices
info: [debug] 1 device(s) connected
info: Found device 09d678c3
:
: (10000文字超えてしまったので中略)
:
info: [debug] executing cmd: java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar" C:\develop\workspace\auto_test\app-release.apk
info: [debug] App already signed.
info: [debug] Zip-aligning C:\develop\workspace\auto_test\app-release.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from C:\develop\Android\android-sdk\build-tools\23.0.1\zipalign.exe
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: C:\develop\Android\android-sdk\build-tools\23.0.1\zipalign.exe -f 4 C:\develop\workspace\auto_test\app-release.apk C:\Users\guest\AppData\Local\Temp\116014-1144-tm468m\appium.tmp
info: [debug] MD5 for app is c08ae0e08ed909ac0e9b209a09f089a3
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "ls /data/local/tmp/c08ae0e08ed909ac0e9b209a09f089a3.apk"
info: [debug] Getting install status for com.test.mobile
info: [debug] Getting device API level
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "getprop ro.build.version.sdk"
info: [debug] Device is at API Level 22
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "pm list packages -3 com.test.mobile"
info: [debug] App is not installed
info: Installing App
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "mkdir -p /data/local/tmp/"
info: [debug] Removing any old apks
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "ls /data/local/tmp/*.apk"
info: [debug] Found an apk we want to keep at /data/local/tmp/c08ae0e08ed909ac0e9b209a09f089a3.apk
info: [debug] Couldn't find any apks to remove
info: [debug] Uninstalling com.test.mobile
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "am force-stop com.test.mobile"
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 uninstall com.test.mobile
info: [debug] App was not uninstalled, maybe it wasn't on device?
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "pm install -r /data/local/tmp/c08ae0e08ed909ac0e9b209a09f089a3.apk"
info: [debug] Forwarding system:8080 to device:8080
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 forward tcp:8080 tcp:8080
info: [debug] Pushing settings apk to device...
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk"
info: [debug] Pushing unlock helper app to device...
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 install "C:\Program Files (x86)\Appium\node_modules\appium\build\unlock_apk\unlock_apk-debug.apk"
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "dumpsys window"
info: [debug] Screen already unlocked, continuing.
info: [debug] executing cmd: C:\develop\Android\android-sdk\platform-tools\adb.exe -s 09d678c3 shell "am instrument -e main_activity 'com.test.mobile.MainActivity' com.test.mobile.selendroid/io.selendroid.server.ServerInstrumentation"
info: [debug] Making http request with opts: {"url":"http://localhost:8080/wd/hub/status","method":"GET"}
info: [debug] Selendroid server is alive!
info: [debug] Listening for Selendroid logs
info: [debug] Creating Selendroid session
info: [debug] Making http request with opts: {"url":"http://localhost:8080/wd/hub/session","method":"POST","json":{"desiredCapabilities":{"warnings":{},"desired":{"automationName":"Selendroid","app":"C:\\develop\\workspace\\auto_test\\app-release.apk","platformName":"Android","deviceName":"09d678c3","browserName":"","app-package":"com.test.mobile","app-activity":"com.test.mobile.MainActivity"},"automationName":"Selendroid","app":"C:\\develop\\workspace\\auto_test\\app-release.apk","platformName":"Android","deviceName":"09d678c3","browserName":"","app-package":"com.test.mobile","app-activity":"com.test.mobile.MainActivity"}}}
error: Selendroid create session did not work. Status was 301 and body was <HTML>

<HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY>

info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Selendroid session creation did not work.
info: [debug] Error: Selendroid session creation did not work.
at [object Object].<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\selendroid.js:404:10)
at Request._callback (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\common.js:121:5)
at Request.self.callback (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\request\request.js:344:22)
at Request.emit (events.js:110:17)
at Request.<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\request\request.js:1239:14)
at Request.emit (events.js:129:20)
at IncomingMessage.<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\request\request.js:1187:12)
at IncomingMessage.emit (events.js:129:20)
at _stream_readable.js:908:16
at process._tickDomainCallback (node.js:381:11)
info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Selendroid session creation did not work.)","origValue":"Selendroid session creation did not work."},"sessionId":null}
info: <-- POST /wd/hub/session 500 20552.056 ms - 204

http://localhost:8080/wd/hub/status(GET)
は正常に取得できています。
http://localhost:8080/wd/hub/session(POST)
が取得できません。

どなたか本事象について解決方法をご存知のかたが
いらっしゃいましたらご教授いただきたく思います。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問