waveさんの技術日誌

wave1008の日記の新館です。

Shiratesのアーキテクチャ概要

テスト実行構成の概要

shirates-coreAppium をドライバーとして使用します。

  • IntelliJ IDEA/Gradle
    • テストを実行するプロセスを起動します。
  • Appium Server
    • クライアントからの要求を受けてスマホ端末を操作します。
  • Emulator/Real Device
    • Appium Serverからの要求を受けて画面を操作します。

shirates-coreの依存ライブラリ

shirates-core はAppium以外にもいくつかのOSSライブラリを使用します。

shirates-coreの論理コンポーネント

shirates-core は以下のような論理コンポーネントから構成されます。

要素の取得とキャッシュ

shirates-core は画面上のすべての要素を取得してキャッシュします。

select関数等の要素の検索を実行する場合はキャッシュ内で行います。AppiumのfindElement系の検索メソッドは原則として使用しません。

キャッシュ内の要素情報を活用するすることで、Appium単体では実現できない複雑な検索を高速に実行することができます。

Android版とiOS版のテストコードの共通化

shirates~coreappium/java-client のラッパーとして機能し、AndroidiOSの差異を吸収します。

AndroidiOSの画面情報の差異は画面情報ファイルで吸収することができます。

これらの仕組みにより、同一仕様のアプリのAndroid版とiOS版のテストコードを共通化することができます。

Index

自動テストツールShiratesに関するブログ(Index) - waveさんの技術日誌