ついにAppium1.2.0がリリースされましたね!!
XPathの文字化け対応が入るバージョンだったので、なにげに待ちに待っていた。
あと、ふと見たらコードネームが1.2.0ではついていなかった・・・
XPath strategyの文字化けが修正されていて、ruby_libのfindが使えるようになっていた。
ruby_libのfindとは、
find(value)
にて指定したvalueを含む要素を取得する、というやつ。XPathの力のおかげで、単なるaccessibility_id strategyよりも変更に強いシナリオを記述できるようになるメソッド。
これで、例えば”あるボタンに表示される一部の文字が変数のように変化するが、他は変化しない”というような場合でも、その要素を取得可能な変更に強いスクリプトに落とし込むことができる。会社で部分的に修正を施して問題なく動作するようなら、社内に広めることができる状態になったと言えるかもしれない。(継続して開発する上で、やっぱり定型動作を機械が回してくれるのって、ありがたいのですよね)
更新内容の詳しくはこちらを参考ください。
いくつか、ピックアップ。Androidの修正は結構活発で、iOSは昔からサポートしていたこともあり安定していたけど、ここ最近Androidも安定してきた感ある。
General
- add generic crash handler
- 試験を実施していると時折クラッシュするのですが、その原因解析に役立つ情報が増えてたら嬉しい。結果レポートのうち、無視できる/できないを判断する材料になりそうなので。
iOS
- update hideKeyboard to take various possible strategies
- hideKeyboardの箇所は、コンテキストによってiOSでは変化していて、その指定が柔軟になっていくのはなにげに嬉しい。
- don’t return duplicate elements
- 詳しくおっていないのではっきりは知らないのですが、複数要素の取得で重複していると、得られた配列の並びがおかしくなるので安定性に向けて嬉しい。
Android
- add dedupe to complex_find
- fix activity-finding logic
- fix error handling in installApp
- fix id serach
- add unicodeKeyboard capability which allows sending unicode text
- fix installApp, prevent a server crash
話しはかわって、こういうテスト回していると、やはり実行環境を外に持ちたい(自分たちの手元で実行環境を管理するのは少し手間)、ということが多々あります。
最近だと、本家のSourceLabやらApprifyがAppiumをつなぎ合わせることができるので、触ろうと思っている。
Appiumって、思想もそうだけれど、一括して多くの機能を盛り込んだテストスイートではなく、いろいろ組み合わせて企業にあったテストプロセスを作ることができるように組み合わせを重視している点が好き。
テストケース書くのもTurnipやRSpec使えるし、他機能を拡張したいときもRubyのgem群も使えるし。
自分たちのプロセスにあった形で開発ツールを慣らすか、自分たちが開発ツールに寄っていくか、で考えると、やはり前者のほうが自然で、だけれど力を入れなくても良いところはパッケージ製品を使い回すとか、そういう形で作られていくのが企業の開発スタイルなのかなとつくづく思う最近です。
更新 20140706
文字列包含、思いのほか使い勝手を選びそう。
例えば、表示されている画面に、説明文として使っている言葉と、実際にボタンとして使われている言葉が互いに包含関係を持つ場合、どちらの要素を取得すれば良いかというところで考えなければいけなくなる。
それよりは、完全一致で選択した方が良い。
実際にいくつかfindで置き換えて失敗するケースがでたので、そう思ったのでした。