はじめに
- SauceLabs + AppiumでAndroidアプリのテストを走らせるの続きです
- 上の記事の対象アプリはクラウド上に配置してあるアプリでした
sample-code/examples/ruby/android_on_sauce.rb
.
.
.
{
caps: {
:'appium-version' => '1.3.4',
platformName: 'Android',
platformVersion: '4.3',
deviceName: 'Android Emulator',
app: 'http://appium.s3.amazonaws.com/NotesList.apk', #これです
name: 'Ruby Appium Android example'
},
appium_lib: {
wait: 60
}
}
.
.
.
- これを今手元にあるアプリに対してやってみようと思ったらすんなりできなかったので記事書きました!
対応前後の結果
失敗したときのSauceLabsの結果
- プロトコルがぁ・・・といわれているので、ローカルじゃなくてどこかにあげてくれと!!
- さて、S3にでも置くか!とか考えたけど、そんなことしなくてもいいっていう手順を見つけてしまったので試してみました(後述)
成功したときのSauceLabsの結果
- キター!!!
対応
- ココにある手順をやっただけでいけました
- 数行のコマンドですが、手順としては以下の通り
1. APKファイルをZIP化
$ zip -r my_app.zip MyApp.apk/
2. SauceLabsのストレージにアップロード
$ curl -u $SAUCE_USERNAME:$SAUCE_ACCESS_KEY -X POST "http://saucelabs.com/rest/v1/storage/$SAUCE_USERNAME/my_app.zip?overwrite=true" -H "Content-Type: application/octet-stream" --data-binary @my_app.zip
3. テストコードに書いているアプリのパスを変更
sample-code/examples/ruby/android_on_sauce.rb
.
.
.
{
caps: {
:'appium-version' => '1.3.4',
platformName: 'Android',
platformVersion: '4.3',
deviceName: 'Android Emulator',
app: 'sauce-storage:my_app.zip', # 手順2でアップロードしたファイルを指定
name: 'Ruby Appium Android example'
},
appium_lib: {
wait: 60
}
}
.
.
.
アップロードしたアプリファイルの確認
$ curl -u $SAUCE_USERNAME:$SAUCE_ACCESS_KEY -X GET https://saucelabs.com/rest/v1/storage/$SAUCE_USERNAME
~ただの宣伝~
- 全国のSeleniumer必読
- Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください