BELLATRIX 測試自動化框架,適用於 C# 和 JAVA
在過去十年中,Selenium 周圍湧現了大量的開源專案生態系統。Selenium 通常用於自動化 Web 應用程式以進行測試,但不包含測試框架。如今,Selenium 生態系統倡議試圖推廣由核心 Selenium 維護者以外的人員維護的熱門開源測試自動化框架。其中一個框架是 BELLATRIX,由 Anton Angelov 發明。它有兩個版本 - C# 和 Java。測試框架是一種抽象概念,其中通用程式碼為測試應用程式的不同方面(UI、API、安全性、效能和許多其他方面)提供通用功能(可以選擇性地覆蓋)。
BELLATRIX 測試自動化框架
BELLATRIX 的第一個版本於 2017 年 12 月 26 日問世。最初僅適用於 C#,但基於當時最新的 .NET Core 編寫,允許該框架在所有主要作業系統(跨平台)上使用。BELLATRIX 的一個巨大優勢是其跨技術就緒性。它允許您為不同的技術(例如 Web、行動裝置、桌面和 API)編寫測試。在 BELLATRIX 中,我們力求所有模組的 API 盡可能相同。
使用方法很簡單。我們建議將 BELLATRIX 克隆為 GIT 子模組。然後,任何客製化、測試和專案特定的外掛程式都應放置在 BELLATRIX 克隆儲存庫之外的專案中。這樣,您可以快速更新到最新版本。
讓我們研究一下使用 BELLATRIX 在 15 分鐘內建立您的第一個測試有多容易。範例將展示如何建立一個非常基本的測試登入網站

- 開啟 BellatrixTestFramework.sln

- 在 starthere 資料夾下,找到您偏好的專案:web、mobile、desktop、API

- 開啟 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 專案配置。
客製化
開發最困難的事情之一是允許這些通用框架可擴展和可客製化。了解客製化的重要性,我們利用不同的方法來實現它。主要方法是關於編寫您自己的外掛程式。
測試可靠性
測試自動化中最大的問題之一是處理逾時以及對可能目前不在頁面上的元素執行操作。BELLATRIX 隱藏了搜尋和等待元素的複雜性。此外,當您對元素執行操作或斷言時,我們保證一旦傳回,它就會存在。
您的測試的重要部分是斷言 - 檢查是否滿足某些條件。為了處理這種情況,我們建立了元素 Validate 方法。它們在內部處理等待某些條件發生的所有複雜性。
updateCart.ValidateIsDisabled();
totalSpan.ValidateInnerTextIs("120.00€", timeout: 30, sleepInterval: 2);
messageAlert.ValidateIsNotVisible();
複雜控制項
BELLATRIX 提供了 API,使處理 HTML 表格和網格變得更加容易 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 中的一項獨特功能,該框架會根據您的自動化測試在熱門的測試案例管理系統中自動產生測試案例。它會自動填入標題、描述和其他必要的屬性。此外,它將產生人類可讀的步驟和預期結果。最重要的好處是,無論您在測試中變更什麼,它都會隨著時間的推移與您的自動產生測試案例保持同步。這是一項出色的功能,可讓您公司非技術人員了解您的測試正在做什麼。
AI 驗證 PDF 和影像
Azure Computer Vision 是一項可用於從影像和文件中提取印刷體和手寫文字的服務,這些影像和文件具有混合語言和書寫風格。相比之下,Azure Form Recognizer 是一項由 AI 驅動的文件提取服務,可以理解您的文件。您不僅限於 PDF。您可以將相同的功能用於從複雜影像中提取文字。BELLATRIX 附帶基於 AWS 雲端的類似功能。
電子郵件測試
BELLATRIX 提供了一些用於電子郵件測試的實用程式。在某些情況下,我們需要這種整合。第一個與建立唯一的電子郵件收件匣並使用它們提交各種線上表單有關。稍後,我們可以透過服務讀取電子郵件並檢查電子郵件的內容。驗證內容透過常規 C# 可能就足夠了,或者在某些情況下,我們可能需要在瀏覽器中與電子郵件內容互動。
在許多大型企業專案中,我們每天都使用許多其他整合,例如用於安全儲存憑證和其他機密的雲端機密管理。所有 BELLATRIX 整合
在您的專案中使用 BELLATRIX 甚至可以節省數月/數年的精力,即使您具備所需的程式設計知識。這樣,您可以快速專注於為您的專案編寫自動化測試。通常,每年有 4-6 個主要版本發布,包括所有錯誤修復和新功能。查看我們的 版本說明歷史記錄。該框架完全涵蓋了 4000 多個自動化測試,並提供了豐富的文件。我們確保僅在確定一切正常運作時才合併新功能分支。如果主要版本發布後出現任何問題,也會在幾天內快速修復。
對於功能請求或錯誤報告,您可以將它們提交到我們的 GitHub 儲存庫。如果您認為您開發的功能可以新增到 CORE 框架中,或者您有錯誤修復,請提交 PR,以便我們可以討論並可能合併它。對於其他任何事情,您可以透過我們的 聯絡我們表單 與我們聯絡。




