引用自playwright新聞稿 這是前幾天微軟發布的playwright api for python的版本, 主要用在做網頁自動化 那就來玩玩看 使...
相信有不少Go 愛好者可能跟筆者有類似的疑問, 這麼好用的工具難道只有node.js 跟python 版本嗎? 筆者找了下, 發現在python 版本發布前半個...
說到網頁自動化測試,首先不得不提已有超過 15 年歷史的 Selenium,作為自動化測試的先驅,發展成熟,支援多種語言,也有眾多第三方工具可以使用,是自動化測...
接下來讓我們進行 e2e 測試吧!( •̀ ω •́ )✧ e2e 測試和單元測試差在哪?e2e 測試會著重於在接近真實環境下進行測試,透過 Playwrigh...
選定武器之後,我們就準備要來開疆闢地了!...等等! 雖然已經決定好要使用 Playwright,但 Playwright 支援多語言,到底要用哪個語言來編寫測...
測試報告是測試裡非常重要的一環,讓我們的產出變得具象化,就像是辛苦的戰役過後,清楚地記錄所有過程、勝負的戰報,讓團隊能一目了然地看到成果與問題。 Test R...
安裝好 Playwright 之後,我們先來認識一下要如何執行測試吧!Playwright 提供多種執行測試的方式,除了可以檢查執行結果,觀察執行過程,也能用來...
相較於直接使用Playwright 的 VSCode Extension - Playwright Test for VSCode 或是 debug 模式,在...
去年,首次踏進軟體業,面對陌生的領域,怎麼也沒想到,最後會拿起 Playwright 之劍,在 E2E 測試領域披荊斬棘。 這是怎麼發生的呢?一切都還得從公司的...
以下這段是 Playwright 安裝好後的範例: import { test, expect } from '@playwright/test'; test...
雖然我們已經讓測試可以成功地在 Github / Gitlab 上運行,但是在不同專案、不同環境,或是不同機器上,測試結果可能大相逕庭,如何確保測試環境的一致性...
定位元素 + 模擬操作,已經能夠真實呈現使用者的操作流程,不過,測試最重要的核心價值在於驗證結果是否與預期相符,因此,就必須談到測試當中非常重要的一環:Asse...
讓我們也把 Web Component 頁面加上一點自動化測試吧!(/≧▽≦)/ 第一步老樣子就是來新增測試檔案。◝( •ω• )◟ e2e\web-compo...
上一篇認識了定位元素的方法,定位到元素之後,那麼要如何模擬使用者在網頁上的行為呢?這時候就必須加上 Actions 了,Playwright 提供完整的 Act...
前一篇我們理解了 Playwright 的 async / await 機制如何讓測試能夠一步步按照順序執行,現在來談談 Playwright 另一個執行測試時...
第一步老樣子就是來新增測試檔案。◝( •ω• )◟ e2e\components\wrapper-physics.spec.ts import { test,...
這個章節運行測試的方式稍微不同,由於 babylon.js 套件較為龐大,如果在 dev 模式下運行第一次開啟頁面會等很久,導致測試一直超時。 所以這裡我們改成...
第一步老樣子就是來新增測試檔案。◝( •ω• )◟ e2e\components\text-characters-transition.spec.ts impo...
上一篇已經嘗試了在 Github Aictions 上建立 CI/CD 流程,若團隊以 GitLab 作為主要的開發與協作平台,我們同樣可以打造對應的自動化流程...
昨天我們使用指令 docker run 起好 Docker 環境,再輸入指令在 docker 容器內執行 Playwright 測試,但每次都得重新輸入一長串指...
歷經一連串初階副本任務,我們已經習得不少進階的實戰技巧。接著,將迎來新的挑戰,認識 Page Object Models (以下簡稱 POM)。透過建立專屬的...
前兩篇介紹了斷言的基本應用以及進階技巧,Playwright 斷言的設計與特性,結合各式各樣的 matcher,已經足以應付大部分的測試場景,然而,當我們發現測...
如果測試的頁面需要登入,每次執行測試時都會重新進行登入流程。這是因為 Playwright 在每個測試中都會啟動全新的無痕瀏覽器環境,導致登入狀態無法像一般瀏覽...
介紹到這邊,相信細心的玩家已經發現了,測試案例必須以 async 宣告,而每一條操作、斷言,前方都必須加上 await,這就是 Playwright 非常重要的...
上一篇運用 storageState() 成功從正常登入流程拿到驗證資料,並在後續的測試當中重複使用,如此就不必在每次的測試之前重複再走一遍登入流程。接著,要更...
前情提要 昨天我們建立了完整的套件打包策略,為不同類型的套件選擇了最適合的打包工具。今天我們要建立一個全面的測試策略,確保我們的 Monorepo 中每個套件都...
上一篇認識了 Assertion(斷言) 的基本應用,except() 自動等待的設計結合多樣性的 matcher 讓我們可以在多變的網路戰場中應對自如,但是,...
上一篇在認識 Timeout 時提到 Hooks,Hooks 是測試框架裡非常常見的生命週期輔助方法,大部份的測試框架命名都大同小異,我們開始來認識 Playw...
上一篇我們學會了如何處理對話框,由於不曉得對話框何時出現,所以必須設置一個監聽器來處理,接著我們要來聊聊另一個非常類似的狀況:不知道預期的結果需要等多久才會出現...
前兩篇我們解鎖了定位「重複元素」以及「隱形元素」的技能,接著,下一個任務,我們要解鎖的技能是「檔案的上傳與下載」,這也是一個在使用網頁時很常見也很實用的操作行為...