1. 程式人生 > 實用技巧 >EasyRepro與測試自動化( 一) 概覽

EasyRepro與測試自動化( 一) 概覽

EasyRepro是一個框架,允許在特定的Dynamics 365組織上執行自動化UI測試。你可以使用它來自動化冒煙測試、迴歸測試和負載測試等。該框架是由開源專案Selenium構建的Selenium在業界的各種專案和應用程式中有著廣泛應用。

整個EasyRepro框架都是開源的,可在GitHub上獲得。 本文的目的是逐步介紹EasyRepro框架的設定。 本文假設讀者已經掌握某些概念,例如如何在Visual Studio中使用單元測試,如何下載NuGet軟體包以及從GitHub克隆repo。

本文連結:https://www.cnblogs.com/hhelibeb/p/13556244.html

英文原文:Test Automation and EasyRepro: 01 - Overview and Getting Started

現在,你已經對EasyRepro的用處有了基本的瞭解,可能想開始使用它了。

啟動和執行EasyRepro非常簡單,因為該框架在設計時就考慮了靈活性和敏捷性。 但是,像使用其他實用程式一樣,要開始使用EasyRepro,需要學習一些東西和克服一些障礙。 讓我們從依賴關係開始!

準備

依賴

第一個依賴項涉及EasyRepro程式集和Selenium框架。

第二個涉及.NET,特別是.NET框架(可以使用.NET核心並將其作為功能分支包含在內!)。

最後,根據你使用框架的方式,你會希望有一個測試框架來設計,構建和執行單元測試。

選擇如何使用EasyRepro框架

使用EasyRepro框架有兩種方法,一種是直接使用NuGet軟體包,另一種是從GitHub repo克隆或下載。具體選擇主要取決於你希望瞭解還是擴充套件框架。 直接使用原始碼可以探索EasyRepro如何與Dynamics 365進行互動。但是,如果是為了擴充套件框架,使用NuGet軟體包並在頂部進行構建的方法可以提高靈活性。

使用NuGet軟體包管理器下載

EasyRepro框架入門的最快方法是直接將NuGet包引用新增到你的單元測試專案。 可以通過在NuGet軟體包管理器命令列中執行以下命令來執行此操作:

建立單元測試專案,然後導航到NuGet軟體包管理器CLI。 使用Install-Package命令獲取PowerApps.UIAutomation.Api軟體包,如下面的命令所示(v9.0.2是撰寫本文時的最新版本,請參閱

此連結以獲取任何更新:

Install-Package PowerApps.UIAutomation.Api -Version 9.0.2

這將立刻提供使用框架所需的引用。 安裝後,應該將以下軟體包下載到單元測試專案中:

完成後,所需的程式集就可以用了,因此可以開始使用EasyRepro框架。需要一些設定才能讓框架連線到Dynamics 365組織,如果你是該框架的新手,可能不瞭解設定選項的意義。 如果是這樣,建議你看下一部分,該部分將啟動EasyRepro框架的克隆,包括大量的示例單元測試,這些示例單元測試顯示瞭如何與框架進行互動。

從Github克隆

我認為,如果你是該框架的新手,這是開始熟悉其工作原理以及如何構建各種單元測試的最佳方法。 如果你想了解EasyRepro是如何基於Selenium框架構建以及如何擴充套件的,這也是正確路徑。

首先,請訪問位於https://github.com/Microsoft/EasyRepro的官方EasyRepro專案。 開啟後,需要檢視分支。 分支採用GitFlow方法構建,因此,如果您要使用Dynamics 365的最新版本,請檢視releases / *分支。 對於最新的開發,我建議develop分支。

首先從本地克隆專案開始,以檢查內容並觀察框架之間如何進行互動。

下面的gif顯示了克隆到Azure DevOps的功能,當然也支援直接從GitHub本地克隆。

從Azure DevOps本地克隆

我強烈建議的方式是克隆到Azure DevOps專案,然後在本地對其進行克隆。 這將使我們能夠自動化CI / CD。具體細節將在另一篇文章中介紹。 如果您決定從GitHub克隆到Azure DevOps,則下一步是在本地克隆。

下面的gif顯示了從Azure DevOps儲存庫本地克隆。

檢視EasyRepro原始碼專案

EasyRepro原始碼包括一個Visual Studio解決方案,其中包含三個類庫專案,一個用於示例單元測試。

統一介面使用的專案是Microsoft.Dynamics365.UIAutomation.Api.UCI和Microsoft.Dynamics365.UIAutomation.Api.Browser。

EasyRepro和單元測試之間的大多數用法將通過Microsoft.Dynamics365.UIAutomation.Api.UCI專案中的物件和命令進行。 該專案包含與Dynamics Unified Interface模組和表單進行互動的物件。 Microsoft.Dynamics365.UIAutomation.Api.Browser專案僅限於與瀏覽器驅動程式和其他內部元件進行互動。

單元測試示例

檢視開啟Account示例單元測試

單元測試專案Microsoft.Dynamics365.UIAutomation.Sample包含數百個單元測試,這些單元測試可以作為一個很好的學習工具,以更好地瞭解如何使用EasyRepro框架。 強烈建議在開始在測試策略中使用框架前探索這些測試。 本質上,許多常規任務和特定任務已經包含在其中,並且可以根據你的需求進行轉換。 示例包括開啟表單(OpenRecord),導航(OpenSubArea)和搜尋記錄(Search),建立和更新記錄(Save)。

在本練習中,我們將開啟UCITestOpenActiveAccount單元測試,您可以使用Visual Studio中的“查詢”(Ctrl + F)來找到它。 找到後,你應該會看到類似以下內容的內容:

跟隨單元測試中的步驟,你可以看到它旨在執行基本的使用者操作來讀取Account。 我們首先登入一個組織(登入)。 然後,我們繼續開啟標題為“ Sales”(OpenApp)的UCI應用程式。 進入組織後,我們開啟“Account”子區域(OpenSubArea),然後在“快速查詢”檢視(“搜尋”)中搜索“Adventure”。 最後,我們在快速查詢檢視結果中開啟第一個記錄(OpenRecord(0))。

探索測試設定

在當前的樣本單元測試專案中,在兩個位置測試設定:位於專案根目錄中的app.config檔案和位於所有測試中的類物件TestSettings.cs檔案。
應用程式配置檔案
app.config檔案包括字串配置,這些字串告訴測試要登入的組織,登入的使用者以及其他設定,例如執行哪種瀏覽器以及如何執行測試。

應用配置檔案設定

PropertyDescription
OnlineUsername String. 測試使用者
OnlinePassword String. 測試使用者密碼Used to represent the test user password.
OnlineCrmUrl String. 代表組織Used to represent the organization (例如 https://<your org>.crm.dynamics.com/main.aspx)
AzureKey String. GUID 代表 Azure Application Insights Instrumentation Key.
BrowserType String. 列舉型別 Microsoft.Dynamics365.UIAutomation.Browser.BrowserType.
RemoteBrowserType String.列舉型別 Microsoft.Dynamics365.UIAutomation.Browser.BrowserType. 只有BrowserType是Remote的時候會用.
RemoteHubServer String. Selenium 伺服器遠端 hub URL. 只有BrowserType是Remote的時候會用.

在本文中,我們將把BrowserType設定為“ Chrome”,從而關注通過Google Chrome瀏覽器在本地簡單執行測試。

在app.config檔案中,還有三個我們需要修改的設定,分別稱為OnlineUsername,OnlinePassword和OnlineCrmUrl。 就我而言,我正在使用試用版,如下所示,我正在使用“ [email protected]”使用者名稱和“ https:// <orgname> .crm.dynamics.com / main.aspx”的URL

設定前,

設定後,

測試設定和BrowserOptions物件

另一個關鍵物件是TestSettings類和其中的各種屬性。 該類告訴單元測試如何渲染瀏覽器、瀏覽器驅動程式的位置以及其他屬性。 TestSettings類將需要包含在單元測試專案中,並例項化BrowserOptions物件,如下所示:

在下一篇文章中,我們將探討這些設定如何改變你使用單元測試的體驗,以及有哪些可用的選項。

總結

根據本文,你應該可以立即在Dynamics 365組織中開始使用EasyRepro。 後續文章將介紹設計和除錯單元測試、擴充套件EasyRepro程式碼、使用Azure DevOps和其他主題。如有任何疑問,請評論,謝謝!

Easy Repro