SauceLabsを使ってAndroid/iOSの自動テストを外に出してみた

最近、いくつかCI環境のサービスを調べているのですが、どうせならモバイルアプリのテストも外サービスに出して、サービス開発に力を注げるような環境を構築できたらなと思いSauceLabsを使ってみました。 SauceLabsを使った理由としては、Appiumの開発に強く関わっているところだからなだけです。 良い点 各々の操作時にスクリーンショットをSauceLab側でキャプチャしてくれるので、シナリオの中でどこでキャプチャをとるとかをいちいち考えなくてよい この操作起因でAppium Serverが不安定になる懸念を除ける! ビデオも撮ってくれる 不具合発生時の再現画面をみることができる 実行環境のメンテナンスを外に任せることができる iOSもAndroidも同時実行できる環境を用意するのは結構面倒。 Appium + Seleniium Gridや、少し頑張れば自前でも分散環境作れるけれど 自前で少し作ったことありますが、保守する所を外に出せるって、テストに集中できるのであり互いのですよね。 AppiumをOSSとして提供しているので、シナリオ自体の動作確認を手元でできる(料金体系の外でできる)のは良い 懸念点 Pricingの体系が、月々の価格によっている E2Eのテストは多くの場合実行に時間がかかるので、優先度をつけての良い取捨選択を結構シビアにする必要がでてきそう DailyやWeeklyというような間隔で実行する形でないと、例えばコミット毎とかは時間の縛り上無理そう では、内容。 Androidに関しては、実際に試用したコードも載せてます。More

Appium1.2.0released

ついにAppium1.2.0がリリースされましたね!! XPathの文字化け対応が入るバージョンだったので、なにげに待ちに待っていた。 あと、ふと見たらコードネームが1.2.0ではついていなかった・・・ XPath strategyの文字化けが修正されていて、ruby_libのfindが使えるようになっていた。 ruby_libのfindとは、 にて指定したvalueを含む要素を取得する、というやつ。XPathの力のおかげで、単なるaccessibility_id strategyよりも変更に強いシナリオを記述できるようになるメソッド。 これで、例えば”あるボタンに表示される一部の文字が変数のように変化するが、他は変化しない”というような場合でも、その要素を取得可能な変更に強いスクリプトに落とし込むことができる。会社で部分的に修正を施して問題なく動作するようなら、社内に広めることができる状態になったと言えるかもしれない。(継続して開発する上で、やっぱり定型動作を機械が回してくれるのって、ありがたいのですよね)More

Appium1.1.0released

Appium 1.1.0 (Cygnus) にアップデートされましたね。★ Milestones★を見てみると、今後は月1で更新していく模様。 注意というか、気にするところはやはりStrategyを変更したxpathの安定具合でしょか。実際、いくつかvalueにマルチバイト文字を含むときにうまく動作しない所があるので、1.xシリーズに対応させた会社のスクリプトでも、一部旧版の大体操作やメソッド使っている箇所があります。More

Appium1.0.0(Orion)とruby_libを使ってみる

Appium 1.0.0 がリリースされていましたね。Orionという名前っぽい。 これからruby_libなどのライブラリがappium側の正式サポートとして整備されていくわけですが、0.18.x系から1.0.0系はappiumとしての機能が追加されていく、と開発者の方はGithub上でちょくちょくいっています。そこで、0.18.x系と1.0.x系で変わったところの確認と、ruby_libを軽く使ってみての内容を以下に書いてみます。More

Turnip+Appiumで使ってキーワード駆動のシナリオテストが実施できそうね

Genymotionの制御用引数がAppiumにプルリクされている所をみて、AppiumのOSSとしての成長加速時期がき始めているのかなと感じる最近です。Appium 0.17.3の次のリリースで含まれるのでしょうか。Androidの検証基盤としても本格的な立ち位置になりそう。 今日はStory Testでお世話になるであろうData / Keyword Driven Testingを少しおさらい。More

“Turnip or RSpec” x Appium

過去、こちらにて、AppiumにおけるテストシナリオをTurnipとRSpecのそれぞれの記述で比較してみました。 当時からまたいろいろ試し、考えてみた結果、ひとまずこうかな、という結論に達したのでメモがてら。More

ruby console による、コマンドライン越しのAppiumによる画面要素取得

Appiumのチュートリアルが充実してきましたね。 中でも、以下のconsoleによるチュートリアルは役立ちそう。 まだチェックしてないですが、チェック。 https://github.com/appium/training/blob/master/modules/source/appium/01_ruby_appium_native_ios_automation/02_appium_ruby_console/04_starting_the_console.md あと、動作確認しましたがSelenium 3に向けて、以下のようにcapabilityは修正されていく模様。動作確認も、一応してみました。More

Selenium3のCapablityのDraftにappiumが出てきましたね

Appiumの0.17.3がリリースされてましたね。 あと、Selenium 3のspec draftにて、capabilityにappiumなどが追加されてきましたね。 https://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile ======= Desired Capabilities ——————– New desired capability keys: * `automationName`: specific automation tool, e.g., `appium`, `ios-driver`, `selendroid` * `platformName`: platform to automate, e.g., `Android`, `iOS` * `platformVersion`: platform version e.g., `4.3` (for Android) or `6.1` (for iOS) * `deviceName`: specific device names including version information, e.g., `Nexus 4`, `iPhone 4S`,…More

Appiumの不安定なところいくつか

Appium 0.16.0 がリリースされましたね! さて、iOS/Androidともに動作確認しているのですが、いくつか出くわした現段階の不具合を備忘録かねて共有です。More