Appium1.6.0 released !!

https://github.com/appium/appium/releases/tag/v1.6.0 support XCUITest(WebDriverAgent) to test against Xcode8 x above iOS9.3 BTW, this feature has some unstable/known issues support UI Automator 2 for Android I already tried previous its beta version in my company, and then I issued some problems to Appium and it already fixed. I’ll switch to this new version from previous 1.5 in…More

Appium x Androidの要素指定の手段にtext要素による指定を追加した

Appiumを使ってiOS/Androidの要素を取得する方法の数々に以下のAndroidによる要素の取得方法を追加しました。 Androidでは、Android SDKに同封される uiautomatorviewer コマンドで要素を表示確認します。そのツールで text 要素に表示される文言からその要素を特定する場合、上記のようにXPathの記述で要素を特定することが可能です。 利点 contentDescription指定が不要 表示されている文言ベースで要素を指定可能 比較的手軽 欠点 TextViewやButtonなど、表示される要素が異なると使い分けを行う必要がある 共通でresorceIDやcontentDescriptionで指定可能であれば、そのような使い分けはしなくてもよくなる テキストが表示されない要素を特定することは不可能 UIの表示文言にテストの安定性が左右される システムの言語設定に依存したり… ここまで揃えば、iOS/Android共に多くのシナリオを比較的容易に自然言語でシナリオ自動化できそう。More

Appium 1.3.4 released

Appium 1.3.4がリリースされていましたね。 https://github.com/appium/appium/releases/tag/v1.3.4 General better handling of session closing. iOS screenshotWaitTimeout syslog fix Android 全般的に、安定性が上がってきたイメージ AndroidとiOS、新OSがリリースされて広まる速度違うので、対応への急速感って違いますね。 こういうテストツールでもひしひし。 最近、こういうシミュレータでOSアップデート模倣できると嬉しいなって思ってます。 できる気がするのですよね。 アップデート前OSで起動、なんらかの操作した時点でアプリを保存データごとぶっこぬく 新OSを起動、もしくは起動前にappやapkを任意のファイル以下に設置する これで模倣できないかな。 やってみよう。More

Appium 1.3.3 released !!

Appium 1.3.3 がリリースされましたね。安定性も上がってきた模様。 1.3.3といいつつも、中身は1.3.2で計画していたものです。 詳細は以下をご覧いただければ良さそう。 https://discuss.appium.io/t/appium-1-3-3-released/1452 中でも、 add a sendKeyStrategy capability to allow testers to enable less reliable, but faster sendKey method が追加されたのは助かりますね。 一時期、sendKeyStrategyが1.3.1のものに変更されたのですが、そこがcapabilityで選ぶことが可能になったものです。 私が使っているテストスクリプト自体のiOS8やiPhone6/6+への対応も安定段階に入り、また継続して使えそう。Androidにも同様に本格的に取り組んでいきたい。 iOSでは、Xcode8.2の足音も聞こえ始め、シミュレータの安定性なんかが気になりますね。More

Appium1.3.0 released

AppiumのiOS8対応したv1.3.0がリリースされましたね。ついに。 https://github.com/appium/appium/releases/tag/v1.3.0 主な修正はiOS8対応です。 iOS8シミュレータのフォルダ構造が変わってたり、device nameのフォーマットが変わってたりと対応が多々ありましたが、動いて良かった。 微力ながら、少しiOS8対応周りでコミットさせて頂きました。 シミュレータ自体もまだ不安定な所がありますが、これからも不具合あればコミットして共有や修正していきたい。More

Appium1.2.3 released

Appium 1.2.3がリリースされましたね。 ios8ブランチでは、1.3-beta1としていくつか不具合はあるもiOS8対応も進んでいるのでもう少しかも。 とはいえ、iOS8 simulatorやinstruments関連でも不具合があるようなので、Apple側対応が必要な箇所もある程度ある模様。 Appium 1.2.3は、1.2.2において1.2.1からいくつかあったエンバグがなおっている模様。 例えば、iOSだとfindElementsのクラッシュやuiautomation predicate searchの修正、AndroidのsetText箇所など。 iOSのscroll操作もなおった模様? 私はscroll操作は使わないようにテストシナリオを修正したので、影響なかったのですが、影響ある人はありそう。More

Appium1.2.2 released

Appium、1.2.2が出てました。 https://github.com/appium/appium/releases/tag/v1.2.2 なにげに、インスペクタのレイアウトが変わってました。 iOSは微修正、Androidのほうが修正が多いように見えます。 個人的にiOSとして既存のテストに影響のありそうな修正は無かった。 Androidには以下が気になるところ。 まだシナリオ少ないですが、Androidは安定に向かっていて良さそう。 Android cache Chromedriver webview objects so we don’t need to start a new Chromedriver on every context switch allow chromeOptions cap object to be passed to chromedriver download all chromedriver architectures for linux (32 and 64 bit) make sure we stop adb logcat logging when ending a chrome…More

Travis CIとSauceLabsを使ってiOSをビルドしてみた

以前、SauceLabsを使った自動テストと、AndroidのTravis CIによるビルドを実行してみました。 今回はiOSを対象に実施しますが、さらに一歩進んで、 GitHubへPush => Travis CIによるビルド => Travis CIのビルドスクリプトでSauceLabsによるテスト => 結果 という流れを実行してみます。 .travis.ymlの内容以外は基本Androidのものと同一なので省略しておきます。 内容 こちらによると、今(20140721現在)サポートされているiOSアプリは、以下の模様。 7.1 (simulator and device) 7.0 (simulator and device) 6.1 (simulator and device) travis.ymlには、 language: xcode_sdk: などの要素をまずは指定してObjectiv-Cアプリのビルドスクリプトを記述します。More

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

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

CloudBeesのDEV@Clouldを使ってAndroidをビルドしてみた

Travis CI/Werckerと試用して、他にモバイルに特化したものは無いかなと思い、こちらを使ってみることに。 はじめから結論なのですが、これはJenkinsをホストして、いくつか拡張された形で使えるものです。つまり、Jenkinsを実際に運用している人であれば、学習コストもかかりませんし、使っているPluginも自由に組み合わせることができます。さらには、有用プランだと、いくつか外部サービスとの連携もサービスとして使うことができるのは良かったです。 一方、Travis CIやWercketが環境構築をtravis.ymlやwercker.ymlの管理で固定して実施できていたのに対して、こちらはこういうコードで環境をコントロールすることが難しそう。また、Android/iOSも結局はSlaveにビルドを任せるので、そのSlaveの環境をソフトウェアで管理できないぶん、個人的にはTravisやWerckerのほうが良かった。 では、内容。More