[Appium][OSS]Thanks for t-shirt and stickers

A few months ago, I start maintaining Appium’s ruby-binding.

Architecture for GUI Testing(mobile)

In 2014, I talked about GUI testing architecture.

Recently, someone asks me about the architecture.So, I post the blog about it.

The following flow means the architecture. I think this architecture is common if anyone uses libraries such as Cucmber.

  Scenario     Abstract     Wrapper    Binding     Appium
(*.feature)   (*_steps.rb)  (*.rb)
     |           |            |           |          |
     |---------->|            |           |          |
     |           |----------->|           |          |
     |           |            |---------->|          |
     |           |            |           |--------->|
     |           |            |           |          |
     |           |            |           |<---------|
     |           |            |<----------|          |
     |           |<-----------|           |          |
     |<----------|            |           |          |
     |           |            |           |          |
  • Scenario layer
    • Describe scenarios.
    • This layer depends on “User scenarios”.
  • Abstract layer
    • Implement steps to run scenarios as Ruby code.
    • This layer absorbs the changes in scenarios.
  • Wrapper layer
    • Wrap binding.
    • This layer absorbs the changes in bindings.
  • Binding layer
    • Ruby binding

PageObject pattern is very famous. In this case, scenairo layer and abstract layer depends on pages. BTW, wrapper layer is common methods to help other layers.

[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

[Appium]preventWDAAttachments for XCUITest strategy

Appium1.6.2から、 preventWDAAttachments というパラメータが付与されました。

これは、WebDriverAgentを動作させるときにXcodeのDerivedDataに多くの不要なファイルを書き込むことを抑制するために、そのディレクトリの権限を読み込み専用(555)に変更させるものみたいです。

defaultはtrueのようですね。

https://github.com/appium/appium-xcuitest-driver/blob/0c36c7659373c1c82a1411e50fa2503920909624/lib/desired-caps.js#L45

ただ、これはXcodeの権限設定を一部変更することになるので、capsには明記しておいたほうが良さそう。

[WebDriver]WebDriver and Mobile JSON Wire Protocol Specification and Appium

I investigated some feature regarding with Selenium3 and associated with it. So, I put some memos I found here.

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 the near future 🙂

In addition, EarlGrey 1.4.0 also released!

Appium1.4.9 released

Appium1.4.9がリリースされましたね。

https://github.com/appium/appium/releases/tag/v1.4.9

iOS9とXcode7の対応が主です。

以下のPRにもある通り、iOS Simulatorにおいてinstruments-without-delayが効かなくなりました。
https://github.com/facebook/instruments-without-delay/pull/18

これで、Simulatorと実機での実行速度の差分があまりなくなりましたね…悲しい.

1.4.9は依存関係の都合、正しく実行できません。
1.4.10を使いましょう。

https://github.com/appium/appium/issues/5479