Playwright自動化測試工具之高階使用

testingbang發表於2021-04-04

4. 高階使用

4.1 攔截網路請求

網路攔截:

l 無響應 pass

l 中止 route.abort("aborted")

l 放行 route.continue_()

l 處理, 返回自定義的響應 route.fulfill()

Playwright使用 router 方法,並且傳遞以下引數:

l url 要攔截地址表示式:

n glob表示式

n 正規表示式

n 返回布林值的函式

l handler ,攔截後進行執行的函式

n 接受 router 引數

中止響應,程式碼示例:

Playwright自動化測試工具之高階使用

自定義響應,程式碼示例:

Playwright自動化測試工具之高階使用

本來訪問百度,自定義返回中訪問到了金山文件首頁。


4.2 pytest 管理用例

市面上的流行框架:unittest(標準庫)、pytest(第三方庫)

安裝外掛:

Playwright自動化測試工具之高階使用

程式碼示例:

Playwright自動化測試工具之高階使用

執行命令:# 獲得網頁報告

pytest --html=report.html

報告見下:

Playwright自動化測試工具之高階使用

4.3 PO模型

playwright本身是支援PO模型的。

如打卡設定頁,編寫定位方法的py檔案

Playwright自動化測試工具之高階使用

測試用例時直接操作定位元素,組成業務邏輯即可

Playwright自動化測試工具之高階使用

4.4 API 和 UI 自動化測試融合

好處: 縮短自動化測試程式碼的整體執行時長。舉個例子,我們要測試表單結果這個功能,只有檢視錶單結果這個操作本身才是我們的測試範圍, 在檢視錶單結果之前的所有操作,例如使用者註冊—使用者登入—使用者建立表單—釋出表單-填寫表單 ,這一系列操作都屬於“非測試部分”。

關鍵點: 當從 API 請求切換到 UI 操作時,登入態應該從介面請求中帶過來。(既保持同一會話cookie或 token)


4.4 資料驅動

資料驅動,指在自動化測試中處理測試資料的方式。方法是採用操作yaml檔案進行測試資料與功能函式分離,程式碼示例見下:

Playwright自動化測試工具之高階使用

Playwright自動化測試工具之高階使用

備註:

1. 還有excel、json等格式檔案的方式,這裡不概述。

2. 需要提前安裝庫 pip install PyYaml


4.5 動態挑選用例執行

pytest框架支援多種方式的測試用例的挑選,這裡我只介紹一種方式:

1. pytest.ini 檔案中設定規則:markers = debug01

Playwright自動化測試工具之高階使用

2. 需除錯的測試用例打上標籤: @pytest.mark.debug01

Playwright自動化測試工具之高階使用

3. 執行命令 (--headful 帶頭執行,預設是無頭模式)

pytest -m debug01 --headful

4.5 Allure測試報告

安裝pip install allure-pytest

報告截圖:

Playwright自動化測試工具之高階使用

4.5 持續整合

持續整合這裡採用的是jenkins,不過第一次執行會報錯:jenkins目錄沒有瀏覽器驅動:

這個時候需要將C:\Users\win\AppData\Local\ms-playwright下的瀏覽器驅動複製到

jenkins的要求目錄下,如:

C:\Windows\System32\config\systemprofile\AppData\Local\ms-playwright

備註:jenkins的job命令:

G:cd G:\InterAutoTest_Wworkon playwrightPRO && python run.py


2. 案例實戰

Playwright自動化測試工具之高階使用

測試用例要求:打卡功能,固定卡預覽後,卡片型別是固定卡

測試指令碼:

Playwright自動化測試工具之高階使用

Playwright自動化測試工具之高階使用

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2766517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章