iT邦幫忙

playwright相關文章
共有 44 則文章
鐵人賽 自我挑戰組 DAY 9

技術 Day 9 - Test Runner 基礎:describe / test / hooks 與 timeout 設定

從 Day 5 到 Day 8,我們花了不少篇幅在討論「如何準確抓到畫面上的元素」。今天我們要來看看 Playwright Test 提供了哪些好用的控制項。...

鐵人賽 自我挑戰組 DAY 8

技術 Day 8 - 進階 Locator:Role-based、Chaining、Filtering

Day 5 我們認識了 Playwright 的幾種基本定位方法(getByRole、getByText、getByLabel、getByTestId),也在...

鐵人賽 自我挑戰組 DAY 7

技術 Day 7 - 緩衝日①:後台 CRUD 流程實戰演練

經過前面 6 天的學習,今天我們會用目前學到的觀念(Playwright 基礎架構、Locator 定位策略、POM 頁面物件模式),挑戰一個貼近真實工作情境的...

鐵人賽 自我挑戰組 DAY 6

技術 Day 6 - POM 基礎:把登入包裝成 LoginPage,重構 Day 2 的測試

在 Day 5 的測試程式中我們用 beforeEach 把重複的登入邏輯搬出測試本身,但如果我們開啟了另一個新的測試檔案,同樣的登入程式碼是不是又要再複製貼上...

鐵人賽 自我挑戰組 DAY 5

技術 Day 5 - Locator 基礎入門:選取元素的策略與實戰

Day 4 我們體驗了 Playwright 內建的 Codegen 錄製工具,看到它能在我們操作畫面的同時,自動生成 page.getByRole(...)...

鐵人賽 自我挑戰組 DAY 4

技術 Day4 - Codegen 初體驗: 用錄的也能寫測試?

前面我們手刻了一支登入測試,一行一行寫 page.goto、page.fill、page.click。除了自己手寫這些測試程式碼外,Playwright 其實有...

鐵人賽 自我挑戰組 DAY 3

技術 Day 3 - Playwright 設計架構解析

Day 2 我們裝好環境、寫了第一支登入的測試,程式碼裡出現了 Page 這個參數,也在 npx playwright test 執行時看到瀏覽器自動被打開。在...

鐵人賽 自我挑戰組 DAY 2

技術 Day 2 - Playwright環境建置跟撰寫第一支測試

今天我們要把 Playwright 安裝起來,確認環境沒問題後,就來撰寫第一支測試。 前置需求 開始之前先確認電腦有 Node.js(建議 LTS 版本,18...

鐵人賽 自我挑戰組 DAY 1

技術 Day 1 - 起跑:一起來學習用Playwright做端對端測試吧

這次選定的主題是 Playwright 端對端測試(E2E Testing),主要是工作上剛好碰到,而且之前因為工作忙,一直沒什麼機會把之前學得比較零散的基礎整...

技術 我把 iThome 鐵人賽自動發文流程開源了

安安~我是小艾~ 參加鐵人賽最怕的事情之一,就是文章寫好了,卻因為工作忙碌或忘記時間,沒有在當天發布。我自己今年參加的比賽,20天的時候中斷了...現在新的系列...

My Project 我把 iThome 鐵人賽自動發文流程開源了

安安~我是小艾~ 參加鐵人賽最怕的事情之一,就是文章寫好了,卻因為工作忙碌或忘記時間,沒有在當天發布。我自己今年參加的比賽,20天的時候中斷了...現在新的系列...

鐵人賽 Software Development DAY 28

技術 Day 28:VIP 通行證 (二)|藉由 storageState 實現秒速進入戰場:進階應用

上一篇運用 storageState() 成功從正常登入流程拿到驗證資料,並在後續的測試當中重複使用,如此就不必在每次的測試之前重複再走一遍登入流程。接著,要更...

鐵人賽 Software Development DAY 27

技術 Day 27:VIP 通行證 (一)|藉由 storageState 實現秒速進入戰場:基礎應用

如果測試的頁面需要登入,每次執行測試時都會重新進行登入流程。這是因為 Playwright 在每個測試中都會啟動全新的無痕瀏覽器環境,導致登入狀態無法像一般瀏覽...

鐵人賽 Software Development DAY 26

技術 Day 26:撰寫英雄史詩|生成華麗的戰報 Allure Report

測試報告是測試裡非常重要的一環,讓我們的產出變得具象化,就像是辛苦的戰役過後,清楚地記錄所有過程、勝負的戰報,讓團隊能一目了然地看到成果與問題。 Test R...

鐵人賽 Software Development DAY 25

技術 Day 25:幽靈模式 On / Off|Headless 與 Headed 模式

相較於直接使用Playwright 的 VSCode Extension - Playwright Test for VSCode 或是 debug 模式,在...

鐵人賽 Software Development DAY 24

技術 Day 24:打造移動基地(二)|用 Dockerfile 建立測試環境

昨天我們使用指令 docker run 起好 Docker 環境,再輸入指令在 docker 容器內執行 Playwright 測試,但每次都得重新輸入一長串指...

鐵人賽 Software Development DAY 23

技術 Day 23:打造移動基地(一)|用 Docker 建立測試環境

雖然我們已經讓測試可以成功地在 Github / Gitlab 上運行,但是在不同專案、不同環境,或是不同機器上,測試結果可能大相逕庭,如何確保測試環境的一致性...

鐵人賽 Software Development DAY 22

技術 Day 22:自動化基地(二)|在 GitLab 上建立 CI/CD 流程

上一篇已經嘗試了在 Github Aictions 上建立 CI/CD 流程,若團隊以 GitLab 作為主要的開發與協作平台,我們同樣可以打造對應的自動化流程...

鐵人賽 Software Development DAY 20

技術 Day 20:撰寫你自己的魔導書|Page Object Models 設計模式

歷經一連串初階副本任務,我們已經習得不少進階的實戰技巧。接著,將迎來新的挑戰,認識 Page Object Models (以下簡稱 POM)。透過建立專屬的...

鐵人賽 Software Development DAY 18

技術 Day 18:拆除不定時炸彈|用 expect.poll() 精準等待時機

上一篇我們學會了如何處理對話框,由於不曉得對話框何時出現,所以必須設置一個監聽器來處理,接著我們要來聊聊另一個非常類似的狀況:不知道預期的結果需要等多久才會出現...

鐵人賽 Software Development DAY 15

技術 Day 15:破解隱形敵人與敵軍陣列|如何鎖定沒有「真名」的怪物

上一篇我們已經學會運用序列以及篩選的方式來準確定位,但除此之外,我們還可能遇到畫面上沒有文字(無法用 getByRole 或 getByText),也沒有 la...

鐵人賽 Software Development DAY 16

技術 Day 16:獻上素材與獲取秘方|處理檔案的上傳與下載

前兩篇我們解鎖了定位「重複元素」以及「隱形元素」的技能,接著,下一個任務,我們要解鎖的技能是「檔案的上傳與下載」,這也是一個在使用網頁時很常見也很實用的操作行為...

鐵人賽 Software Development DAY 14

技術 Day 14:群體控制技|表格中重複怪物的定位技巧

在真實的測試戰場裡,怪物(元素)很少會乖乖只出現一個。更多時候,你會面對一大群長得一模一樣的敵人:十幾個按鈕、數百個表格列、成群結隊的清單項目。 思考一下,我們...

鐵人賽 Software Development DAY 13

技術 Day 13:影分身之術|用參數化測試 Parameterized Tests 一次挑戰多個敵人

上一篇我們成功地運用 Hooks 收納重複執行的程式碼,只需編寫一次就可重複使用,大大提升了可讀性,但是,各位玩家們請仔細看一下 describe 內的測試:...

鐵人賽 Software Development DAY 7

技術 Day 7: 30天打造SaaS產品後端篇-測試策略與品質保證架構

前情提要 昨天我們建立了完整的套件打包策略,為不同類型的套件選擇了最適合的打包工具。今天我們要建立一個全面的測試策略,確保我們的 Monorepo 中每個套件都...

鐵人賽 Software Development DAY 12

技術 Day 12:戰鬥儀式|Hooks:before/describe/after 的佈置

上一篇在認識 Timeout 時提到 Hooks,Hooks 是測試框架裡非常常見的生命週期輔助方法,大部份的測試框架命名都大同小異,我們開始來認識 Playw...

鐵人賽 Software Development DAY 11

技術 Day 11:時間管理|駕馭 Playwright 的 Timeouts 結界

前一篇我們理解了 Playwright 的 async / await 機制如何讓測試能夠一步步按照順序執行,現在來談談 Playwright 另一個執行測試時...

鐵人賽 Software Development DAY 10

技術 Day 10:秩序的守護者|async / await 同步你與瀏覽器的時空

介紹到這邊,相信細心的玩家已經發現了,測試案例必須以 async 宣告,而每一條操作、斷言,前方都必須加上 await,這就是 Playwright 非常重要的...

鐵人賽 Software Development DAY 9

技術 Day 09:斷言擴展術|打造你的專屬 Playwright Matcher

前兩篇介紹了斷言的基本應用以及進階技巧,Playwright 斷言的設計與特性,結合各式各樣的 matcher,已經足以應付大部分的測試場景,然而,當我們發現測...

鐵人賽 Software Development DAY 8

技術 Day 08:軍火庫升級|精通正規式、條件式與多重斷言的進階兵器

上一篇認識了 Assertion(斷言) 的基本應用,except() 自動等待的設計結合多樣性的 matcher 讓我們可以在多變的網路戰場中應對自如,但是,...