diff --git a/apps/dify/1.8.0/docker-compose.yml b/apps/dify/1.8.0/docker-compose.yml index 7da0e86..66c9f84 100644 --- a/apps/dify/1.8.0/docker-compose.yml +++ b/apps/dify/1.8.0/docker-compose.yml @@ -1041,7 +1041,7 @@ services: - ssrf_proxy_network - default worker: - image: langgenius/dify-api:1.7.1 + image: langgenius/dify-api:1.8.0 env_file: - dify.env restart: always @@ -1570,7 +1570,7 @@ services: - ssrf_proxy_network - default web: - image: langgenius/dify-web:1.7.1 + image: langgenius/dify-web:1.8.0 container_name: ${CONTAINER_NAME} env_file: - dify.env diff --git a/apps/playwright/1.55.0-noble/config/package.json b/apps/playwright/1.55.0-noble/config/package.json new file mode 100644 index 0000000..38fb17a --- /dev/null +++ b/apps/playwright/1.55.0-noble/config/package.json @@ -0,0 +1,17 @@ +{ + "name": "playwright-test-environment", + "version": "1.0.0", + "description": "Playwright test environment for 1Panel", + "main": "server.js", + "scripts": { + "start": "node server.js", + "test": "playwright test" + }, + "dependencies": { + "@playwright/test": "^1.55.0", + "express": "^4.18.2" + }, + "keywords": ["playwright", "testing", "automation"], + "author": "1Panel-Appstore", + "license": "MIT" +} \ No newline at end of file diff --git a/apps/playwright/1.55.0-noble/config/playwright.config.ts b/apps/playwright/1.55.0-noble/config/playwright.config.ts new file mode 100644 index 0000000..2ffb1f3 --- /dev/null +++ b/apps/playwright/1.55.0-noble/config/playwright.config.ts @@ -0,0 +1,29 @@ +import { defineConfig, devices } from '@playwright/test'; + +export default defineConfig({ + testDir: './tests', + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + reporter: [['html', { outputFolder: './test-results' }]], + use: { + baseURL: 'http://localhost:3000', + trace: 'on-first-retry', + screenshot: 'only-on-failure', + }, + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + ], +}); \ No newline at end of file diff --git a/apps/playwright/1.55.0-noble/config/server.js b/apps/playwright/1.55.0-noble/config/server.js new file mode 100644 index 0000000..1f5114f --- /dev/null +++ b/apps/playwright/1.55.0-noble/config/server.js @@ -0,0 +1,176 @@ +const express = require('express'); +const path = require('path'); +const fs = require('fs'); +const { spawn } = require('child_process'); + +const app = express(); +const port = process.env.PORT || 3000; + +app.use(express.json()); +app.use('/test-results', express.static(path.join(__dirname, 'test-results'))); +app.use('/tests', express.static(path.join(__dirname, 'tests'))); + +app.get('/', (req, res) => { + res.send(` + + + + Playwright Test Environment + + + +
+

🎭 Playwright Test Environment

+

✅ Environment is ready!

+ +
+

Quick Actions

+ + View Reports + +
+ +
+

Environment Info

+

Playwright Version: v1.55.0

+

Available Browsers: Chromium, Firefox, WebKit

+

Test Directory: ./tests

+

Reports Directory: ./test-results

+
+ +
+

Usage Instructions

+
    +
  1. Upload test files to the tests/ directory
  2. +
  3. Configure tests in playwright.config.ts
  4. +
  5. Run tests using the button above or CLI command
  6. +
  7. View HTML reports in the test-results directory
  8. +
+ +

Example Test Code

+
+import { test, expect } from '@playwright/test'; + +test('basic test', async ({ page }) => { + await page.goto('https://playwright.dev/'); + await expect(page).toHaveTitle(/Playwright/); +}); +
+
+
+ + + + + `); +}); + +app.post('/api/run-tests', (req, res) => { + const testProcess = spawn('npx', ['playwright', 'test'], { + cwd: process.cwd(), + stdio: 'inherit' + }); + + res.json({ message: 'Tests execution started, check reports in 30 seconds' }); +}); + +app.post('/api/generate-example', (req, res) => { + const exampleTest = `import { test, expect } from '@playwright/test'; + +test('playwright homepage test', async ({ page }) => { + await page.goto('https://playwright.dev/'); + + // Expect a title "to contain" a substring. + await expect(page).toHaveTitle(/Playwright/); + + // create a locator + const getStarted = page.getByRole('link', { name: 'Get started' }); + + // Expect an attribute "to be strictly equal" to the value. + await expect(getStarted).toHaveAttribute('href', '/docs/intro'); + + // Click the get started link. + await getStarted.click(); + + // Expects the URL to contain intro. + await expect(page).toHaveURL(/.*intro/); +}); + +test('example.com test', async ({ page }) => { + await page.goto('https://example.com'); + await expect(page).toHaveTitle('Example Domain'); + await expect(page.locator('h1')).toContainText('Example Domain'); +});`; + + if (!fs.existsSync('./tests')) { + fs.mkdirSync('./tests', { recursive: true }); + } + + fs.writeFileSync('./tests/example.spec.ts', exampleTest); + res.json({ message: 'Example test generated at ./tests/example.spec.ts' }); +}); + +app.listen(port, '0.0.0.0', () => { + console.log(`🎭 Playwright server running at http://0.0.0.0:${port}`); + console.log(`📊 Test reports will be available at http://0.0.0.0:${port}/test-results`); +}); \ No newline at end of file diff --git a/apps/playwright/1.55.0-noble/config/start.sh b/apps/playwright/1.55.0-noble/config/start.sh new file mode 100755 index 0000000..ba90a01 --- /dev/null +++ b/apps/playwright/1.55.0-noble/config/start.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +echo "🎭 Setting up Playwright Test Environment..." + +# 确保目录存在 +mkdir -p tests test-results + +# 安装依赖 +echo "📦 Installing dependencies..." +npm install + +# 安装 Playwright 浏览器 +echo "🌐 Installing Playwright browsers..." +npx playwright install + +# 启动服务器 +echo "🚀 Starting Playwright server..." +node server.js \ No newline at end of file diff --git a/apps/playwright/1.55.0-noble/data.yml b/apps/playwright/1.55.0-noble/data.yml new file mode 100644 index 0000000..2ade09f --- /dev/null +++ b/apps/playwright/1.55.0-noble/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 3000 + edit: true + envKey: PANEL_APP_PORT_HTTP + label: + en: Port + zh: 端口 + zh-Hant: 埠 + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + required: true + rule: paramPort + type: number \ No newline at end of file diff --git a/apps/playwright/1.55.0-noble/docker-compose.yml b/apps/playwright/1.55.0-noble/docker-compose.yml new file mode 100644 index 0000000..4007178 --- /dev/null +++ b/apps/playwright/1.55.0-noble/docker-compose.yml @@ -0,0 +1,51 @@ +services: + playwright-init: + image: mcr.microsoft.com/playwright:v1.55.0-noble + user: "root" + volumes: + - ./data:/home/pwuser/app + - ./config:/home/pwuser/config:ro + working_dir: /home/pwuser/app + command: > + sh -c " + cp -r /home/pwuser/config/* /home/pwuser/app/ && + chown -R pwuser:pwuser /home/pwuser/app && + chmod +x /home/pwuser/app/start.sh + " + restart: "no" + + playwright: + image: mcr.microsoft.com/playwright:v1.55.0-noble + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:3000" + volumes: + - ./data:/home/pwuser/app + working_dir: /home/pwuser/app + user: "pwuser" + environment: + - NODE_ENV=production + - PORT=3000 + init: true + ipc: host + security_opt: + - seccomp:unconfined + command: "./start.sh" + depends_on: + playwright-init: + condition: service_completed_successfully + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 90s + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/playwright/README.md b/apps/playwright/README.md new file mode 100644 index 0000000..1626c7f --- /dev/null +++ b/apps/playwright/README.md @@ -0,0 +1,313 @@ +# Playwright + +现代 Web 应用自动化测试环境,基于 Microsoft Playwright 构建。支持 Chromium、Firefox 和 WebKit 浏览器,提供完整的端到端测试解决方案。 + +![](https://cdn.jsdelivr.net/gh/xiaoY233/PicList@main/public/assets/Playwright.png) + +![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white) + +## ✨ 核心特性 + +- **🚀 快速可靠**:使用 Microsoft 官方 Playwright v1.55.0 镜像 +- **🌐 多浏览器支持**:支持 Chromium、Firefox 和 WebKit +- **🎯 精确测试**:Web-first 断言,自动等待和重试 +- **📊 丰富报告**:HTML 测试报告,支持跟踪和截图 +- **🔧 高度可配置**:灵活的测试配置和环境设置 +- **🛡️ 安全稳定**:遵循官方安全最佳实践 + +## 📋 系统要求 + +- Docker 环境 +- 1Panel 控制面板 +- 至少 2GB 可用内存 + +## 🚀 快速开始 + +### 1Panel 部署 + +1. 在 1Panel 应用商店中搜索 "Playwright" +2. 点击安装并配置以下参数: + - **端口**:Web 服务访问端口(默认:3000) + - **浏览器类型**:选择默认浏览器引擎 + - **无头模式**:是否启用无头模式运行 + - **视窗尺寸**:浏览器视窗的宽度和高度 + - **用户代理**:自定义浏览器用户代理字符串 + - **用户/组 ID**:容器运行的用户和组标识符 + +3. 点击确认安装 + +### 访问服务 + +安装完成后,您可以通过以下方式访问: + +- **管理界面**:`http://your-server-ip:port/` +- **测试报告**:`http://your-server-ip:port/test-results/` +- **测试文件**:`http://your-server-ip:port/tests/` + +## ⚙️ 配置说明 + +### 浏览器类型 + +- **Chromium**:Google Chrome 内核,推荐选择 +- **Firefox**:Mozilla Firefox 引擎 +- **WebKit**:Safari 内核,适合移动端测试 + +### 运行模式 + +- **有头模式**:显示浏览器界面,适合调试和开发 +- **无头模式**:后台运行,适合 CI/CD 和生产环境 + +### 安全配置 + +- **用户 ID**:建议使用非 root 用户(默认:1000) +- **组 ID**:对应的用户组(默认:1000) +- 应用自动配置安全沙箱和权限 + +## 🧪 使用指南 + +### 创建测试 + +1. 访问管理界面 +2. 点击 "Generate Example Test" 生成示例测试 +3. 编辑 `/app/tests/` 目录下的测试文件 +4. 使用 TypeScript 或 JavaScript 编写测试 + +### 示例测试代码 + +```typescript +import { test, expect } from '@playwright/test'; + +test('basic test', async ({ page }) => { + await page.goto('https://playwright.dev/'); + + // 检查页面标题 + await expect(page).toHaveTitle(/Playwright/); + + // 点击链接 + const getStarted = page.getByRole('link', { name: 'Get started' }); + await getStarted.click(); + + // 验证URL变化 + await expect(page).toHaveURL(/.*intro/); +}); +``` + +### 运行测试 + +1. 在管理界面点击 "Run All Tests" +2. 或使用命令行:`npx playwright test` +3. 查看生成的 HTML 报告 + +### 配置文件 + +应用会自动生成 `playwright.config.ts` 配置文件: + +```typescript +export default defineConfig({ + testDir: './tests', + fullyParallel: true, + retries: 2, + reporter: [['html', { outputFolder: './test-results' }]], + use: { + trace: 'on-first-retry', + screenshot: 'only-on-failure', + }, + projects: [ + { name: 'chromium', use: devices['Desktop Chrome'] }, + { name: 'firefox', use: devices['Desktop Firefox'] }, + { name: 'webkit', use: devices['Desktop Safari'] }, + ], +}); +``` + +## 📁 目录结构 + +``` +/app/ +├── tests/ # 测试文件目录 +├── test-results/ # 测试报告和结果 +├── config/ # 配置文件 +├── projects/ # 项目文件 +├── playwright.config.ts # Playwright 配置 +├── package.json # Node.js 依赖 +└── server.js # Web 管理界面 +``` + +## 🔧 高级功能 + +### 并行测试 + +- 支持多浏览器并行执行 +- 自动分配测试工作负载 +- CI/CD 环境优化 + +### 测试跟踪 + +- 自动生成测试执行跟踪 +- 可视化测试步骤和时间线 +- 失败时自动截图 + +### 自定义配置 + +- 支持自定义 Playwright 配置 +- 灵活的项目设置 +- 环境变量配置 + +### 🔄 自定义脚本执行 + +应用采用了配置文件分离设计,您可以轻松替换和自定义执行脚本: + +#### 配置文件位置 + +所有应用配置文件位于 `config/` 目录: + +``` +config/ +├── package.json # Node.js 依赖配置 +├── playwright.config.ts # Playwright 测试配置 +├── server.js # Web 管理界面服务器 +└── start.sh # 应用启动脚本 +``` + +#### 替换自定义脚本 + +1. **替换启动脚本** + ```bash + # 编辑启动脚本 + vi config/start.sh + ``` + +2. **替换 Web 服务器** + ```bash + # 编辑或替换服务器脚本 + vi config/server.js + ``` + +3. **添加自定义脚本** + ```bash + # 在 config 目录添加自定义脚本 + vi config/my-custom-script.js + ``` + +4. **修改启动逻辑** + + 编辑 `config/start.sh` 来调用您的自定义脚本: + + ```bash + #!/bin/bash + + echo "🎭 Setting up Playwright Test Environment..." + + # 确保目录存在 + mkdir -p tests test-results + + # 安装依赖 + echo "📦 Installing dependencies..." + npm install + + # 安装 Playwright 浏览器 + echo "🌐 Installing Playwright browsers..." + npx playwright install + + # 运行您的自定义脚本 + echo "🔧 Running custom script..." + node my-custom-script.js + + # 启动服务器(可选) + echo "🚀 Starting Playwright server..." + node server.js + ``` + +#### 应用更改 + +修改配置文件后,重启容器以应用更改: + +```bash +# 在 1Panel 中重启应用 +# 或使用 Docker Compose 命令 +docker-compose restart playwright +``` + +#### 自定义脚本示例 + +创建一个简单的自定义测试脚本 `config/my-test.js`: + +```javascript +const { chromium } = require('playwright'); + +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + + await page.goto('https://example.com'); + console.log('页面标题:', await page.title()); + + await browser.close(); +})(); +``` + +然后在 `start.sh` 中调用: + +```bash +# 运行自定义测试 +echo "🧪 Running custom test..." +node my-test.js +``` + +#### 注意事项 + +- 所有自定义脚本必须放在 `config/` 目录中 +- 修改后需要重启容器才能生效 +- 保持脚本文件的可执行权限 +- 遵循 Playwright 安全最佳实践 + +## 🐛 故障排除 + +### 常见问题 + +1. **容器启动失败** + - 检查内存是否充足(至少2GB) + - 确认端口未被占用 + - 查看容器日志 + +2. **测试运行失败** + - 检查浏览器配置 + - 验证测试文件语法 + - 确认网络连接 + +3. **权限问题** + - 调整用户ID和组ID配置 + - 检查文件系统权限 + - 确认数据卷挂载 + +### 日志查看 + +```bash +# 查看容器日志 +docker logs playwright + +# 实时跟踪日志 +docker logs -f playwright +``` + +## 📚 学习资源 + +- [Playwright 官方文档](https://playwright.dev/docs/intro) +- [测试最佳实践](https://playwright.dev/docs/best-practices) +- [API 参考](https://playwright.dev/docs/api/class-playwright) +- [示例和模式](https://playwright.dev/docs/test-runners) + +## 🔗 相关链接 + +- [官方网站](https://playwright.dev/) +- [GitHub 仓库](https://github.com/microsoft/playwright) +- [社区讨论](https://github.com/microsoft/playwright/discussions) +- [1Panel 文档](https://1panel.cn/docs/) + +## 📄 许可证 + +本项目遵循 Playwright 的开源许可证。详细信息请参考 [官方仓库](https://github.com/microsoft/playwright)。 + +## 🤝 贡献 + +欢迎提交 Issue 和 Pull Request 来帮助改进这个应用配置。 \ No newline at end of file diff --git a/apps/playwright/README_en.md b/apps/playwright/README_en.md new file mode 100644 index 0000000..700773d --- /dev/null +++ b/apps/playwright/README_en.md @@ -0,0 +1,313 @@ +# Playwright + +Modern web application automation testing environment built with Microsoft Playwright. Supports Chromium, Firefox, and WebKit browsers, providing a complete end-to-end testing solution. + +![](https://cdn.jsdelivr.net/gh/xiaoY233/PicList@main/public/assets/Playwright.png) + +![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white) + +## ✨ Key Features + +- **🚀 Fast and Reliable**: Uses Microsoft official Playwright v1.55.0 image +- **🌐 Multi-Browser Support**: Supports Chromium, Firefox, and WebKit +- **🎯 Precise Testing**: Web-first assertions with auto-waiting and retry +- **📊 Rich Reports**: HTML test reports with tracing and screenshots +- **🔧 Highly Configurable**: Flexible test configuration and environment settings +- **🛡️ Secure and Stable**: Follows official security best practices + +## 📋 System Requirements + +- Docker environment +- 1Panel control panel +- At least 2GB available memory + +## 🚀 Quick Start + +### 1Panel Deployment + +1. Search for "Playwright" in the 1Panel app store +2. Click install and configure the following parameters: + - **Port**: Web service access port (default: 3000) + - **Browser Type**: Choose default browser engine + - **Headless Mode**: Whether to enable headless mode + - **Viewport Size**: Browser viewport width and height + - **User Agent**: Custom browser user agent string + - **User/Group ID**: Container runtime user and group identifiers + +3. Click confirm to install + +### Accessing the Service + +After installation, you can access via: + +- **Management Interface**: `http://your-server-ip:port/` +- **Test Reports**: `http://your-server-ip:port/test-results/` +- **Test Files**: `http://your-server-ip:port/tests/` + +## ⚙️ Configuration Guide + +### Browser Types + +- **Chromium**: Google Chrome kernel, recommended choice +- **Firefox**: Mozilla Firefox engine +- **WebKit**: Safari kernel, suitable for mobile testing + +### Running Modes + +- **Headed Mode**: Shows browser interface, suitable for debugging and development +- **Headless Mode**: Runs in background, suitable for CI/CD and production environments + +### Security Configuration + +- **User ID**: Recommended to use non-root user (default: 1000) +- **Group ID**: Corresponding user group (default: 1000) +- Application automatically configures security sandbox and permissions + +## 🧪 Usage Guide + +### Creating Tests + +1. Access the management interface +2. Click "Generate Example Test" to generate sample tests +3. Edit test files in the `/app/tests/` directory +4. Write tests using TypeScript or JavaScript + +### Sample Test Code + +```typescript +import { test, expect } from '@playwright/test'; + +test('basic test', async ({ page }) => { + await page.goto('https://playwright.dev/'); + + // Check page title + await expect(page).toHaveTitle(/Playwright/); + + // Click link + const getStarted = page.getByRole('link', { name: 'Get started' }); + await getStarted.click(); + + // Verify URL change + await expect(page).toHaveURL(/.*intro/); +}); +``` + +### Running Tests + +1. Click "Run All Tests" in the management interface +2. Or use command line: `npx playwright test` +3. View the generated HTML report + +### Configuration File + +The application automatically generates `playwright.config.ts` configuration file: + +```typescript +export default defineConfig({ + testDir: './tests', + fullyParallel: true, + retries: 2, + reporter: [['html', { outputFolder: './test-results' }]], + use: { + trace: 'on-first-retry', + screenshot: 'only-on-failure', + }, + projects: [ + { name: 'chromium', use: devices['Desktop Chrome'] }, + { name: 'firefox', use: devices['Desktop Firefox'] }, + { name: 'webkit', use: devices['Desktop Safari'] }, + ], +}); +``` + +## 📁 Directory Structure + +``` +/app/ +├── tests/ # Test files directory +├── test-results/ # Test reports and results +├── config/ # Configuration files +├── projects/ # Project files +├── playwright.config.ts # Playwright configuration +├── package.json # Node.js dependencies +└── server.js # Web management interface +``` + +## 🔧 Advanced Features + +### Parallel Testing + +- Supports multi-browser parallel execution +- Automatic test workload distribution +- CI/CD environment optimization + +### Test Tracing + +- Automatically generates test execution traces +- Visualizes test steps and timeline +- Automatic screenshots on failure + +### Custom Configuration + +- Supports custom Playwright configuration +- Flexible project settings +- Environment variable configuration + +### 🔄 Custom Script Execution + +The application uses a separated configuration file design, allowing you to easily replace and customize execution scripts: + +#### Configuration File Location + +All application configuration files are located in the `config/` directory: + +``` +config/ +├── package.json # Node.js dependency configuration +├── playwright.config.ts # Playwright test configuration +├── server.js # Web management interface server +└── start.sh # Application startup script +``` + +#### Replacing Custom Scripts + +1. **Replace Startup Script** + ```bash + # Edit startup script + vi config/start.sh + ``` + +2. **Replace Web Server** + ```bash + # Edit or replace server script + vi config/server.js + ``` + +3. **Add Custom Scripts** + ```bash + # Add custom scripts in config directory + vi config/my-custom-script.js + ``` + +4. **Modify Startup Logic** + + Edit `config/start.sh` to call your custom scripts: + + ```bash + #!/bin/bash + + echo "🎭 Setting up Playwright Test Environment..." + + # Ensure directories exist + mkdir -p tests test-results + + # Install dependencies + echo "📦 Installing dependencies..." + npm install + + # Install Playwright browsers + echo "🌐 Installing Playwright browsers..." + npx playwright install + + # Run your custom script + echo "🔧 Running custom script..." + node my-custom-script.js + + # Start server (optional) + echo "🚀 Starting Playwright server..." + node server.js + ``` + +#### Applying Changes + +After modifying configuration files, restart the container to apply changes: + +```bash +# Restart application in 1Panel +# Or use Docker Compose command +docker-compose restart playwright +``` + +#### Custom Script Example + +Create a simple custom test script `config/my-test.js`: + +```javascript +const { chromium } = require('playwright'); + +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + + await page.goto('https://example.com'); + console.log('Page Title:', await page.title()); + + await browser.close(); +})(); +``` + +Then call it in `start.sh`: + +```bash +# Run custom test +echo "🧪 Running custom test..." +node my-test.js +``` + +#### Notes + +- All custom scripts must be placed in the `config/` directory +- Container restart is required after modifications +- Maintain executable permissions for script files +- Follow Playwright security best practices + +## 🐛 Troubleshooting + +### Common Issues + +1. **Container Startup Failure** + - Check if memory is sufficient (at least 2GB) + - Confirm port is not in use + - View container logs + +2. **Test Execution Failure** + - Check browser configuration + - Verify test file syntax + - Confirm network connection + +3. **Permission Issues** + - Adjust user ID and group ID configuration + - Check file system permissions + - Confirm data volume mounting + +### Log Viewing + +```bash +# View container logs +docker logs playwright + +# Follow logs in real-time +docker logs -f playwright +``` + +## 📚 Learning Resources + +- [Playwright Official Documentation](https://playwright.dev/docs/intro) +- [Testing Best Practices](https://playwright.dev/docs/best-practices) +- [API Reference](https://playwright.dev/docs/api/class-playwright) +- [Examples and Patterns](https://playwright.dev/docs/test-runners) + +## 🔗 Related Links + +- [Official Website](https://playwright.dev/) +- [GitHub Repository](https://github.com/microsoft/playwright) +- [Community Discussions](https://github.com/microsoft/playwright/discussions) +- [1Panel Documentation](https://1panel.cn/docs/) + +## 📄 License + +This project follows the open source license of Playwright. For details, please refer to the [official repository](https://github.com/microsoft/playwright). + +## 🤝 Contributing + +Welcome to submit Issues and Pull Requests to help improve this application configuration. \ No newline at end of file diff --git a/apps/playwright/data.yml b/apps/playwright/data.yml new file mode 100644 index 0000000..0c7cd74 --- /dev/null +++ b/apps/playwright/data.yml @@ -0,0 +1,24 @@ +name: Playwright +tags: + - 开发工具 + - 实用工具 +title: Playwright +description: 基于 Playwright 的自动化测试环境 +additionalProperties: + key: playwright + name: Playwright + tags: + - DevTool + - Tool + shortDescZh: 专业的 Web 应用自动化测试环境 + shortDescEn: Professional web application automation testing environment + description: + zh: 基于 Microsoft Playwright 的现代 Web 应用自动化测试环境。支持 Chromium、Firefox 和 WebKit 浏览器,提供完整的端到端测试解决方案。 + en: Modern web application automation testing environment based on Microsoft Playwright. Supports Chromium, Firefox, and WebKit browsers with comprehensive end-to-end testing solutions. + type: website + crossVersionUpdate: true + limit: 0 + recommend: 1 + website: https://playwright.dev/ + github: https://github.com/microsoft/playwright + document: https://playwright.dev/docs/intro \ No newline at end of file diff --git a/apps/playwright/logo.png b/apps/playwright/logo.png new file mode 100644 index 0000000..74558c6 Binary files /dev/null and b/apps/playwright/logo.png differ