JDI UIテストフレームワーク:使用する方法と理由

むかしむかし、テスターは遠くの銀河に住んでいました。 彼らは可能なすべてをテストしましたが、それには多くの時間がかかりました。 自動テストの時代が到来し、それに伴いフレームワークが登場しました。 多くの人は、テスターの作業をより効率的かつ簡単にすることはすでに不可能だと言いました。 しかし、JDI開発者はそうは思いませんでした。



ユーザーインターフェイスをテストするためのフレームワークが既にいくつかあるのに、なぜJDIを作成したのですか? 他の人とどう違うのですか?



EPAM自動テストエンジニア、JDI開発者( Roman IovlevAlexey Girin )は、最もよく聞かれるフレームワークに関する質問に答えました。







JDIとは



JDIはUIテスト用のフレームワークです。 名前はJust do itの略です。JDIの主なアイデアは、テストを簡単に行い、テストをサポートすることです。 これはオープンソースフレームワークであり、GitHubまたはJDI Webサイトからダウンロードできます。 JDIはJavaとC#をサポートしています。 現在、Pythonのサポートに取り組んでいます。



なぜJDIを作成したのですか?



新しいプロジェクトは常にEPAMに導入されており、テスト担当者は、テストをすばやく記述し、ユーザーが理解できる言語ですべてのアクションをログに記録し、視覚的なレポートを作成できるターンキーソリューションが必要です。 UIをテストするために使用できるツールでは、効果的に作業するには不十分でした。 Seleniumでは、ロギングは低レベルであり、型指定された要素はありません。 Yandex HTML要素にはそれらがありますが、このフレームワークはHTMLページレイアウト用に調整されています。 さらに、それは長い間更新されていません 。 市場に出回っている最高のものを1つのフレームワークにまとめることにしました。 JDIには、UIをテストする必要がある場合に便利な基盤が含まれています。 含む、モバイルデバイスとデスクトップアプリケーションになります。



しかし、多くのフレームワークがあります。 JDIは他のJDIとどう違うのですか?



JDIとSelenide、JDIとCucumberのどちらが良いかとよく聞かれます。 それらを比較することは間違っています。彼らはうまく相互作用し、互いに助け合うことができます。 SeleniumまたはSelenideはJDIのドライバーである可能性が高く、完全に組み合わされており、競合しません。 ただし、型付き要素(JDIの抽象化レベル)では機能しません。 反対に、BDDを実装するCucumberのようなフレームは、この規模でJDIを上回り、抽象化の追加レイヤーを実装します。 ところで、JDIと共にBDDおよびCIレイヤーを使用することをお勧めします。



JDIは、ページオブジェクトを記述することができるレイヤーであり、ユーザーに表示される入力済みの要素(ボタン、フォーム、テーブル、ドロップダウンなど)を操作します。 型付き要素に関しては、要素の概念を意味します。 たとえば、特定のUIに関係なく、ボタンとは何で、何ができるべきかなどです。 ボタンはWeb上でもモバイルアプリケーションでもかまいませんが、レイアウトは異なる場合があります。これは実装の問題です。 主なことは、ボタンについてのアイデアがあるということです:それはテーブルまたはドロップダウンと混同することはできません。



JDIを使用する場合、テーブルでの検索、フォームへの入力、メニューからの選択など、低レベルのアクションを記述する必要はありません。これは既にフレームワークにあります。 JDI要素は、期待どおりの動作をします。ボタンをクリックすることはできますが、テキストを書き込むことはできません。



JDIを使用する場合、特定のビジネス、顧客に関連するアクションのみを記述する必要があります。 たとえば、「製品を購入する」。 入力された要素は「製品を購入する」が何であるかを知らないため、UIオブジェクトでこれを記述する必要があります。







要素はどのように記述できますか? SeleniumにあるFindByアノテーションを使用するか、可能性を広げるJFindByを使用します。テキスト、値(値)、タイプ(タイプ)で検索できます。 コンストラクターまたはインターフェースを使用して要素を記述できます。 後者の方法にはいくつかの利点があります。 たとえば、ボタンの実装を変更し、モバイルボタンの代わりにWeb用のボタンを作成し、Web用のモバイルデバイス用に作成したテストを実行できます。 ロジックが変更されていない場合、テスターはページオブジェクトとテストスクリプトを変更する必要はありません。 これは、JDIと他のフレームワークのもう1つの違いです。特定のレイアウトに関連付けられていません。 これは、Yandex Elements HTML Elementsフレームワークに欠けていたものです。 タイプされた要素もそこで使用されますが、フレームワークは特にHTMLページのレイアウトに焦点を合わせています。



ボタン、テキストなどの単純な型指定要素を使用すると、テストをより視覚的にすることができます。 また、ドロップダウン、テーブル、チェックリストなどの複雑な要素を使用すると、テスターが作成する必要のあるコードの量を減らすことができます。 要素に関する必要な情報(ロケーター、メソッド)は1か所にあり、そのようなコードは保守が容易です。



さらに、JDIはすでにロギングを実装し、レポートシステムとの統合を設定しているため、このようなテストのサポートがさらに簡素化されます。



JDIでテストする方法は?



開始するには、 GitHubまたはサイト から JDIをダウンロードする必要があります 。 フレームワークが既に完全に構​​成されているアーカイブをダウンロードします。ドライバーの起動方法、ロギングとレポートの構成方法について考える必要はありません。 自分でプロジェクトを構成する場合は、JDIを依存関係として追加できます。



JDIはデフォルトでSeleniumをエンジンとして使用します。 ただし、別のエンジン(独自のエンジンも)を使用することもできます。設定は簡単です。



JDIでテストするのは難しいですか?



JDIでテストの作成を開始するには、GitHubにあるプレゼンテーションまたは例をご覧ください。 EPAMがサンクトペテルブルクで実施するテスト自動化コースにアクセスできます。 JDIを含む、フレームワークを習得する学生でさえ、それらに取り組むことを教えます。



テスターは、外部よりも内部が複雑であると思わずに、JDIに何かを追加したい場合があります。 上級レベルの開発者は、フレームワークの「内部」を理解できます。



JDIテスターは使用しますか?



JDIはすでにEPAMの50以上のプロジェクトで使用されており、社外の多くのプロジェクトでも使用されています。



JDIはどのように開発されますか?



このフレームワークは約5年間パブリックドメインであり、開発者はこの欠点をすべて除去し、新しい機能を追加しました。 現在、JDIには約20人のアクティブな貢献者がいます。



7月25日、サンクトペテルブルクでJDIコミッターがユーザーと会います。 開発者は、JDIの実装方法、発生した問題、および解決方法を説明します。



フレームワークの使用方法の学習に興味がある場合は、 ここに登録して、JDI VKontakteグループのニュースをフォローしてください



Selenium Campで、RomanはJDIの使用方法を詳細に説明しました。 こちらが彼のスピーチのビデオです。










All Articles