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

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

ただいまの
回答率

89.55%

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

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,600

lonoru

score 6

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)
が取得できません。

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

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

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

  • ただいまの回答率 89.55%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る