Playwright 自動化腳本無寫程式碼使用方式 (四) - test function
前言最近開始使用 Playwright 進行自動化測試,順便把一些學習筆記記錄下來,這篇會介紹如何使用 test function。
一、 運用 test describe在 Playwright 中,test.describe 是一個用來分組測試的功能。它的主要作用是將相關的測試用例集合在一起,使得測試結構更清晰,並且可以更方便地管理和運行這些測試。以下是 test.describe 的一些具體功能和應用:
1-1 test.describe 作用
分組測試範例/情境 : 允許你將相關的測試用例分組在一起,這樣可以使測試代碼更具結構性和可讀性。例如,你可以將所有針對某個特定功能的測試用例放在同一個 describe 區塊中。
設置共享的前置條件和後置條件 : 在 test.describe 區塊中,你可以設置共享的 beforeAll、beforeEach、afterAll 和 afterEach hook,用於在測試運行前後執行一些初始化或清理操作。這樣可以避免在每個測試用例中重複相同的代碼
提高測試報告的可讀性 : test.describe 可以幫助我們將測試用例分組 ...
C# Class與Struct差異(使用LinqPad)
近期要學習 C# reocrd,因此想要先了解一下 Class 與 Struct 的差異,以下是筆記。
Class 與 Struct 差異在程式設計中,Class(類別)和 Struct(結構)是兩種用來定義資料型別的基本構造。了解兩者之間的差異有助於在不同的情境下選擇適當的資料型別。以下將從多個角度來探討它們的不同之處。
1. 基本概念與核心差異
類別 (Class):
參考型別 (Reference Type)
使用堆積記憶體 (Heap Memory)
可以繼承 (支持繼承)
可包含複雜物件與方法
結構 (Struct):
實值型別 (Value Type)
使用堆疊記憶體 (Stack Memory)
不可以繼承 (不支持繼承)
適合較簡單的資料結構
2. 記憶體分配
類別 (Class):
透過 new 關鍵字創建實例,分配在堆積上。
擁有較長的生命周期,直到沒有引用指向它們時才會被垃圾回收機制清理。
結構 (Struct):
可以直接創建實例,不需要 new 關鍵字,分配在堆疊上。
生命週期較短,當超出作用域時就會被清理。
2-1 創建實例變化 ...
【Azure】有一種功能叫做 Microsoft Entra (新增使用者或來賓)
前言最近在身旁的同事們說 Micorsoft 沒有製作創建來賓跟使用者的功能,可以讓 DevOps 其他來賓或使用者可以自己創建,這樣就不用一直找管理員來幫忙創建。因此,我要幫微軟澄清這個問題,其實是有的,只是在不起眼的地方而已。
Microsoft EntraMicrosoft Entra 是一個為企業提供的服務,可以讓企業的使用者自己創建來賓或使用者,而不用一直找管理員來幫忙創建。這樣可以節省管理員的時間,也可以讓使用者自己管理自己的帳號。
入口 : https://entra.microsoft.com/
一、免費版限制在 Microsoft Entra ID(以前稱為 Azure Active Directory)免費版中,您可以創建的使用者數量是有限的。以下是與使用者相關的主要限制和詳細資訊:
1-1 使用者數量限制
最大使用者數量:
免費版:單個租戶中最多可以創建 50,000 個使用者和資源4811。
如果需要更多資源,您可以考慮升級到付費版本(如 Premium P1 或 P2),這些版本提供更高的資源上限及更多的功能。
1-2 免費版的其他限制除了使用者數 ...
【Azure】Pipeline-使用nodejs遇到的問題
前言為了回顧之前保留的技術避免再次遺忘,這次要把npm build 動作也記錄在當中。
一、切換node版本近期需要加入DevOps 中Pipeline 來做自動化部屬,但是發現在Pipeline 中的node版本是8.10.0,而我們的專案需要使用node 14.15.1,所以需要在Pipeline 中切換node版本。
備註 : 這段很多網站上有一些做法會無法正常切換,依據下方作法可以正常切換node版本。
解決方式加入版本時候,需要加入【Node.Js tools install】才會把node版本加入到Pipeline 中,如下圖所示。
二、執行npm腳本解決方式pipeline 中的npm build 動作,如果使用 npm run build 會發生錯誤,所以需要使用npm run-script build 來執行。
因為本章是使用 Angular 14 之前版本可以支援 –prod 參數,所以可以使用下方指令來執行。
1run-script build --prod
Playwright 自動化腳本無寫程式碼使用方式 (三) - Inspector 功能
前言上篇已經教導 Playwright 基礎使用方式,包含 VS Code 內的功能,接下來會簡單介紹 Inspector 功能。
一、Inspector 功能Playwright Inspector 是一個 GUI 工具,專門用來幫助開發人員調試 Playwright 測試。它提供了以下功能
步過測試: 可以逐步執行測試,查看每一步的執行情況。
即時編輯locator: 允許開發人員在調試過程中即時編輯locator。
選擇target: 可以直接選擇頁面上的target,有不同語言產生內容。
查看行為日誌: 顯示每個操作的行為日誌,幫助分析和辨識問題。
1-1 Inspector 開啟方式開啟方式有兩種,一種是透過 CLI 開啟,另一種是透過 VS Code 開啟。
二、 Inspector 介面/使用方式這邊功能其實與上一章節的功能相同,不同處是他可以改 Target 更改語言,並且可以即時編輯 Locator。
2-1 Target 選擇以下為 Inspector Target 選擇語言功能,可以選擇這幾些語言產生內容。
2-2 Debug ToolsIns ...
Playwright 自動化腳本無寫程式碼使用方式 (二) - 測試總管功能
前言上次只有提到 Playwright 開啟專案、錄製部分,這邊來說一下須要用到幾個功能,這樣可以讓不會寫程式碼的人也可以使用 Playwright 進行自動化測試。
一、測試總管1-1 Show Browser/Show Trace Viewer 差異啟動方式在 Test Explorer 裡面執行隨便幾個功能就會自動跑出以下功能。若不要顯示瀏覽器以及Trace Viewer 可以直接把取消勾選即可。
Show Browser : 這個功能是可以看到瀏覽器的畫面,但是這個功能是不會顯示程式碼的。
Show Trace Viewer : 這個功能是可以看到程式碼的執行過程,可以看到程式碼的執行過程。Ex : 紀錄,錯誤訊息、Snapshots 等等。
1-2 Show Trace Viewer基本上 Show Trace Viewer 可以看到很多不錯的內容,從下圖可以看到幾個重要的部分。
Snapshots : 最上面可以看到 Playwright 每一個步驟的截圖,包含動作顏色可以透過這個功能來識別。
Actions Log : 左邊是將自動化的步驟紀錄下來,可以 ...
Playwright 自動化腳本無寫程式碼使用方式 (一) - 安裝/使用方式
前言最近被公司推出來講解 Playwright 自動化腳本,但是我發現有些人不會寫程式碼,所以我想要分享一下 Playwright 自動化腳本無寫程式碼使用方式,這樣可以讓不會寫程式碼的人也可以使用 Playwright 進行自動化測試。
Playwright 自動化腳本
跨平台支持 : Playwright 支持在 Windows、Linux 和 macOS 平台上運行測試,無論是本地還是在持續集成(CI)環境中,都可以進行無頭或有頭模式的測試。
自動等待: Playwright 在執行操作前會自動等待元素變得可操作,並且擁有豐富的內省事件。這一特性消除了使用人工超時的需求,從而減少了 flaky tests 的發生。
網頁優先斷言: 這些斷言專為動態網頁設計,在進行檢查時會自動重試,直到符合必要條件。
跟蹤和重試策略 : Playwright 允許配置測試的重試策略,並捕捉執行過程中的追踪、視頻和屏幕截圖,以便更好的調試和排除故障。
瀏覽器支援 : 支援所有現代渲染引擎,包括 Chromium、WebKit 和 Firefox。能在主流瀏覽器如 Chrome、Edge、Firef ...
ASP NET Core Module (ANCM) 運作方式
ANCM 是什麼?ASP.NET Core 模組 (ANCM) 是一個本機 IIS 模組,用於在 IIS 上托管 ASP.NET Core 應用程序。它允許 IIS 作為正向代理,用來將 web 請求轉發給後端的 ASP.NET Core 應用程序。
ANCM 的運作方式ANCM 可以透過兩種主要的模型來運行 ASP.NET Core 應用程序:
In-process hosting model:在這種模式下,ASP.NET Core 應用程序運行在 IIS 的工作進程(w3wp.exe)內。這樣可以減少數據傳輸的開銷,提升性能。
Out-of-process hosting model:這種模式下,IIS 會將 HTTP 請求轉發給後端運行的 Kestrel 服務器(ASP.NET Core 的內置 Web 服務器)。這種方式具有更高的靈活性,允許後端進行更獨立的配置和管理。
此外,ANCM 還負責管理 ASP.NET Core 應用程序的進程,包括啟動、停止和監控應用程序的運行狀態。
ANCM 的優點
高性能:預設採用進程內托管模型,有助於提升應用程序的性能和診斷能力。
進 ...
【Azure】使用Redmine 傳入Bords
前言之前友人有提過 Redmine 有 API 功能可以直傳入給 Azure DevOps ,因此我稍微試試看如何使用 Redmine 給 Azure DevOps。
Redmine API一、取得API Key點選我的帳戶 > API 存取金鑰 > 顯示,打開後複製這組金鑰。
二、簡單實作 - 取得當前專案的Issue2-1 安裝 NuGet 套件1dotnet add package redmine-api --version 4.6.5
引用套件
12using Redmine.Net.Api;using Redmine.Net.Api.Types;
2-2 程式碼因為這邊專案資料比較多,所以就只抓其中幾筆資料。
123456789// Redmine 設定string host = "host";string apiKey = "apiKey";var redmineManager = new RedmineManager(host, apiKey);foreach (var issue in issues){ ...
【Docker】使用VSC部屬minimal api
前言近期因為有上課需求,剛好有提到 docker 部屬部分稍微研究一下,發現VS Code擴充套件還不錯用,所以這邊簡單紀錄一下如何使用 Visual Studio Code 部屬 minimal api 到 docker 中。
必要工具這邊我使用 windows 環境,如果沒有下載 docker desktop 可以先下載,這邊不會特別教學,可以參考官網下載。
Docker Desktop
Visual Studio Code
VS Code Docker
相關連結 : Docker in Visual Studio Code
這套件可以讓你在 VS Code 中直接操作 docker ,不需要再開啟 terminal 來操作,而且也幫忙把 container 與 image 顯示出來,操作方面相當方便。
如果有顯示 failed to connect to docker daemon 之類訊息,請確認 docker hub 有沒有打開。主要原因是 docker 服務會透過 Docker Desktop 來打開,若要使用其方式打開可以參考 dockercli.exe 方式開啟。 ...