Token导航 LogoToken导航TokenDH.com
Playright MCP Automation Framework logo
开发工具stdio官方级别未说明来源级核验

Playright MCP Automation Framework

MCP Server

一个基于Playwright、Python和Pytest的端到端Web应用自动化测试框架,支持跨浏览器测试、模块化代码结构和详细报告。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
自动化测试测试框架Python浏览器自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AbhishekKandari

提供方

AbhishekKandari

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

🚀 剧作家MCP自动化框架

📋 项目概述

Playwright MCP自动化框架是一个全面的端到端测试解决方案,用于使用Playwright与Python、Pytest和MCP(模型上下文协议)进行AI辅助测试生成的web应用程序。它支持跨浏览器测试、模块化代码结构和详细报告,以实现高效自动化。

🛠️ 技术栈

  • 语言: python
  • 测试框架: 剧作家Pytest
  • 报告: 诱惑,HTML报告
  • 浏览器: Chromium、Firefox、WebKit
  • 版本控制: Git
  • 代码质量: Pytest插件,模块化结构

🏗️ 建筑

该框架遵循模块化页面对象模型(POM)架构:

  • 测试层: 包含使用Pytest夹具的测试用例。
  • 页面对象: 用于UI交互的可重用类。
  • 公用设施: 数据管理和常用功能的助手。
  • 配置: Pytest和Playwright配置用于设置。

框架结构

playright-mcp-automation-framework/
├── pages/                          # Page Object classes
│   ├── LoginPage.py
│   ├── InventoryPage.py
│   ├── CartPage.py
│   └── CheckoutPage.py
├── tests/                          # Test files
│   ├── test_login.py
│   ├── test_inventory.py
│   ├── test_cart.py
│   └── test_checkout.py
├── utils/                          # Utilities and helpers
│   ├── helpers.py
│   └── test-data.json
├── allure-results/                 # Allure report data
├── allure-report/                 # Generated Allure HTML report
├── test-results/                   # HTML reports
├── pytest.ini                      # Pytest configuration
├── requirements.txt                # Python dependencies
├── package.json                    # Node.js dependencies (MCP)
├── server.py                       # MCP server for AI integration
└── README.md

数据流图

[User/Test Runner] --> [Pytest] --> [Test Files] --> [Page Objects] --> [Playwright Browser]
                              |           |              |
                              |           |              --> [Utils/Helpers]
                              |           |
                              --> [Allure Reporting] --> [allure-results/]
                              --> [HTML Reporting] --> [test-results/]

🧰 测试覆盖率

该框架包括 39个综合测试用例 涵盖整个SauceDemo电子商务流程:

登录功能(9项测试)

测试用例描述
test_valid_login_standard_user验证标准用户是否可以成功登录
test_invalid_username验证无效用户名的错误
test_invalid_password验证无效密码的错误
test_locked_out_user验证锁定用户是否收到错误消息
test_empty_username_and_password验证空凭据的验证
test_logout_flow验证注销重定向到登录页面
test_direct_url_access验证防止未经授权访问的保护措施
test_session_handling清除cookie后验证会话无效
test_performance_user验证性能故障用户登录

库存功能(12次测试)

测试用例描述
test_add_single_item_to_cart验证单个商品是否可以添加到购物车
test_add_multiple_items_to_cart验证是否可以添加多个项目
test_remove_item_from_cart_on_inventory_page验证从库存中删除项目
test_sort_products_by_name_a_to_z验证A-Z字母排序
test_sort_products_by_name_z_to_a验证Z-A字母排序
test_sort_products_by_price_low_to_high验证从低到高的价格排序
test_sort_products_by_price_high_to_low验证从高到低的价格排序
test_navigate_to_cart_from_inventory验证库存中的购物车导航
test_view_product_details验证产品详细信息页面访问权限
test_add_item_from_product_details_page验证是否从详细信息页面添加项目
test_ui_state_consistency在操作过程中验证UI一致性
test_multi_tab_behavior验证多标签功能

购物车功能(5次测试)

测试用例描述
test_view_cart_with_items验证购物车是否正确显示商品
test_remove_item_from_cart验证从购物车中删除商品
test_continue_shopping_from_cart验证导航返回库存
test_checkout_from_cart验证购物车中的结账导航
test_cart_persists_after_page_refresh验证刷新后购物车是否仍然存在

检查功能(13项测试)

测试用例描述
test_valid_checkout使用有效信息验证完整结账
test_missing_first_name验证是否缺少名字
test_missing_last_name验证是否缺少姓氏
test_missing_postal_code验证是否缺少邮政编码
test_cancel_checkout验证取消结账返回购物车
test_checkout_with_multiple_items使用多个项目验证结账
test_checkout_overview_page验证概述页面是否显示项目
test_cancel_from_checkout_overview从概览页面验证取消
test_complete_order_and_return_to_inventory验证结账后导航
test_checkout_with_empty_cart使用空购物车验证结账按钮
test_price_validation验证总价计算的准确性
test_tax_validation验证税务计算
test_remove_item_from_overview验证从概览中删除项目

📸 截图

该框架在测试执行期间自动捕获屏幕截图以进行视觉验证。Allure报告附有截图:

  • 登录测试:登录成功、错误消息、注销确认
  • 库存测试:产品列表、排序、购物车徽章更新
  • 购物车测试:购物车商品、空购物车、结账按钮
  • 检查测试:结账单、订单完成、错误状态

截图附件存储在 allure-report/data/attachments/ 并显示在Allure HTML报告中。

📸 证据

下表显示了测试执行期间捕获的通过测试的证据截图:

#截图测试用例描述
1Login Successfultest_valid_login_standard_user标准用户登录成功-重定向到库存页面
2Invalid Usernametest_invalid_username无效用户名的错误消息
3Locked Out Usertest_locked_out_user显示锁定用户错误消息
4Empty Credentialstest_empty_username_and_password空凭据的验证错误
5Logout Successfultest_logout_flow注销成功-重定向到登录页面
6Cart with Itemstest_view_cart_with_items购物车正确显示商品计数
7Checkout Completetest_valid_checkout订单已成功完成,并显示确认消息
8Inventory Pagetest_add_single_item_to_cart具有添加到购物车功能的库存页面
9Multiple Items Carttest_checkout_with_multiple_items购物车显示多个商品
10test_add_multiple_items_to_cart购物车徽章显示正确计数
11Product Sortingtest_sort_products_by_name_a_to_z按字母顺序a-z排序的产品
12Checkout Overviewtest_checkout_overview_page包含项目详细信息的结账概述
13Price Validationtest_price_validation含税价格明细
14Cart Empty Statetest_checkout_with_empty_cart空购物车结账按钮状态
15UI Consistencytest_ui_state_consistance操作过程中ui状态一致
16Remove from Carttest_remove_item_from_cart商品已删除-购物车显示零商品
17Tax Calculationtest_tax_validation正确计算和显示税款
18Order Completetest_complete_order_and_return_to_库存显示订单完成消息
注: 所有18个屏幕截图都代表了通过的测试执行,展示了SauceDemo电子商务流程的功能。

🎯 特性

  • 头部模式下的跨浏览器测试(Chromium、Firefox、WebKit)
  • 使用Pytest并行执行测试
  • 可重用代码的模块化页面对象模型
  • 通过MCP服务器生成人工智能辅助测试
  • 综合报告(Allure和HTML)
  • 目视验证的带头执行
  • 使用JSON夹具进行测试数据管理

⚙️ 安装说明

  1. 克隆存储库:
   git clone https://github.com/AbhishekKandari/playright-mcp-automation-framework.git
   cd playright-mcp-automation-framework
  1. 创建虚拟环境:
   python -m venv .venv
   .venv\Scripts\activate  # On Windows
  1. 安装依赖项:
   pip install -r requirements.txt
   playwright install  # Install browser binaries
  1. 设置环境变量 (如有需要) .env 文件。

🧪 测试执行

运行所有测试:

pytest

运行特定的测试文件:

pytest tests/test_login.py

使用特定浏览器运行:

pytest --browser chromium

并行运行(默认):

pytest  # Uses fullyParallel: true in config

以头部模式运行(默认):

pytest  # headless: false in playwright.config.js

📊 报告

该框架通过多种渠道提供全面的报告功能:

HTML报告

自动生成于 test-results/report.html:

pytest --html=test-results/report.html

诱惑报告

生成诱惑结果:

pytest --alluredir=allure-results

生成并打开诱惑报告:

allure generate allure-results --clean -o allure-report
allure open allure-report

或者,直接提供Allure报告(需要Allure CLI):

allure serve allure-results

📈 报告仪表板预览

Allure Report Dashboard

注: Allure报告提供了测试执行的全面视图,包括: - 测试类别:Epic→ 特性→ 故事层次结构 - 视觉趋势:随着时间的推移,通过/失败趋势 - 附件支持:屏幕截图、日志和视频 - 重试:重试分析和历史记录

报告内容

报告类型位置描述
HTML报告test-results/report.html带有测试结果的Pytest HTML报告
诱惑结果allure-results/原始JSON测试结果数据
魅力HTMLallure-report/带图表的交互式HTML报告
截图allure-report/data/attachments/测试执行的视觉证据

______________________________________________________________________

📁 注:attachments_passed/reporting_screenshots/ 文件夹包含专门用于README文档目的的屏幕截图。这些不是自动测试执行输出的一部分。

💡 最佳实践

  • 模块化代码: 使用页面对象进行UI交互,以确保可重用性。
  • 测试数据: 将测试数据存储在 utils/test-data.json 并通过助手加载。
  • 断言: 使用 assert 用于简单检查; expect 来自Playwright的复杂验证。
  • 固定装置: 利用Pytest夹具进行安装/拆卸(例如,自动登录)。
  • 并行执行: 并行运行测试以加快执行速度。
  • 头部模式: 使用头部执行进行调试和视觉验证。
  • 报告: 始终生成测试分析报告。
  • 版本控制: 定期提交更改,并为功能使用分支。
  • 代码质量: Python代码遵循PEP8;保持职能小而集中。
  • 错误处理: 使用try-exclusion in页面对象进行健壮的交互。
  • 文档: 更新README并将文档字符串添加到类/函数中。

🔧 命令摘要

  • 安装依赖项: pip install -r requirements.txt
  • 安装浏览器: playwright install
  • 运行所有测试: pytest
  • 运行特定测试: pytest tests/.py
  • 生成HTML报告: pytest --html=test-results/report.html
  • 生成诱惑结果: pytest --alluredir=allure-results
  • 生成诱惑报告: allure generate allure-results --clean -o allure-report
  • Open Allure报告: allure open allure-report
  • Serve Allure报告: allure serve allure-results
  • 运行MCP服务器: python server.py

🚀 未来的增强功能

该框架被设计为可扩展的。计划在未来实施以下增强功能:

1.API集成

  • REST API测试:添加对使用Python的API端点测试的支持 requests 库或Playwright的API路由处理
  • API测试层:创建专用的API测试文件(tests/api/)
  • API实用程序:实施 utils/api_client.py 用于可重复使用的API调用
  • 响应验证:将API响应与预期架构进行比较
# Planned API test structure
def test_api_create_user():
    response = api_client.post('/api/users', data=user_payload)
    assert response.status_code == 201
    assert response.json()['id'] is not None

2.数据库集成

  • 数据库连接:添加SQLAlchemy或直接数据库连接(PostgreSQL、MySQL)
  • 数据固定装置:从数据库而不是JSON文件加载测试数据
  • 状态验证:通过查询数据库验证应用程序状态
  • 测试数据管理:创建用于播种和清理测试数据的实用程序
# Planned database fixture
@pytest.fixture
def db_connection():
    return create_engine('postgresql://user:pass@localhost/testdb')

def test_verify_user_in_database(db_connection):
    result = db_connection.execute("SELECT * FROM users WHERE username = 'test'")
    assert result.fetchone() is not None

3.CI/CD的实施

  • GitHub 操作:添加 .github/workflows/ 配备自动化测试流程
  • Jenkins管道:添加 Jenkinsfile 用于企业CI/CD集成
  • Docker支持:添加 Dockerfiledocker-compose.yml 用于容器化执行
  • 云执行:支持Sauce Labs、BrowserStack或LambdaTest执行

CI/CD框图

┌─────────────────────────────────────────────────────────────────────────────┐
│                        CI/CD Pipeline Architecture                           │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌──────────┐     ┌──────────┐     ┌──────────┐     ┌──────────┐
    │   CODE   │     │  BUILD   │     │   TEST   │     │  DEPLOY  │
    │  PUSH    │────▶│  STAGE   │────▶│  STAGE   │────▶│  STAGE   │
    └──────────┘     └──────────┘     └──────────┘     └──────────┘
         │                │                │                │
         ▼                ▼                ▼                ▼
    ┌──────────┐     ┌──────────┐     ┌──────────┐     ┌──────────┐
    │  GitHub  │     │  Install │     │  Run     │     │  Publish │
    │  Trigger │     │  Deps    │     │  Tests   │     │  Reports │
    └──────────┘     └──────────┘     └──────────┘     └──────────┘
                              │                │                │
                              ▼                ▼                ▼
                         ┌──────────┐     ┌──────────┐     ┌──────────┐
                         │ Playwright│    │ Allure   │     │  Slack/  │
                         │ Install   │    │ Report   │     │  Email   │
                         │ Browsers  │    │ HTML     │     │  Notify  │
                         └──────────┘     └──────────┘     └──────────┘

增强架构框图

┌─────────────────────────────────────────────────────────────────────────────┐
│                    Enhanced Framework Architecture                          │
└─────────────────────────────────────────────────────────────────────────────┘

                              ┌─────────────────┐
                              │   CI/CD Server   │
                              │ (GitHub Actions) │
                              └────────┬────────┘
                                       │
                    ┌──────────────────┼──────────────────┐
                    │                  │                  │
              ┌─────▼─────┐    ┌──────▼──────┐    ┌─────▼─────┐
              │   Docker  │    │   Pytest    │    │  MCP AI   │
              │  Container│───▶│   Runner    │───▶│  Server   │
              └───────────┘    └──────┬──────┘    └───────────┘
                                       │
         ┌────────────────────────────┼────────────────────────────┐
         │                            │                            │
   ┌─────▼─────┐              ┌──────▼──────┐              ┌─────▼─────┐
   │   UI/API  │              │  Database   │              │  Reports  │
   │   Tests   │              │   Tests     │              │  (Allure) │
   └─────┬─────┘              └──────┬──────┘              └───────────┘
         │                            │
    ┌────▼────┐                 ┌────▼────┐
    │Playwright│                │ SQLAlchemy│
    │Browser  │                │Database  │
    └─────────┘                 └──────────┘

实施路线图

阶段功能描述优先级
阶段1API测试添加REST API测试支持
第二阶段数据库集成连接到PostgreSQL/MySQL中等
第3阶段CI/CD管道GitHub操作工作流
第4阶段Docker支持容器化测试执行中等
第5阶段云集成Sauce Labs/BrowserStack

GitHub操作工作流示例

name: Playwright Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      - name: Install dependencies
        run: |
          pip install -r requirements.txt
          playwright install --with-deps
      - name: Run tests
        run: pytest --alluredir=allure-results
      - name: Upload Allure results
        uses: actions/upload-artifact@v3
        if: always()
        with:
          name: allure-results
          path: allure-results/

🔄 CI/CD设置(GitHub操作)

该项目包括通过GitHub Actions自动执行测试。工作流每6小时运行一次测试,并在每次推送/PR上运行测试。

安装说明

1.启用GitHub操作

  1. 转到GitHub上的存储库
  2. 导航至 行动 标签
  3. 工作流将从以下位置自动检测 .github/workflows/

2.配置GitHub页面(可选)

要自动托管Allure报告,请执行以下操作:

  1. 首选 设置页面
  2. 在“构建和部署”下,选择 GitHub 操作 作为来源
  3. 工作流将在每次运行后部署报告

3.手动运行工作流

  1. 首选 行动剧作家预定测试
  2. 点击 运行工作流运行工作流

工作流功能

特性描述
计划运行每6小时(协调世界时00:00、06:00、12:00、18:00)
多浏览器Chromium、Firefox、WebKit
人工制品诱人的结果、HTML报告、截图
自动部署部署到主分支GitHub Pages的报告

查看结果

  • 诱惑报告:从Actions工件下载或在GitHub页面上查看
  • 测试结果:检查 行动 运行历史记录选项卡
  • 人工制品:每次运行都会生成可下载的测试工件

定制

修改 .github/workflows/playwright-tests.yml 更改:

  • 计划时间:编辑 cron 表达
  • 浏览器矩阵:添加/删除浏览器
  • 环境变量:为API密钥、URL等添加机密。

📊 CI/CD证据

本节提供了CI/CD管道执行和自动化测试运行的直观证据。

CI/CD管道执行

CI/CD Pipeline Evidence

CI/CD报告

完整的CI/CD报告,包括详细的测试执行历史、工件和Allure报告,可在以下网址获得:

🔗 CI/CD报告

报告包括:

  • 测试执行历史
  • 诱惑力测试结果
  • HTML测试报告
  • 屏幕截图伪影
  • 生成日志和状态

______________________________________________________________________

🤝 贡献

遵循上述最佳实践。在提交之前,确保测试通过。使用描述性提交消息。

目录标签

目录标签

自动化测试测试框架Python浏览器自动化本地部署Web测试跨浏览器测试AI辅助测试

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP