[iOS]Large Photo Libraries for Testing

from https://developer.apple.com/videos/play/wwdc2017/505/

If you’d like to test with a large number of photos, you can generate dummy photos by https://developer.apple.com/sample-code/wwdc/2017/Creating-Large-Photo-Libraries-for-Testing.zip . Download it and run on the target device.

The app is presented in https://developer.apple.com/videos/play/wwdc2017/505/ .

https://developer.apple.com/documentation/photos/phasset

[Android][iOS]Awesome tips

Headless simulators

Appium(with WDA) can run headless simulators isHeadless against Xcode9+.
Awesome: https://github.com/appium/appium-xcuitest-driver/pull/472/files

composer, swarmer and mainframer

Replace Spoon for Espresso.

[iOS]What’s new Testingを見た

What’s new Testingを見た。

https://developer.apple.com/videos/play/wwdc2017/409/

見ている途中でいくつかメモしたので、その記録として…


  • multiple appのテスト、URLを引数で与えることできるのね

20170612035154_img20170612-17-2kk0z7_480

  • Accessibility Dataのところで説明しているsnapshot、WebDriverAgentが使っているやつぽいな
  • おー。いちいちsnapshot取得する必要がなくなるのか。実行時間改善しそう

20170612035308_img20170612-16-1ng7xs0_720

20170612035501_img20170612-14-zvr8i3_720

  • 要素の検索で全捜査でなくて最初にマッチしたものだけさっと返すようにした、という話だけれど、ようやくという感じ。

20170612035637_img20170612-14-nebl01_480

  • ここら辺は元からそうなのでそうよねという感じだ。
  • ここはどこまで厳密に書くかはどれだけ内部実装と結合を強くするかの問題ですね。Espressoでも同じ問題をもつ。

20170612040244_img20170612-19-18xc35w_720

  • 地味に嬉しい

  • Activity styleの書き方、Cucmberとかイメージすると良さそう。stepsにいろんな処理を入れて、シナリオはstepsを並べて記述するような感じが使い方として近そうだ。

  • 非同期の奴も良さそう。XCTestなので、XCUITestでも使えるし。
  • snapshotのところはほんといろんな3rd partyも恩恵受けるだろうし、良いことづくしな気がする。けれど、これはXcode8でないと使えないOSテストするときは恩恵受けられないので、完全に恩恵を教授できるのは数年後かな…

Xcode9のいくつかの機能、Xcode9以前でも使えると恩恵大きくて良いな…

[iOS][EarlGrey]Run tests quickly

Small, small tips to enhance conducting speed for EarlGrey.
In many cases, iOS can’t handle animation speed such as Android even UI Test cases.

EarlGrey available changing animation speed except for UIScrollView. here

// Swift
let kMaxAnimationInterval: CFTimeInterval = 5.0
GREYConfiguration.sharedInstance().setValue(kMaxAnimationInterval, forConfigKey: kGREYConfigKeyCALayerMaxAnimationDuration)

// Swift
GREYTestHelper.enableFastAnimation()

https://github.com/google/EarlGrey/blob/master/docs/faq.md

In XCUITest case:

# swift
UIApplication.sharedApplication.keyWindow.layer.speed = 100

[iOS]Input multibyte strings with EarlGrey

Usually, we use grey_typeText to input words into text fields.
On the other hand, we can’t input multibyte strings such as Japanese with the method.

In this case, we can use grey_replaceText instead.

https://github.com/google/EarlGrey/issues/31

[automation]try Katalon

https://www.katalon.com/

これを少し触ってみた。

感想としては、これは

https://docs.katalon.com/display/KD/Installation+and+Setup

以下の結果を参考にすると良さそう。

このツールの目的は、Selenium/Appiumを使ったテストを記述/管理する労力を減らそうというものぽい。特に、コードを自分で書かなくて良い状態で。
なので、以下の比較を見るとわかるのだけれど、例えば専属の自動化エンジニアを抱えるところとか、そういうところはターゲットではないように見える。

https://www.katalon.com/blog/comparison-automated-testing-tools/

Emerging solution with a small community.
Feature set is still evolving.
Lack of choices for scripting languages: only Java/Groovy is supported.

[iOS]Bluepill1.0.0

Bluepillの1.0.0がリリースされていたのでメモ。

XCUITestサポートが少し前に完了し、1.0.0になったようですね。

https://github.com/plu/pxctest/releases

こちらに比べて、さすがに企業としての投資が違うのか、開発がBluepillの方が活発だ…

後、Bluepillはテストケースを分割して実行したりと、そういったオプションも豊富で使い勝手が良いですね。
https://github.com/linkedin/bluepill

[iOS]run tests on simulators vol2

[iOS]Run multi simulators with FBSimulatorControl
にも書いている、iOSシミュレータを1つのマシンで複数動作させるやつ。最近ではLinkedInからOSSが公開されましたね。Blogはこちら。スターも多く、さすがLinkedInという感じ。

社内で FBSimulatorControl ベースの複数シミュレータで実行する環境を作ろうと思っていたけれど、もっと素晴らしいものが世に出てきててオォォォという感じ…(私、価値出せてない…)
ここら辺、実装能力が顕著に現れて私は本当にまだまだと思う一方です。。。

以下、以前からある類似のものをピックアップ。

類似

これを実施していると、正直なところ並列実行できないCloud実行環境はイマイチですね。
ローカル環境強し。。。

[Design][iOS][Android][windows]

メモ

[ReactNative][Appium]testIDの振られ方

ReactNativeだと、 testID としてiOSだとaccessibilityID、Androidだとview tagを使ってIDを埋め込むのですね。なので、ReactNativeのアプリに対してidで要素を検索したい場合はAndroidだと特に従来のAppiumやEspressoとは少し異なる。

Appiumだと、以下でview tagの取得をサポートするらしい。

これつくと、resource idが同じ要素も細かくidを振って操作することもできるようになるので、安定性向上に寄与しそうですね。

Does EarlGrey support finding react-native elements?
https://github.com/google/EarlGrey/blob/master/docs/faq.md

react native