「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > テスト自動化: Java および TestNG を使用した Selenium ガイド

テスト自動化: Java および TestNG を使用した Selenium ガイド

2024 年 11 月 5 日に公開
ブラウズ:730

テスト自動化はソフトウェア開発プロセスに不可欠な部分となり、チームが効率を高め、手動エラーを減らし、より速いペースで高品質の製品を提供できるようになりました。 Web ブラウザを自動化するための強力なツールである Selenium は、Java の多用途性と組み合わされて、信頼性が高くスケーラブルな自動テスト スイートを構築するための堅牢なフレームワークを提供します。テスト自動化に Selenium Java を使用すると、ツールとプログラミング言語の両方の長所を活用して、効果的なテスト シナリオを作成できます。

なぜセレンなのか?

Selenium は、Web ブラウザーを自動化するために広く使用されているオープンソース ツールです。さまざまなブラウザーやプラットフォーム間で Web アプリケーションをテストするための一連のツールを提供します。特に Selenium WebDriver を使用すると、ユーザーは Web ブラウザをプログラムで制御できるようになり、Selenium TestNG などのフレームワークを使用した強力な自動テストの作成が可能になります。

Selenium がテスト自動化に推奨される理由をいくつか示します:

  • ブラウザ間の互換性: Selenium WebDriver は、Chrome、Firefox、Safari、Edge などの複数のブラウザをサポートし、さまざまな環境にわたって包括的なテストを確実にカバーします。
  • 言語サポート: Selenium WebDriver は、Java、Python、C#、JavaScript などのいくつかのプログラミング言語との互換性を提供します。この柔軟性により、テスターは好みのプログラミング言語で作業できるようになります。
  • 豊富なエコシステム: Selenium には、活発なコミュニティを備えた広大なエコシステムがあり、テスト プロセスを強化するための多数のリソース、プラグイン、統合へのアクセスを提供します。
  • 要素のインタラクション: Selenium は、ID、名前、XPath、CSS セレクターなどのさまざまな戦略を使用して Web ページ上の要素を見つけるメカニズムを提供します。これにより、テスターは特定の要素を正確に操作できます。
  • アラートとポップアップの処理: Selenium は、テスト プロセス中に表示されるアラート、ポップアップ、ダイアログ ボックスを処理できるため、より包括的な自動化シナリオが可能になります。
  • 動的 Web 要素の処理: Selenium は、AngularJS、React、Vue.js などの JavaScript フレームワークによって生成されたものなど、Web ページ上の動的要素の処理をサポートします
  • テスト フレームワークの統合: Selenium は、JUnit、TestNG、NUnit、Pytest などの一般的なテスト フレームワークと統合でき、レポート作成、並列実行、データ パラメーター化などの追加機能を提供します。
  • 継続的インテグレーション (CI) ツールとの統合: Selenium は、Jenkins、Travis CI、CircleCI などのツールを使用して CI/CD パイプラインにシームレスに統合でき、ソフトウェア開発ライフサイクルの一部として自動テストが可能になります。

Selenium についてさらに詳しく知りたい場合は、公式ドキュメントを参照してください。

自動化に Java を活用する

Java は、そのシンプルさ、堅牢性、プラットフォームからの独立性で知られる、広く採用されているプログラミング言語です。 Java を Selenium と組み合わせると、テスターは高度な自動化フレームワークを簡単に構築できるようになります。 Java 自動化は、言語の強力な機能を使用して、テスト スクリプトの効率と有効性を高めます。

Java が Selenium 自動化に優れた選択肢である理由は次のとおりです:

  • 強力なオブジェクト指向パラダイム: Java のオブジェクト指向の性質により、モジュール式で保守可能なテスト スクリプトの作成が容易になり、複雑なテスト スイートの管理が容易になります。
  • 豊富なライブラリとフレームワーク: Java は、TestNG、JUnit、Apache Maven など、Selenium を補完するライブラリとフレームワークの豊富なエコシステムを誇り、シームレスな統合と高度なテスト管理を可能にします。
  • プラットフォームの独立性: Java の「一度書けば、どこでも実行できる」という哲学により、1 つのプラットフォームで開発されたテスト スクリプトは、Java 仮想マシン (JVM) を使用して任意のプラットフォームで実行できることが保証され、移植性とスケーラビリティが強化されます。

前提条件の手順

このブログでは、実践中に、それぞれのライブラリとアプリケーションに以下のバージョンを使用しました:

  • Java バージョン : 19.0.2
  • IntelliJ バージョン : 2023.3.6
  • Selenium – Java バージョン : 4.18.1
  • TestNG バージョン : 7.9.0

JDK をダウンロードしてインストールします:

Java プログラムを作成して実行するには、Java ランタイム環境 (JRE) を含む Java 開発キット (JDK) が必要です。 JRE はインストール中に JDK にバンドルされます。

IntelliJ IDE など、Java に依存するアプリケーションを実行する場合でも、JDK をインストールする必要があります。

まず、Java をダウンロードし、インストールし、それに応じて環境パスを設定します。設定方法に関するガイダンスは、この Web サイト で見つけることができます。構成が完了したら、コマンド プロンプトに java -version と入力してインストールを確認できます。これにより、インストールされている Java バージョンの詳細が表示されます。

Test Automation: Guide to Selenium with Java and TestNG

IntelliJ のインストール:

IntelliJ をダウンロードするには、IntelliJ の公式 Web サイトにアクセスし、コミュニティ バージョンの .exe ファイルを選択します。ファイルを選択するとダウンロードが開始されます。

ダウンロードが完了したら、.exe ファイルを起動し、IntelliJ のインストールに進みます。

IntelliJ のインストールに関するガイダンスについては、この Web サイトに記載されている手順を参照してください。

テストケースの作成

1. IntelliJ で Maven プロジェクトを作成します:

    IntelliJ IDEAを起動し、メニューから「新しいプロジェクト」を選択します。

Test Automation: Guide to Selenium with Java and TestNG

    プロジェクト名と場所を指定し、言語として Java を選択し、ビルド システムとして Maven を選択し、JDK バージョンを設定して、最後に「作成」をクリックします。

Test Automation: Guide to Selenium with Java and TestNG

    Maven プロジェクトが作成時にこの構造に従っていることを確認してください。

Test Automation: Guide to Selenium with Java and TestNG

2. pom.xml に依存関係を追加: 新しいプロジェクトを作成した後の最初のステップは、Selenium や TestNG などの依存関係を pom.xml ファイルに含めることです。これらの依存関係の最新バージョンは、Maven リポジトリの公式 Web サイトで見つけることができます。

3. Selenium TestNG を使用して Java テスト ケースを作成する

    次に、src > test > java ディレクトリ内に Java クラス名 SampleTest を生成します。

Test Automation: Guide to Selenium with Java and TestNG

  • このテスト スクリプトは TestNG アノテーションを利用して、JigNect Web サイトで自動テストを実行します。使用される各 TestNG アノテーションの簡単な説明は次のとおりです:

  • @BeforeMethod: setUpBrowser メソッドには @BeforeMethod 注釈が付けられ、各テスト メソッドの前に実行する必要があることを示します。この場合、ChromeDriver を初期化し、ブラウザ ウィンドウを最大化し、指定された URL に移動します。

  • Test: このアノテーションはメソッドをテスト メソッドとしてマークします。 sampleTest() メソッドは、このスクリプトの実際のテスト ケースです。ユーザーが JigNect Web サイトのホームページにリダイレクトされ、QA ブログ ページのリンクをクリックして、ユーザーが QA ブログ ページにいることを確認します。

  • @AfterMethod: closeBrowser メソッドには @AfterMethod 注釈が付けられ、各テスト メソッドの後に実行する必要があることを示します。この場合、テストの実行が完了した後にブラウザを閉じます。

  • TestNG について詳しく知りたい場合は、公式 Web サイトにアクセスして追加情報をご覧ください。

  • 全体として、このテスト スクリプトは、アサーションを使用して各ステップで期待される結果を検証し、Web サイトのナビゲーションとページのリダイレクトが期待どおりに機能することを確認します。

作成したテストケースを実行して結果を確認する

1.テスト スクリプトを作成したら、テストの実行に進み、結果を注意深く分析します。

    テスト ケースを実行するには、テスト クラスに移動し、それを右クリックして、[実行] オプションを選択します。結果は IntelliJ の実行ツール ウィンドウに表示されます。

Test Automation: Guide to Selenium with Java and TestNG

2.テスト実行結果

    IntelliJ の実行ツール ウィンドウに表示される結果は、テスト実行に関する重要な情報を提供します。
  • ご覧のとおり、作成したテストは合格し、予想どおりに正しく機能しています。
  • これらの結果を確認することで、どのテストが成功したか、失敗したか、またはスキップされたかを理解できます。
  • これにより、テスト プロセスが改善され、スクリプトがより適切かつ正確になります。

Test Automation: Guide to Selenium with Java and TestNG

結論

Selenium は、Web アプリケーションのテストを自動化するための重要なツールであり、クロスブラウザー テスト、多言語サポート、拡張性、並列テスト実行、強力なコミュニティの支援などの機能を提供します。 Selenium は高品質のソフトウェアを提供することで人気がありますが、セットアップの複雑さ、テストの不安定さ、非 Web テクノロジのサポートの制限、メンテナンス要件などの制限があります。 Selenium の長所と短所の両方を理解することで、チームは Selenium を効果的に活用してテスト目標を達成し、優れたユーザー エクスペリエンスを提供できます。

結論として、ブログで紹介した実践例を通じて、Selenium とその基礎についてしっかりと理解できました。これらの実践的な経験により、Selenium の概念をより正確かつ効果的に理解できるようになりました。さらに、Selenium は、その堅牢な機能と多用途性により、自動テストの好ましい選択肢として浮上しています。今後のブログ投稿では、動的フレームワーク、ページ オブジェクト クラス、データ ファクトリ、認証の処理、iframe、要素戦略、待機戦略などをカバーする Selenium の高度なトピックについて書いていく予定です。

動的フレームワークの実装、ページ オブジェクト クラス、データ ファクトリ、データ オブジェクトの使用など、自動テストに関連する追加トピックについては、今後のブログ投稿で引き続きご確認ください。

Jignect

を使用して、これらの強力なツールをさらに習得するために練習と探索を続けてください。 当社の細心の注意を払ったアプローチと最先端のソリューションが、どのように品質とパフォーマンスを新たな高みに引き上げたかをご覧ください。優れたソフトウェア テストの世界への旅を始めましょう。詳細については、

ツールとテクノロジー

およびQA サービスを参照してください。 当社が提供する素晴らしいサービスについて詳しく知りたい場合は、必ず

お問い合わせください

テストを楽しんでください。 ?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/jignect_technologies/test-automation-guide-to-selenium-with-java-and-testng-5820?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3