告別手工編寫測試腳本!Claude+Playwright MCP快速生成自動化測試腳本

在進行自動化測試時,前端頁面因為頻繁迭代UI 結構常有變動,這往往使得自動化測試的腳本往往“寫得快、廢得也快”,維護成本極高。

在大模型之前大家往往都會使用錄制類工具,但錄制類工具生成的代碼靈活性較差、定位方式不太合理只能, 頁面輕微改動就可能導致腳本完全失效。

然后AI大模型出現后, 測試工程師開始嘗試借助大模型(如 ChatGPT)生成測試代碼,但因為大模型無法實時獲取網頁的 DOM 結構和內容,整個開發過程也是相當麻煩,我們需要不斷地將頁面內容復制給大模型。

這正是?Playwright MCP?想要解決的問題。

Playwright MCP通過MCP協議,大模型不再對網頁內容進行亂想瞎猜,而是真實感知DOM和頁面結構后再發出操作指令。

因此,測試人員只需用自然語言描述測試需求,就能由模型完成整個測試流程——從打開頁面、執行交互、采集結果,到生成可運行的測試代碼,極大降低了測試腳本的開發門檻和維護成本。

即便頁面結構發生變化,也可以快速地完成測試腳本的開發甚至拋棄測試腳本直接使用Prompt就可以完成穩定的測試,從而真正實現了更智能、更高效、更穩定的自動化測試體驗。

什么是Playwright MCP

Playwright MCP是一個主要依賴于瀏覽器的可訪問樹的web自動化測試能力的MCP Server。

它允許使用LLM大模型使用結構化命令控制網頁瀏覽器,從而可以快速且更準確的操作瀏覽器,非常適合網頁導航、表單填寫、數據提取和自動化測試等任務。

Playwright MCP 的主要優勢:

  • 快速響應:基于結構化命令,交互更輕量

  • 高確定性:避免自然語言歧義,執行結果更可靠

  • 易于集成:適用于 Copilot、Cursor?等 AI 編程工具

  • 便于調試:多客戶端可共享一個瀏覽器上下文

什么是MCP

MCP(Model Context Protocol) 是一種為大語言模型(LLM)設計的協議,MCP充當 LLM 與實際應用之間的橋梁或“翻譯器”,將自然語言轉化為結構化指令,使得模型可以更精確、高效地控制外部行為。

通過 MCP,大語言模型可以像調用 API 一樣發出導航、點擊、輸入等指令,并接收結構化反饋,極大增強了模型的上下文理解與操作能力。

MCP使用傳統的客服端-服務端架構模式

MCP客戶端

可以理解成一個“中間人”,它會把我們發出的自然語言指令通過大模型轉換成標準的 MCP 指令,再和 MCP 服務器建立連接,發送請求、接收響應。

MCP服務器

MCP 服務器可以理解為一個 “調度大腦 + 工具集合”,里面封裝了很多功能和服務,比如訪問文件、操作文件、和網頁進行交互等等。

當MCP客戶端發來請求時,服務器就從工具箱里找出合適的工具,完成對應的任務。

常用MCP客戶端簡介

GitHub Copilot + VS Code

GitHub Copilot的Agent模式可以使用MCP的Tools,優點是結合代碼環境方便測試與生成自動化邏輯,支持多種插件擴展,使用體驗非常流暢便。

缺點是 MCP 工具的集成和識別較不穩定,有時需要重啟 VS Code或者電腦才能正確加載 MCP工具。然后當然你還需要額外付出10美金一個月。

Claude Desktop(Antropic)

Claude Desktop 是由 Anthropic 官方推出的桌面客戶端,Claude Desktop 在MCP工具調用方面的體驗非常出色,響應迅速、調用穩定。

  • 優點:

  • 原生支持 MCP 工具,配置簡單;
    • Claude 模型推理能力強,適合進行多輪復雜對話和自動化流程。

  • 缺點:

    • 國內用戶注冊需使用海外手機號驗證;

    • 免費賬號有 Token 限制,內容稍長容易觸發配額限制。

Cherry Studio

Cherry Studio 是由國內開發者打造的一款輕量型桌面客戶端,支持接入多個主流廠商的大模型(如 OpenAI、Anthropic、Moonshot 等),但需用戶自行配置對應的API Key。

缺點是部分模型集成體驗不佳,尤其是在調用Playwright MCP等需要具備連貫推理能力的工具時,可能出現模型停頓、不繼續執行等問題,對流暢使用造成較大影響。

目前不推薦用于復雜自動化測試等場景。

Cursor IDE

Cursor 自然不用多介紹了,這是專為 AI 編程設計的 VS Code 分支版本,對于MCP的配置和支持同樣十分方便,但是在使用Playwright MCP時出現被判定為可疑行為被阻止的情況

環境準備

前置準備(Prerequisites)

  • Node.js

    因為MCP其實就是nodejs程序,要運行MCP我們需要安裝Nodejs環境,

    訪問 https://nodejs.org/en/download 下載并安裝推薦版本。

  • Playwright

    安裝完 Node.js 后,可以使用以下命令安裝 Playwright 及其瀏覽器依賴:

    • -npm install -g playwright:全局安裝 Playwright,使其在所有項目中可用

    • -npx playwright install:安裝 Playwright 所需的 Chromium、Firefox 和?WebKit?瀏覽器。

    • 可以到我的個人號:atstudy-js,看完整版內容

      這里有10W+ 熱情踴躍的測試小伙伴們,一起交流行業熱點、測試技術各種干貨,一起共享面試經驗、跳槽求職各種好用的。 ? ? ? ?

      多行業測試學習交流群,內含直播課+實戰+面試資料

      AI測試、 車載測試、自動化測試、銀行、金融、游戲、AIGC.

安裝Playwright MCP

Playwright MCP 有兩個常用的實現版本,兩個MCP庫都可以使用:

    • - @playwright/mcp:

      由Microsoft官方發布和維護,是最基礎、最標準的MCP客戶端實現

    • - @executeautomation/playwright

      -mcp-server:

      由社區開發者@executeautomation 構建,功能更加豐富,例如支持多頁簽、截圖、保存測試結果等擴展能力,適合進階使用者或自動化測試場景更復雜的項目。

安裝Playwright MCP

    • - npm install -g?

      @playwright/mcp

    • - npm install -g?

      @executeautomation/playwright-mcp-server

輸入以下命令驗證安裝成功

    • - npx @playwright/mcp --version

使用 Claude Desktop +?

Playwright MCP 自動生成測試代碼實戰

步驟一:

在 Claude Desktop 配置 Playwright MCP

1. 打開 Claude Desktop Settings → 切換至?Developer?→ 點擊 Edit Config,打開 claude-desktop-config.json 文件。

2. 添加以下配置來啟用 Playwright MCP:

{??"mcpServers": {? ??"playwright": {? ? ??"command":?"npx",? ? ??"args": ["-y",?"@executeautomation/playwright-mcp-server"]? ? }? }}

3. 保存文件并重啟 Claude Desktop,在聊天窗口中就可以看到Playwright MCP提供的Tools了

步驟二:

使用Prompt自動生成測試代碼

配置完成后,我們開始演示如何通過Playwright MCP去生成Playwright的測試代碼

示例 Prompt:

輸入了prompt后,接下來就可以直接發送命令

Please?explore?https://www.baidu.com and generate a playwright test that performs a search for `LangChain MCP Adapter`.

Claude就會使用Playwright MCP工具執行以下操作:

- 打開默認瀏覽器,訪問百度

- 快照頁面結構,識別搜索框;

- 輸入關鍵詞LangChain MCP Adapter并點擊搜索;

- 驗證搜索結果 —— 檢查是否出現相關內容的搜索結果

- 關閉瀏覽器

- 基于執行記錄生成完整的 Playwright 測試代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93917.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93917.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93917.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一款更適合 SpringBoot 的API文檔新選擇(Spring Boot 應用 API 文檔)

SpringDoc:Spring Boot 應用 API 文檔生成的現代化解決方案 概述 SpringDoc 是一個專為 Spring Boot 應用設計的開源庫,能夠自動生成符合 OpenAPI 3 規范的 API 文檔。它通過掃描項目中的控制器、方法注解及相關配置,動態生成 JSON/YAML/HTML…

文獻閱讀 250821-When and where soil dryness matters to ecosystem photosynthesis

When and where soil dryness matters to ecosystem photosynthesis 來自 <When and where soil dryness matters to ecosystem photosynthesis | Nature Plants> ## Abstract: Background: Projected increases in the intensity and frequency of droughts in the twen…

React學習(九)

目錄&#xff1a;1.react-進階-antd-新增2.react-進階-antd-刪除選中1.react-進階-antd-新增新增代碼&#xff0c;跟需改的代碼類似&#xff0c;直接copy修改組件代碼進行修改userEffect可以先帶著&#xff0c;沒啥用A6組件用到的函數跟修改的也類似&#xff1a;這個useEffect函…

零基礎從頭教學Linux(Day 17)

三層交換機一、三層交換機的配置1.關于如何配置三層交換機&#xff0c;首先我們應該先創建VLANSwitch>en Switch#vlan database % Warning: It is recommended to configure VLAN from config mode,as VLAN database mode is being deprecated. Please consult userdocument…

任務十四 推薦頁面接口開發

一、接口準備 在對接qq音樂接口之前,首先要將之前的項目,一定要記得備份一份; 備份完成之后,首先要在vscode終端安裝axios,這個是請求后端的工具,和之前的ajax一樣,都是請求后端的工具。只不過axios更專業化,跟強大 至于qq音樂接口怎么獲取,一般有兩個途徑,第一個是…

醫療AI與醫院數據倉庫的智能化升級:異構采集、精準評估與高效交互的融合方向(下)

核心功能創新詳解: 統一門戶與角色化工作臺: 統一入口: 用戶通過單一URL登錄,系統根據其角色和權限自動呈現專屬工作臺。 角色化工作臺: 臨床醫生工作臺: 首屏展示常用患者查詢入口、快速統計(如“我的患者檢驗異常趨勢”)、相關臨床文獻推薦、待處理任務(如報告審核)…

數據庫面試常見問題

數據庫 Delete Truncate Drop 區別 答:這三個操作都是針對數據庫的表進行操作,都有刪除表的功能,其中的區別在于: Delete:只將表中的數據進行刪除,不刪除定義不釋放空間,是dml語句,需要提交事務,如果不想刪除可以回滾。delete每次刪除一行,并在事務日志中為所刪除…

用nohup setsid繞過超時斷連,穩定反彈Shell

在We滲透過程中&#xff0c;我們常常會利用目標系統的遠程代碼執行&#xff08;RCE&#xff09;漏洞進行反彈Shell。然而&#xff0c;由于Web服務器&#xff08;如PHP、Python后端&#xff09;的執行環境通常存在超時限制&#xff08;如max_execution_time或進程管理策略&#…

Java設計模式-模板方法模式

Java設計模式-模板方法模式 模式概述 模板方法模式簡介 核心思想&#xff1a;定義一個操作中的算法骨架&#xff08;模板方法&#xff09;&#xff0c;將算法中某些步驟的具體實現延遲到子類中完成。子類可以在不改變算法整體結構的前提下&#xff0c;重定義這些步驟的行為&…

Centos7物理安裝 Redis8.2.0

Centos7物理安裝 Redis8.2.0一、準備依賴環境首先安裝編譯 Redis 所需的依賴&#xff1a;# CentOS/RHEL系統 yum install -y gcc gcc-c make wget 二、下載并編譯 Redis 8.2.0# 1. 下載Redis 8.2.0源碼包 wget https://download.redis.io/releases/redis-8.2.0.tar.gz# 2. 解壓…

牛津大學xDeepMind 自然語言處理(3)

條件語言模型無條件語言模型 概率計算&#xff1a;通過鏈式法則分解為預測下一詞概率&#xff08;將語言建模問題簡化為建模給定前面詞語歷史的下一個詞的概率&#xff09;基于循環神經網絡的無條件語言模型&#xff1a;根據歷史詞語預測下一個詞的概率條件語言模型 定義&#…

Vue2.x核心技術與實戰(一)

目錄 一、Vue2.x:快速上手+插值表達式+指令上 1.1 Vue快速上手 1.1.1 Vue概念 1.1.2 創建實例 1.1.3 插值表達式 { { }} 1.1.4 響應式特性 1.1.5 開發者工具 1.2 Vue指令 1.2.1 v-html 1.2.3 v-show / v-if v-show v-if 1.2.4 v-else / v-else-if 1.2.5 v-on v…

SCAU學習筆記 - 自科三面前端方向實戰演示

本來是準備寫完二面直接開始寫算法三面的&#xff0c;maimai那個封面圖我都做好了。但是可惡的出題人說要等我出完解析再針對性避開出題&#xff0c;所以swan決定把那個先擱置&#xff0c;本文我們先以2023年的自科三面前端方向題為例帶各位快速入門前端三件套&#xff08;因為…

前后端聯合實現文件上傳,實現 SQL Server image 類型文件上傳

1、前端 Vue3QualityFileInfoDialog.vue<script setup lang"ts" name"QualityFile"> ...... // 上傳&#xff0c;防抖 const onUploadClick debounce(() > {// 模擬點擊元素if (fileInputRef.value) {// 重置以允許重復選擇相同文件fileInputRef…

使用安卓平板,通過USB數據線(而不是Wi-Fi)來控制電腦(版本1)

這是一個對延遲和穩定性要求很高的場景。 核心原理是&#xff1a;利用USB數據線&#xff0c;在手機和電腦之間創建一個高速的“虛擬網絡連接”&#xff0c;然后在這個穩定的網絡通道上運行遠程控制軟件。 方案1&#xff1a; 在完全沒有無線網絡&#xff08;Wi-Fi&#xff09;和…

linux報permission denied問題

linux報permission denied問題 一般是沒有可執行權限&#xff0c;需要先添加執行權限 1. 確認文件權限 在你的項目目錄下執行&#xff1a; ls -l ./folder你可能會看到類似&#xff1a; -rw-r--r-- 1 user user 1234 Aug 18 12:00 script.sh注意&#xff1a;這里缺少 x&#xf…

Vue深入組件:組件事件詳解2

聲明觸發的事件 為了讓組件的用法更清晰(作為文檔),同時讓 Vue 能區分事件與透傳 attribute,推薦顯式聲明組件要觸發的事件。根據組件是否使用 <script setup>,聲明方式有所不同。 使用 <script setup> 時:defineEmits() 宏 在 <script setup> 中,…

FLASK項目快速構建

Flask 項目構建 exts.py # flask_sqlalchemy from flask_sqlalchemy import SQLAlchemy from flask_mail import Mail from flask_caching import Cache from flask_wtf import CSRFProtect from flask_avatars import Avatars from flask_jwt_extended import JWTManager from…

數據結構--2:ArrayList與順序表

1.順序表的創建 2.常見操作 3.遍歷 4.擴容機制 5.例子1.順序表的創建在集合框架中&#xff0c;ArrayList是?個普通的類&#xff0c;實現了List接口&#xff0c;具體框架圖如下&#xff1a;2.常見操作代碼…

【Kubesphere】K8s容器無法訪問內網xx網絡問題

問題遇到的現象和發生背景 Kubesphere中運行的一個容器&#xff0c;可以ping通我們公司內網網段172.16.XX.XX&#xff0c;但是在容器內無法ping通192.168.5.XX&#xff0c;但是我在宿主機是可以ping通192.168.5.XX&#xff0c;這個192.168.5.XX是通過xx設備接進來的&#xff0c…