BELLATRIX C# および JAVA 用テスト自動化フレームワーク

クロスプラットフォームの .NET 6 および JAVA テスト自動化フレームワークである BELLATRIX をカスタマイズおよび拡張して、ニーズに完全に適合させます。数百のベストプラクティス機能と統合を基に始めましょう。

過去10年間で、Selenium の周りに大規模なオープンソースプロジェクトのエコシステムが生まれました。Selenium は、テスト目的で Web アプリケーションを自動化するためによく使用されますが、テストフレームワークは含まれていません。今日、Selenium エコシステムのイニシアチブは、Selenium のコアメンテナ以外の人々によってメンテナンスされている人気のあるオープンソースのテスト自動化フレームワークを普及させようとしています。これらのフレームワークの 1 つが、Anton Angelov によって考案された BELLATRIX です。C# と Java の 2 つのバージョンがあります。テストフレームワークは、共通コードがアプリケーションのさまざまな側面 (UI、API、セキュリティ、パフォーマンスなど) をテストするための汎用機能 (選択的にオーバーライド可能) を提供する抽象化です。

BELLATRIX テスト自動化フレームワーク

BELLATRIX の最初のバージョンは 2017 年 12 月 26 日に登場しました。最初は C# のみで利用可能でしたが、当時の新しい .NET Core で記述されており、フレームワークをすべての主要なオペレーティングシステム (クロスプラットフォーム) で使用できるようになりました。BELLATRIX の大きな利点の 1 つは、そのクロステクノロジー対応です。Web、モバイル、デスクトップ、API などのさまざまなテクノロジーのテストを作成できます。BELLATRIX では、すべてのモジュールの API が可能な限り同一になるように努めています。

使い方は簡単です。BELLATRIX を GIT サブモジュールとしてクローンすることをお勧めします。次に、カスタマイズ、テスト、およびプロジェクト固有のプラグインは、BELLATRIX クローンリポジトリの外側のプロジェクトに配置する必要があります。これにより、最新バージョンにすばやく更新できます。

BELLATRIX 公式ウェブサイト、ダウンロードおよびリリース情報

BELLATRIX 公式 C# GitHub ページ

BELLATRIX 公式 Java GitHub ページ

BELLATRIX C# ドキュメント

BELLATRIX Java ドキュメント

BELLATRIX で最初のテストを 15 分で作成するのがどれほど簡単か調べてみましょう。サンプルでは、Web サイトへの非常に基本的なテストログインを作成する方法を紹介します。

  1. BellatrixTestFramework.sln を開きます
  1. starthere フォルダーの下で、お好みのプロジェクト (web、mobile、desktop、API) を見つけてください
  1. BellatrixLoginTest.cs ファイルを開きます。ログインを自動化するサンプルテストがあります。
[TestClass]
public class LoginTestsMSTest : MSTest.WebTest
{
    public override void TestInit()
    {
       App.Navigation.Navigate("http://demos.bellatrix.solutions/my-account/");
    }

    [TestMethod]
    public void SuccessfullyLoginToMyAccount()
    {
        var userNameField = App.Components.CreateById<TextField>("username");
        var passwordField = App.Components.CreateById<Password>("password");
        var loginButton = App.Components.CreateByXpath<Button>("//button[@name='login']");

        userNameField.SetText("info@yourverybusywebsite.com");
        passwordField.SetPassword("yourverysecretp4ssw0rd$");
        loginButton.Click();

        var myAccountContentDiv = App.Components.CreateByClass<Div>("woocommerce-MyAccount-content");
        myAccountContentDiv.ValidateInnerTextContains("Hello John");

        var logoutLink = App.Components.CreateByInnerTextContaining<Anchor>("Log out");

        logoutLink.ValidateIsVisible();
        logoutLink.Click();
    }
}

利用可能なすべてのサービスは、メインの App クラスを通じて利用できます。Components プロパティは、要素を見つけるためのさまざまな Create メソッドを提供します。これらはジェネリックであるため、検索された要素のタイプを指定する必要があります。要素が異なるのは、BELLATRIX が各要素に対して、ネイティブの WebDriver メソッドに加えて、さまざまな追加メソッドとアサーションを提供するためです。サンプルコードでは、デフォルトのテストフレームワークとして MSTest を使用していますが、属性を変更することで、NUnit でもすぐに使用できます。もちろん、基本クラスの名前空間も変更する必要があります。

なぜ BELLATRIX なのか?

フレームワークがもたらす重要な点を簡単にリストアップしましょう

複数のテスト環境構成

フレームワークのすべての側面は、多くのテスト環境で動作するように設計された豊富な JSON 構成を通じて制御できます。 Web プロジェクト構成

カスタマイズ

開発する上で最も難しいことの 1 つは、これらのジェネリックフレームワークを拡張およびカスタマイズ可能にすることです。カスタマイズがどれほど重要かを知っているため、それを実現するためにさまざまな方法を利用しています。主なものは、独自のプラグインを作成することです。

テストの信頼性

テスト自動化における最大の問題の 1 つは、タイムアウトの処理と、現在ページ上にない可能性のある要素に対するアクションの実行です。BELLATRIX は、要素の検索と 要素の待機の複雑さを隠蔽します。さらに、要素に対してアクションまたはアサーションを実行すると、返された要素が確実に存在することを保証します。

テストの重要な部分はアサーションです。これは、いくつかの条件が満たされているかどうかを確認することです。このようなシナリオを処理するために、要素の Validate メソッドを作成しました。これらは、何らかの条件が発生するのを待つという全体の複雑さを内部的に処理します。

updateCart.ValidateIsDisabled();
totalSpan.ValidateInnerTextIs("120.00€", timeout: 30, sleepInterval: 2);
messageAlert.ValidateIsNotVisible();

複雑なコントロール

BELLATRIX は、HTML テーブルとグリッドの処理をはるかに簡単にする API を提供します HTML テーブルとグリッド

グリッドセルをアサートする例を次に示します

TestGrid.ForEachCell(cell => cell.AssertFontSize("14px"));
TestGrid.GetCell("Firstname", 1).ValidateInnerTextIs("Mary");
TestGrid.GetCell(0, 1).ValidateInnerTextIs("John");
TestGrid.GetCell<Employee>(cell => cell.PersonalEmail, 1).ValidateInnerTextIs("mary@hotmail.com");

両方のコンポーネントで実行できるさらに複雑なものがたくさんあるので、公式ドキュメントを確認してください。

統合

フレームワークを既存のツールとプロセスにシームレスに統合します。クラウドでテストを実行し、レポートソリューションでテスト結果を配布および公開します。おそらく、フレームワークの最も重要な差別化要因は、Jira/qTest/Allure/ReportPortal などの人気のあるツールや、AWS、Microsoft Azure などのクラウドとの多くの統合です。これらの統合はすべて、BELLATRIX プラグインアーキテクチャを活用しています。たとえば、qTest および AzureDevops での自動テストに基づいてテストケースを自動的に生成/更新したり、同様に Jira または Azure で再現手順を含む自動バグレポートを作成したりするためのプラグインがあります。

動的なテストケース

動的なテストケースは、BELLATRIX のユニークな機能であり、フレームワークは自動テストに基づいて、人気のあるテストケース管理システムでテストケースを自動的に生成します。タイトル、説明、およびその他の必要なプロパティを自動的に入力します。さらに、人間が読める手順と期待される結果を生成します。最も大きな利点は、テストで何を変更しても、自動生成されたテストケースを常に最新の状態に保つことです。これは、会社の技術者ではない人々がテストが何をしているかを確認できる優れた機能です。

PDF および画像の AI 検証

Azure Computer Vision は、混合言語と筆記スタイルを含む画像やドキュメントから印刷されたテキストと手書きテキストを抽出するために使用できるサービスです。対照的に、Azure Form Recognizer は、ドキュメントを理解する AI 搭載のドキュメント抽出サービスです。PDF のみに限定されません。複雑な画像からテキストを抽出するために同じ機能を使用できます。BELLATRIX には、AWS クラウドに基づく同様の機能が付属しています。

メールテスト

BELLATRIX は、メールテスト用のいくつかのユーティリティを提供します。このような統合が必要となるシナリオがいくつかあります。最初のシナリオは、一意のメール受信箱を作成し、それらを使用してさまざまなオンラインフォームを送信することに関連しています。後で、サービスを介してメールを読み取り、メールの内容を確認できます。通常の C# でコンテンツを検証するだけで十分な場合もあれば、ブラウザでメールコンテンツを操作する必要がある場合もあります。

他にも、資格情報やその他の秘密を安全に保存するためのクラウドシークレット管理など、多くの大規模エンタープライズプロジェクトで日常的に使用している統合が多数あります。 すべての BELLATRIX 統合

プロジェクトで BELLATRIX を使用すると、必要なプログラミング知識があっても、数ヶ月/数年の労力を節約できる可能性があります。これにより、プロジェクトの自動テストの作成にすばやく集中できます。通常、バグ修正と新機能を含む 4〜6 回のメジャーリリースが毎年あります。リリースノートの履歴を確認してください。フレームワークは 4000 を超える自動テストで完全にカバーされており、豊富なドキュメントを提供しています。すべてが機能していることを確認した場合にのみ、新しい機能ブランチをマージするようにしています。メジャーリリース後に問題が発生した場合、数日以内に迅速に修正されます。

機能リクエストまたはバグレポートについては、GitHub リポジトリに送信できます。開発した機能が CORE フレームワークに追加できると思われる場合、またはバグ修正がある場合は、PR を送信して議論し、場合によってはマージできるようにしてください。その他については、お問い合わせフォームからご連絡ください。