WebおよびモバイルアプリケーションをテストするためのArachnidium自家製フレームワーク。 始めましょう!

こんにちは、Habr!



この記事はほんの少しの操作時間です(はい、たとえばSpringと比較して)。これは多少の改良を加えて、Webアプリケーションとモバイルアプリケーションの両方をテストするのに使用できます。方向。 この場合、UIからのテストを暗示する必要があります。 誰かが似たようなプロトタイプを手に入れたという点で面白くてクールだと思います。 実際、この投稿は私の趣味の1つです。 空き時間に、WebDriver APIを使用してWebおよびモバイルアプリケーションとの対話性を記述する方法を簡素化および統一しようとしました。



また、これは、記事「セレンと1つの「自転車」について」および「自転車から...へ」の誤りに関する作業です



つまり、これは一連の小さな連続したトピックのオープナーです。 Dmitry_Zhariyのアドバイスのおかげで、私はそれらを通常とは異なる形式で整理することにしました...テキストはほとんどありませんが、トピックを明確かつ簡潔に明らかにしようとするビデオ資料があります。 私はあなたの時間を無駄にしないことを望みます。



記事は、QAの専門家と開発者の両方にとって興味深いものです。 オープンソースに興味がある人はとても幸せです。 誰かがセレミウムとアピウムに精通していない場合-それは問題ではありません。 結局、いつでも最初にグーグルで検索できます!..



以下に簡単な例を示します。 次の記事(理にかなっている場合)-より高度。



計画:

-TTX;

-始めましょう。

-最初のWebテスト。

-モバイルアプリケーションの最初のテスト。

-クロスプラットフォームテスト。

-結論または継続が続きます。



「モルモット」として、ソーシャルネットワーク「VKontakte」が選択されました-Android用のWebおよびネイティブアプリケーション。 不要な言葉の代わりに、「テスト」されるアクションを簡単に示します。







githubへのリンク



TTX



画像



スケッチは元々java 7で作成されていましたが、その後8番目のバージョンに移行されました。 その機能を試してみたいと思っただけで、コードの量を減らすのに役立つものが含まれています。 Repeatable Annotationsなどの一部の機能は、フレームワークの機能という形で明確に適用されています。



セレン -導入の必要はありません。 デスクトップブラウザとの対話を自動化するために使用されます。

-Mozilla Firefox;

-Google Chrome;

-Internet Explorer;

-サファリ;

-PhantomJS(Seleniumのバージョンを最新に上げることがまだできないため、 修正が公開されるのを待っています )。



Appiumは、モバイルブラウザおよびアプリケーションとの対話を自動化するように設計された比較的新しいフレームワークです。 NodeJSサーバーとさまざまなプログラミング言語のクライアントライブラリが含まれています。 私の意見では、 この記事の執筆時点のようにゆるやかではありませんが、まだ活発に開発されています。 時々、私自身もクライアントライブラリの開発に5セントを費やしています。 最初はJavaクライアントでしたが、.NETで少し助けになると思います。



以下との相互作用を自動化するために使用されます。

-Android Chrome;

-ネイティブのAndroidおよびChromiumブラウザ-最近、記載されている開発にねじ込まれています。

-モバイルSafari;

-ネイティブおよびハイブリッドアプリケーション-AndroidおよびiOS。 長期的には-Firefox OSおよびWindows Phone。



フレームワークの内部には、メディエーター、工場、依存性注入などのシステムがあります。 この経済はすべて生き延びています...



Spring + AspectJ-私の意見では、 EventFiringWebDriverの優れた代替品であり、それだけではありませんでした。 私は思う-この甘いカップルの使用をさらに拡大する方法について考えることは理にかなっています。



CGLIBは、かなりの量のエンドツーエンド機能をサポートしています。



他の多くのマイナーライブラリ...



始めましょう



オペレーティングシステム-Windows 7/8、Mac OS X(最小8.5)。 Linux / Unix / Ubuntuについては何も言えません。テストしていないからです。 私は罪深く悔い改め、良くなるように努めます!



まず、Javaをダウンロードしてインストールする必要があります。 少なくともJava SE Development Kit 8。

次。 真新しいIDEAをインストールするか、Eclipseをダウンロードしてください。すぐにLunaを使用することをお勧めします。

モバイルプラットフォームがおもしろい場合は、Appuimの要件に従って、すべて理解し、すべてを構成することを勧めします。 確かに、ここではGenymotion(Android)について何も言われていません。 しかし、あなたは試すことができます。 私は個人的にそれが好きです:)



カスタマイズされましたか?



開発環境を開きます。 Mavenプロジェクトを作成します。 いいね! pom.xmlでは、次の依存関係を記述するだけで十分です。



<dependencies> ... <dependency> <groupId>com.github.arachnidium</groupId> <artifactId>arachnidium-app-model</artifactId> <version>${actualVersion}</version> </dependency> ... </dependencies>
      
      







$ {actualVersion}ここにあります



どうぞ!



注意!!! ビデオへのコメントは可能だと思います。 通常、突出コードと説明。 私の手はまだいっぱいではありません。 事前にすべてを準備してから、書かれた内容を説明する方が簡単でした。 しかし、このような形式がすべての人に適している場合... 3つの例をすべて準備するために、すべてのデバッグに1時間(+-10分)かかりました。 どちらかと言えば-ビデオの品質はコメントで議論されます。 今のところ-各ビデオの後には、githubへの対応するリンクが続きます。




最初のWebテスト







Github:ブランク

Github:テスト



私自身:毎日YandexのHtmlElements開発を使用している人は、デジャヴの感覚を持っていると思います。 確かに、そこから何かを借りました。 しかし! これはシードの簡単な例です。 以下の出版物では、バイパスして導入するいくつかのより深い違いがあります。



さらに、素材はもっと面白いと思います!



モバイルアプリケーションの最初のテスト







Github:ブランク

Github:テスト。



これについて詳しく説明することはできますが、以下はプログラムのハイライトと考えられるものです。



クロスプラットフォームテスト







Github:ブランク。

Github:テスト。



今のところすべてです!



結論または継続



この出版物で、私はあなたに何が起こったのかをお見せしました。 面白かったと思います。

実際のチュートリアルは作成しませんでした。そのような形式は、すでに実証済みで積極的に実装されているソリューションに適しているからです。 この開発の有用性はまだ仮想的だと思います-外部から見たほうが良いでしょう。



完全なチュートリアルはgithubで見ることができます。 ところで、この記事では公開されていないが、次の記事の準備ができている資料が既にあります。



ここでは非常にシンプルなものを示しました。 以下では(別の2〜3の出版物を想定しています)、より興味深い発展を示したいと思います。 しかし! 次の出版物が必要かどうかはあなた次第です。



ご清聴ありがとうございました!



All Articles