掘金 人工智能 07月14日 17:08
基于AI的智能自动化测试系统:从Excel到双平台测试的完整解决方案
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

该项目旨在构建一个基于AI的智能自动化测试系统,能够从Excel文件读取测试用例,并利用大模型解析自然语言测试步骤,实现Web端(browser-use)和Android端(droidrun)等多平台支持。系统核心特性包括Excel驱动、AI智能解析、智能代理选择、多平台支持、结果回写和实时日志。通过结合AI技术,该系统旨在降低测试门槛,提高测试效率,并提供完整的测试结果追踪。

💡 **Excel驱动的测试用例**:系统能够直接读取Excel文件中的测试用例,用户可以使用自然语言描述测试步骤,降低了使用门槛,使得非专业人士也能轻松编写测试用例。

🤖 **AI智能解析**:利用大模型解析Excel中的自然语言测试步骤,将其转换为结构化的测试步骤,从而实现自动化测试。AI解析器是系统的核心组件,负责将自然语言转化为可执行的指令。

⚙️ **智能代理选择**:系统根据测试用例内容自动选择最适合的执行引擎,支持Web端(browser-use)和Android端(droidrun)等多平台。代理选择器通过关键词分析和平台识别,选择最佳执行引擎。

📊 **结果回写与实时日志**:测试执行结果将自动写回Excel文件,并提供详细的执行日志和状态跟踪,方便用户了解测试过程和结果。

💡 **零代码测试编写**:用户只需在Excel中用自然语言描述测试步骤,系统自动解析并执行。例如,用户可以编写“打开百度首页,搜索关键词”等测试步骤。

基于AI的智能自动化测试系统:从Excel到全平台测试的完整解决方案

前言

最近在网上找相关的AI测试工具,有的只适合纯web用例执行,但是我司又是传统硬件需要web+android设备仪器测试,找了好久没找到合适的,干脆自己结合市面上比较好用的browser-use和Droidrun自己写一个。

项目概述

🎯 核心特性

🏗️ 技术架构

智能AI自动化测试系统├── 核心层 (Core)│   ├── 配置管理 (Config)│   ├── Excel处理 (Excel Handler)│   ├── AI解析器 (AI Parser)│   └── 智能执行器 (Smart Executor)├── 代理层 (Agents)│   ├── Browser-Use代理 (Web自动化)│   ├── DroidRun代理 (Android自动化)│   └── 智能选择器 (Agent Selector)└── 工具层 (Utils)    ├── 日志系统 (Logging)    ├── 测试用例模型 (Test Case)    └── 结果处理 (Result Handler)

核心技术实现

1. AI解析器:自然语言到结构化步骤

AI解析器是系统的核心组件,负责将Excel中的自然语言测试用例转换为结构化的测试步骤。

class AIParser:    """AI解析器"""        def __init__(self, config: Config):        self.config = config        self.api_key = config.ai.api_key        self.base_url = config.ai.base_url            async def parse_test_case(self, test_case: dict) -> ParsedTestCase:        """解析测试用例"""        prompt = self._build_prompt(test_case)                # 调用FastGPT API        response = await self._call_ai_api(prompt)                # 解析AI响应        return self._parse_ai_response(response, test_case)

2. 智能代理选择器:自动选择最佳执行引擎

代理选择器通过关键词分析和平台识别,自动选择最适合的执行引擎。

class AgentSelector:    """智能代理选择器"""        def __init__(self):        self.platform_keywords = {            "browser-use": [                "web", "网页", "浏览器", "登录", "搜索", "点击"            ],            "droidrun": [                "android", "手机", "app", "应用", "滑动", "长按"            ]        }        def select_agent(self, test_case: TestCase) -> Tuple[str, float]:        """选择代理"""        scores = {"browser-use": 0.0, "droidrun": 0.0}                # 平台直接匹配        if test_case.platform.lower() in ["pc", "web"]:            scores["browser-use"] += 0.5        elif test_case.platform.lower() in ["android", "mobile"]:            scores["droidrun"] += 0.5                # 关键词匹配        content = f"{test_case.name} {test_case.steps} {test_case.expected}"        for agent, keywords in self.platform_keywords.items():            for keyword in keywords:                if keyword in content:                    scores[agent] += 0.1                # 选择得分最高的代理        selected_agent = max(scores, key=scores.get)        confidence = scores[selected_agent]                return selected_agent, confidence

核心挑战与解决方案

1. FastGPT与browser-use的兼容性问题

问题描述:FastGPT返回的JSON格式与browser-use期望的Action模型结构不匹配。如果是用browser-use直接传递gpt的key和指定模型的话,这个问题其实并没有,但是调用频率太恐怖了,用自己跑的模型能省不少钱。

FastGPT返回: {"go_to_url": {"url": "https://example.com"}}browser-use期望: {"go_to_url": "https://example.com"}

解决方案

    详细的系统提示词:指导FastGPT返回正确格式(最好是迁移原始的模型适配文件SchemaOptimizer类和提示词迁移,官网已经提了issue,后续有进展会在评论区同步)响应格式验证:在执行前验证响应格式模拟模式降级:当API不可用时自动切换到模拟执行

项目亮点

1. 零代码测试编写

用户只需在Excel中用自然语言描述测试步骤,系统自动解析并执行。

示例

测试用例名称: 百度搜索测试执行平台: PC测试步骤: 1. 打开百度首页 https://www.baidu.com2. 在搜索框中输入'AI自动化测试'3. 点击搜索按钮4. 验证搜索结果页面显示预期结果: 搜索结果正常显示

2. 智能代理选择

系统根据测试用例内容自动选择最适合的执行引擎:

3. 完整的结果追踪

技术栈

核心技术

依赖库

# requirements.txtloguru>=0.6.0          # 日志系统pydantic>=1.10.0       # 数据验证openpyxl>=3.0.0        # Excel处理aiohttp>=3.8.0         # HTTP客户端browser-use>=0.4.2     # Web自动化droidrun>=1.0.0        # Android自动化

使用示例

1. 基本使用

from core.smart_executor import SmartTestExecutorfrom utils.config import Config# 加载配置config = Config()# 创建执行器executor = SmartTestExecutor(config)# 执行测试await executor.run_tests("test_cases.xlsx")

2. 自定义测试用例

from core.test_case import TestCase# 创建测试用例test_case = TestCase(    name="登录测试",    platform="PC",    steps="1. 访问登录页面\n2. 输入用户名\n3. 输入密码\n4. 点击登录",    expected="登录成功")# 执行单个测试用例result = await executor.execute_test_case(test_case)

总结

测试用例步骤清晰的情况下,可以节省测试80%的回归时间,但是在使用中会有奇奇怪怪的问题,建议是添加测试平台或者安卓的知识库给模型调用。


唉,一个前端现在卷的奇奇怪怪的,真想做一只无忧无虑的三角洲鼠鼠。其实想拓展平台也可以,现在windows和ios也有类似工具,原理是相通的,主要是ai分析图像然后解析步骤,各平台的调用其实之前都有。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI测试 自动化测试 browser-use droidrun
相关文章