Ryota.VL

Ryota.VL

自動化測試 - Page Object Pattern 的使用與範例

自動化測試 - Page Object Pattern 的使用與範例

Page Object 是一個撰寫 UI 自動化測試,經常使用的一種設計模式 (Design Pattern),透過將網頁元素抽象化成元件的實作方式,讓你可以更有效的管理和組織你的測試程式碼,讓我們看看下面這個例子。 元件介紹 * Login Test 和 Search Test 表示針對 Login 和 Search 頁面的測試,在登入相關的測試案例之中,我們需要執行登入的相關動作。 * LoginPage / HomePage / Search Page 都表示各頁面的動作,以登入頁面為例,在登入頁面上,可以按下登入按鈕或是回到首頁按鈕。 程式碼實作 class LoginPage: def init(self, page): self.page = page def login(self): self.page.fill("#username&
Ryota.VL
自動化測試 - Screenplay Pattern 的介紹與應用

自動化測試 - Screenplay Pattern 的介紹與應用

Screenplay Pattern 是一種設計模式,用來描述使用者和系統之間的互動。在這個模式中,使用者視為 Actor,動作則是為 (Task),透過將這些場景 (Scenario) 的動作抽象化成「任務」和「角色」,可以讓你的自動化測試的腳本更具有可讀性和維護性。 定義 Actor 類別 角色 (Actors) 是測試的核心,用來執行特定的動作來完成測試的目的。 # actors.py from playwright.sync_api import Page class Actor: def __init__(self, name: str, page: Page): self.name = name self.page = page def attempts_to(self,
Ryota.VL
自動化測試 - Repository Pattern 的使用與介紹

自動化測試 - Repository Pattern 的使用與介紹

在自動化測試案例中,往往第一步是為這些測試案例準備測試資料。測試資料的來源可能來自於某個檔案、某個資料庫或呼叫某支 API 請求的結果。使用 Repository 設計模式可以將資料的操作抽象化成建立(Create)、讀取(Read)、更新(Update)、刪除(Delete),而不會因為資料來源的實體不同而有不同的操作函式。 User 使用者資料的表示將是一個名為 User 的資料類別,其中包含一些個人資訊,例如電子郵件、使用者名稱。 import dataclasses @dataclasses.dataclass class User: email: str = "" username: str = "" Generic Repository Design Pattern Repository 設計模式的概念是將資料存取邏輯隱藏在業務程式碼之外。隱藏細節使程式碼更易於閱讀、維護。對於自動化測試框架,它使您甚至可以輕鬆地更改資料存取技術。通過抽象層,程式碼閱讀者不需要知道測試資料來自何處。
Ryota.VL