Skip to content

Commit 3930463

Browse files
authored
v0.1.4
1. dynamically generate steps based on dom diff; 2. remove unused variables and prompt instructions 3. improve README SEO & recommend models
2 parents e0c146b + 848336d commit 3930463

File tree

12 files changed

+1303
-185
lines changed

12 files changed

+1303
-185
lines changed

README.md

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
<h1 align="center">WebQA Agent</h1>
1+
<!-- SEO Meta Information and Structured Data -->
2+
<div itemscope itemtype="https://schema.org/SoftwareApplication" align="center" xmlns="http://www.w3.org/1999/html">
3+
<meta itemprop="name" content="WebQA Agent: Autonomous Web Testing & Quality Assurance">
4+
<meta itemprop="description" content="AI-powered autonomous web browser agent that audits performance, functionality, UX, and security for comprehensive website testing and quality assurance">
5+
<meta itemprop="applicationCategory" content="Web Testing Software">
6+
<meta itemprop="operatingSystem" content="Cross-platform">
7+
<meta itemprop="programmingLanguage" content="Python">
8+
<meta itemprop="url" content="https://github.com/MigoXLab/webqa-agent">
9+
<meta itemprop="softwareVersion" content="latest">
10+
<meta itemprop="license" content="Apache-2.0">
11+
<meta itemprop="keywords" content="vibecoding, web evaluation, autonomous, web testing, automation, AI testing, browser automation, quality assurance, performance testing, UX testing, security testing, functional testing">
12+
13+
<h1 align="center" itemprop="name">WebQA Agent</h1>
214

315
<!-- badges -->
416
<p align="center">
@@ -11,12 +23,18 @@
1123

1224
<p align="center">
1325
Try Demo 🤗<a href="https://huggingface.co/spaces/mmmay0722/WebQA-Agent">HuggingFace</a> | 🚀<a href="https://modelscope.cn/studios/mmmmei22/WebQA-Agent/summary">ModelScope</a><br>
14-
Join us on 🎮<a href="https://discord.gg/K5TtkVcx">Discord</a> | 💬<a href="https://aicarrier.feishu.cn/docx/NRNXdIirXoSQEHxhaqjchUfenzd">WeChat</a>
26+
Join us on 🎮<a href="https://discord.gg/fG5QAxYyNr">Discord</a> | 💬<a href="https://aicarrier.feishu.cn/docx/NRNXdIirXoSQEHxhaqjchUfenzd">WeChat</a>
1527
</p>
1628

1729
<p align="center"><a href="README.md">English</a> · <a href="README_zh-CN.md">简体中文</a></p>
1830

19-
<p align="center">🤖 <strong>WebQA Agent</strong> is an autonomous web browser agent that audits performance, functionality & UX for engineers and vibe-coding creators. ✨</p>
31+
<p align="center" itemprop="description">🤖 <strong>WebQA Agent</strong> is an autonomous web browser agent that audits performance, functionality & UX for engineers and vibe-coding creators. ✨</p>
32+
33+
</div>
34+
35+
<!-- Additional SEO Keywords and Context
36+
vibecoding, vibe coding, web evaluation, autonomous exploration, web testing automation, browser testing tool, AI-powered QA, automated web testing, website performance analysis, functional testing automation, user experience testing, UX, security vulnerability scanning, browser testing, web application testing, quality assurance automation, automated UI testing, web accessibility testing, performance monitoring, website audit tool, vibecoding testing, web development
37+
-->
2038

2139
## 🚀 Core Features
2240

@@ -28,18 +46,26 @@
2846

2947
### 📋 Feature Highlights
3048

31-
- **🤖 AI-Powered Testing**: WebQA Agent autonomously conducts website testing, from page crawling and test case generation to execution, achieving end-to-end functional test automation.
32-
- **📊 Multi-Dimensional Test**: Covers core testing scenarios, including functionality, performance, user experience, and security, evaluating page load speed, design details, and links for comprehensive system quality assurance.
33-
- **🎯 Precise Diagnostics**: Performs deep testing in real browser environments and provides actionable optimization recommendations.
34-
- **📈 Visual Reports**: Generates detailed HTML test reports with a multi-dimensional visual presentation of results for easy analysis and tracking.
49+
- **🤖 AI-Powered Testing**: Performs autonomous website testing—explores pages, plans actions, and executes end-to-end flows without manual scripting.
50+
- **📊 Multi-Dimensional Observation**: Covers functionality, performance, user experience, and basic security; evaluates load speed, design details, and links to surface issues.
51+
- **🎯 Actionable Recommendations**: Runs in real browsers and provides concrete suggestions for improvement.
52+
- **📈 Visual Reports**: Generates detailed HTML test reports with clear, multi-dimensional views for analysis and tracking.
53+
54+
## 📹 Examples
3555

56+
- **🤖 Conversational UI**: [Autonomously plans goals and interacts across a dynamic chat interface](https://pub-2c31c87660254d7bba9707e2b56fc15b.r2.dev/%E6%99%BA%E8%83%BDCase%E7%94%9F%E6%88%90.mp4)
57+
- **🎨 Creative Page**: [Explores page structure, identifies elements](https://pub-2c31c87660254d7bba9707e2b56fc15b.r2.dev/vibecoding.mp4)
58+
59+
Try Demo: [🤗Hugging Face](https://huggingface.co/spaces/mmmay0722/WebQA-Agent) · [🚀ModelScope](https://modelscope.cn/studios/mmmmei22/WebQA-Agent/summary)
3660

3761
## Installation & Configuration
3862

3963
### 🚀 One-Click Docker Setup
4064

4165
Before starting, ensure Docker is installed. If not, please refer to the official installation guide: [Docker Installation Guide](https://docs.docker.com/get-started/get-docker/).
4266

67+
Recommended versions: Docker >= 24.0, Docker Compose >= 2.32.
68+
4369
```bash
4470
# 1. Download configuration template
4571
mkdir -p config && curl -fsSL https://raw.githubusercontent.com/MigoXLab/webqa-agent/main/config/config.yaml.example -o config/config.yaml
@@ -65,14 +91,14 @@ pip install -r requirements.txt
6591
playwright install
6692
```
6793

68-
Performance Testing - Lighthouse Installation (Optional)
94+
Performance Analysis - Lighthouse (Optional)
6995

7096
```bash
7197
# Requires Node.js >= 18.0.0
7298
npm install
7399
```
74100

75-
Security Testing - Nuclei Installation (Optional)
101+
Security Scanning - Nuclei (Optional)
76102

77103
Download from: [Nuclei Releases](https://github.com/projectdiscovery/nuclei/releases/)
78104

@@ -93,12 +119,6 @@ After configuring `config/config.yaml` (refer to "Usage > Test Configuration"),
93119
python webqa-agent.py
94120
```
95121

96-
## Online Demo
97-
98-
🚀 **Try WebQA Agent Online:**
99-
- **Hugging Face Spaces**: [WebQA-Agent on Hugging Face](https://huggingface.co/spaces/mmmay0722/WebQA-Agent)
100-
- **ModelScope Studio**: [WebQA-Agent on ModelScope](https://modelscope.cn/studios/mmmmei22/WebQA-Agent/summary)
101-
102122
## Usage
103123

104124
### Test Configuration
@@ -117,9 +137,9 @@ test_config: # Test configuration
117137
business_objectives: example business objectives # Recommended to include test scope, e.g., test search functionality
118138
ux_test: # User experience testing
119139
enabled: True
120-
performance_test: # Performance testing
140+
performance_test: # Performance analysis
121141
enabled: False
122-
security_test: # Security testing
142+
security_test: # Security scanning
123143
enabled: False
124144

125145
llm_config: # Vision model configuration, currently supports OpenAI SDK compatible format only
@@ -138,23 +158,34 @@ Please note the following important considerations when configuring and running
138158
139159
#### 1. Functional Testing Notes
140160
141-
- **AI Mode**: When specifying the number of test cases to generate in the configuration file, the system may re-plan based on based on actual testing conditions. This may result in the final number of executed test cases differing from the initial configuration to ensure testing accuracy and effectiveness.
161+
- **AI Mode**: When specifying the number of test cases to generate in the configuration file, the system may re-plan based on actual page conditions. This may result in the final number of executed test cases differing from the initial configuration to ensure coverage and effectiveness.
142162
143-
- **Default Mode**: The `default` mode of functional testing primarily verifies whether UI element clicks execute successfully, including basic interactive functions like button clicks and link navigation.
163+
- **Default Mode**: The `default` mode focuses on whether UI interactions (e.g., clicks and navigations) complete successfully.
144164

145165
#### 2. User Experience Testing Notes
146166

147-
UX (User Experience) testing focuses on evaluating website interaction design, usability, and user-friendliness. The model output in the test results provides suggestions for improvement suggestions based on user experience best practices to guide development and design teams in optimization.
167+
UX (User Experience) testing focuses on usability, and user-friendliness. The model output in the results provides suggestions based on best practices to guide optimization.
168+
169+
### 🧠 Recommended Models
170+
171+
Based on our testing, these models work well with WebQA Agent:
172+
173+
| Model | Key Strengths | Notes |
174+
|-------|---------------|-------|
175+
| **gpt-4.1-2025-04-14** ⭐ | High accuracy & reliability | **Best choice** |
176+
| **gpt-4.1-mini-2025-04-14** | Cost-effective | **Economical and practical**|
177+
| **doubao-seed-1-6-vision-250815n** | Vision capabilities | **Excellent web understanding** |
178+
148179

149-
## View Results
180+
### View Results
150181

151182
Test results will be generated in the `reports` directory. Open the HTML report within the generated folder to view results.
152183

153184
## Roadmap
154185

155186
1. Continuous optimization of AI functional testing: Improve coverage and accuracy
156187
2. Functional traversal and page validation: Verify business logic correctness and data integrity
157-
3. Interaction and visualization: Test case visualization and local service real-time reasoning process display
188+
3. Interaction and visualization: Test item visualization and local service real-time reasoning process display
158189
4. Capability expansion: Multi-model integration and more evaluation dimensions
159190

160191
## Acknowledgements

README_zh-CN.md

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
<h1 align="center">WebQA Agent</h1>
1+
<!-- SEO Meta Information and Structured Data -->
2+
<div itemscope itemtype="https://schema.org/SoftwareApplication" align="center" xmlns="http://www.w3.org/1999/html">
3+
<meta itemprop="name" content="WebQA Agent: 全自动网页测试与质量保证工具">
4+
<meta itemprop="description" content="AI驱动的自主网页浏览器代理,提供性能、功能、用户体验和安全性的全面网站测试与质量保证服务">
5+
<meta itemprop="applicationCategory" content="网页测试软件">
6+
<meta itemprop="operatingSystem" content="跨平台">
7+
<meta itemprop="programmingLanguage" content="Python">
8+
<meta itemprop="url" content="https://github.com/MigoXLab/webqa-agent">
9+
<meta itemprop="softwareVersion" content="latest">
10+
<meta itemprop="license" content="Apache-2.0">
11+
<meta itemprop="keywords" content="Vibecoding, 网页评估, 自主探索, 自动化, AI, 浏览器自动化, 网页质量保障, 网页性能, 用户体验, 安全检查, 网页功能, 功能测试"/>
12+
13+
<h1 align="center" itemprop="name">WebQA Agent</h1>
214

315
<!-- badges -->
416
<p align="center">
@@ -17,6 +29,11 @@
1729
<p align="center"><a href="README.md">English</a> · <a href="README_zh-CN.md">简体中文</a></p>
1830

1931
<p align="center">🤖 <strong>WebQA Agent</strong> 是全自动网页评估测试 Agent,一键完成性能、功能与交互体验的测试评估 ✨</p>
32+
</div>
33+
34+
<!-- Additional SEO Keywords and Context
35+
Vibecoding, Vibe coding, 网页测试自动化, 浏览器测试工具, AI驱动质量保障, 自动化网页测试, 网站性能分析, 功能测试自动化, 用户体验测试, 安全漏洞扫描, 浏览器测试, 网页应用测试, 自动化UI测试, 网页可访问性测试, 性能监控, 网站审计工具, 智能测试用例生成, 端到端测试, 回归测试, 兼容性测试, Vibecoding测试, 网页开发
36+
-->
2037

2138
## 🚀 核心特性
2239

@@ -28,18 +45,27 @@
2845

2946
### 📋 特性概览
3047

31-
- **🤖 AI智能测试**:WebQA-Agent能够自主进行网站测试,从页面抓取、用例生成与执行,实现端到端功能测试自动化
32-
- **📊 多维度评估**:覆盖功能、性能、用户体验、安全等核心测试场景,评估页面加载速度、设计细节和链接,全面保障系统质量
33-
- **🎯 精准诊断**:基于真实浏览器环境的深度测试,提供可操作的优化建议
34-
- **📈 可视化报告**:生成详细的HTML测试报告,多维度、可视化展示测试结果,便于分析与追踪
48+
- **🤖 AI 自主测试**:WebQA-Agent能够自主进行网站测试,无需手写脚本,自动探索页面、规划动作并执行端到端流程
49+
- **📊 多维度观测**:覆盖功能、性能、用户体验、安全等核心场景,评估页面加载速度、设计细节和链接,全面保障系统质量
50+
- **🎯 可执行建议**:基于真实浏览器运行,输出具体的优化与改进建议
51+
- **📈 可视化报告**:生成详细的HTML测试报告,多维度、可视化展示执行结果,便于分析与追踪
52+
53+
## 📹 示例演示
54+
55+
- **🤖 对话界面**: [AI 自主生成目标与步骤,在动态聊天页面中理解上下文并执行](https://pub-2c31c87660254d7bba9707e2b56fc15b.r2.dev/%E6%99%BA%E8%83%BDCase%E7%94%9F%E6%88%90.mp4)
3556

57+
- **🎨 静态页面**: [AI 自主探索页面结构、识别元素](https://pub-2c31c87660254d7bba9707e2b56fc15b.r2.dev/vibecoding.mp4)
58+
59+
体验Demo: [🤗Hugging Face](https://huggingface.co/spaces/mmmay0722/WebQA-Agent) · [🚀ModelScope](https://modelscope.cn/studios/mmmmei22/WebQA-Agent/summary)
3660

3761
## 安装与配置
3862

3963
### 🚀 Docker一键启动
4064

4165
在开始之前,请确保已安装 Docker。如未安装,请参考官方安装指南:[Docker 安装指南](https://docs.docker.com/get-started/get-docker/)
4266

67+
推荐版本: Docker >= 24.0, Docker Compose >= 2.32.
68+
4369
```bash
4470
# 1. 下载配置文件模板
4571
mkdir -p config && curl -fsSL https://raw.githubusercontent.com/MigoXLab/webqa-agent/main/config/config.yaml.example -o config/config.yaml
@@ -66,15 +92,15 @@ playwright install
6692

6793
```
6894

69-
性能测试 - Lighthouse 安装(可选)
95+
性能分析 - Lighthouse 安装(可选)
7096

7197
```bash
7298
# 需要 Node.js >= 18.0.0 package.json
7399
npm install
74100

75101
```
76102

77-
安全测试 - Nuclei 安装(可选)
103+
安全扫描 - Nuclei 安装(可选)
78104

79105
下载地址: [Nuclei Releases](https://github.com/projectdiscovery/nuclei/releases/)
80106

@@ -96,12 +122,6 @@ nuclei -version # 验证安装成功
96122
python webqa-agent.py
97123
```
98124

99-
## 在线演示
100-
101-
🚀 **在线体验 WebQA Agent:**
102-
- **Hugging Face Spaces**: [WebQA-Agent on Hugging Face](https://huggingface.co/spaces/mmmay0722/WebQA-Agent)
103-
- **ModelScope Studio**: [WebQA-Agent on ModelScope](https://modelscope.cn/studios/mmmmei22/WebQA-Agent/summary)
104-
105125
## 使用说明
106126

107127
### 测试配置
@@ -120,9 +140,9 @@ test_config: # 测试项配置
120140
business_objectives: example business objectives # 建议加入测试范围,如:测试搜索功能
121141
ux_test: # 用户体验测试
122142
enabled: True
123-
performance_test: # 性能测试
143+
performance_test: # 性能分析
124144
enabled: False
125-
security_test: # 安全测试
145+
security_test: # 安全扫描
126146
enabled: False
127147

128148
llm_config: # 视觉模型配置,当前仅支持 OpenAI SDK 兼容格式
@@ -147,17 +167,27 @@ browser_config:
147167

148168
#### 2. 用户体验测试说明
149169

150-
UX(用户体验)测试专注于评估网站的交互设计、可用性和用户友好程度。测试结果中包含的模型输出内容是基于用户体验最佳实践提供的改进建议,供开发和设计团队参考优化。
170+
UX(用户体验)评估关注网页可用性与友好性。结果中的模型输出基于最佳实践给出改进建议,便于设计与开发参考。
171+
172+
### 🧠 推荐模型
173+
174+
基于实际测试结果,以下模型表现较好,推荐使用:
175+
176+
| 模型 | 核心优势 | 使用建议 |
177+
|------|----------|----------|
178+
| **gpt-4.1-2025-04-14** ⭐ | 高准确性与可靠性 | **最佳选择** |
179+
| **gpt-4.1-mini-2025-04-14** | 性价比高 | **经济实用** |
180+
| **doubao-seed-1-6-vision-250815** | 支持视觉识别 | **网页理解优异** |
151181

152-
## 查看结果
182+
### 查看结果
153183

154184
在 `reports` 目录会生成本次测试的文件夹,打开其中的 HTML 报告即可查看结果。
155185

156186
## RoadMap
157187

158-
1. AI功能测试持续优化:提升覆盖率与准确性
188+
1. AI智能功能功能测试持续优化:提升覆盖率与准确性
159189
2. 功能遍历与页面校验:校验业务逻辑正确性与数据完整性
160-
3. 交互与可视化:用例可视化与本地服务实时展示推理过程
190+
3. 交互与可视化:测试项可视化与本地服务实时展示推理过程
161191
4. 能力扩展:多模型接入与更多评估维度集成
162192

163193
## 致谢

webqa-agent.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ def build_test_configurations(cfg, cookies=None):
222222
"test_specific_config": {
223223
"cookies": cookies,
224224
"business_objectives": tconf["function_test"].get("business_objectives", ""),
225+
"dynamic_step_generation": tconf["function_test"].get("dynamic_step_generation", {}),
225226
},
226227
}
227228
)

webqa_agent/crawler/deep_crawler.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,8 @@ async def crawl(
289289
current_url=page.url
290290
)
291291

292-
logging.debug(f"DOM change result: {diff_elements}")
292+
if diff_elements["has_changes"]:
293+
logging.debug(f"DOM change result: {diff_elements}")
293294

294295
result.diff_element_map = ElementMap(data=self.extract_interactive_elements(get_new_elems=True))
295296

webqa_agent/executor/test_runners.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ async def run_test(
5959
business_objectives = test_config.test_specific_config.get('business_objectives', '')
6060
logging.info(f"{icon['running']} Running test: {test_config.test_name} with business objectives: {business_objectives}")
6161

62+
# Extract dynamic step generation configuration
63+
dynamic_step_config = test_config.test_specific_config.get('dynamic_step_generation', {
64+
"enabled": False,
65+
"max_dynamic_steps": 5,
66+
"min_elements_threshold": 2
67+
})
68+
6269
cookies = test_config.test_specific_config.get('cookies')
6370

6471
initial_state = {
@@ -72,6 +79,7 @@ async def run_test(
7279
'current_test_case_index': 0,
7380
'skip_reflection': False, # Initialize skip reflection flag
7481
'language': test_config.report_config.get('language', 'zh-CN'),
82+
'dynamic_step_generation': dynamic_step_config, # Pass dynamic step generation config
7583
}
7684

7785
graph_config = {'configurable': {'ui_tester_instance': parallel_tester}, 'recursion_limit': 100}

0 commit comments

Comments
 (0)