基于 Qwen3-VL 的自然语言驱动智能测试
在现代软件交付节奏日益加快的背景下,自动化测试正面临前所未有的挑战:前端框架频繁重构、组件动态加载、跨平台适配复杂……而最令人头疼的问题之一,莫过于传统基于 DOM 的选择器极易失效。一个 class 名称的微小变更,就可能导致整套 Selenium 脚本崩溃。
我们是否必须依赖 XPath 或 CSS 选择器才能完成'点击登录按钮'这样的基本操作?当 AI 开始真正'看懂'用户界面时,答案已经是否定的。
阿里开源的 Qwen3-VL 镜像,内置 Qwen3-VL-4B-Instruct 模型,集成了强大的视觉 - 语言理解能力,正在重新定义 UI 自动化测试的方式——通过自然语言指令 + 屏幕截图,即可生成可执行的测试逻辑。它不再是一个被动执行代码的工具,而是一个具备'观察—理解—决策—行动'能力的视觉代理(Visual Agent)。
视觉代理:让 AI 像用户一样'看见'并操作界面
传统自动化框架如 Selenium、Playwright 或 Appium,本质上是基于控件树的路径寻址系统。它们依赖 HTML 结构中的 ID、class、tag 等属性来定位元素。一旦开发团队调整了 DOM 层级或重命名类名,原本稳定的脚本就会报错,维护成本极高。
Qwen3-VL 采用了一种更接近人类行为的方式:直接通过视觉输入进行交互决策。你只需提供一张截图和一句自然语言指令,例如:
'请登录系统,账号为 [email protected],密码 123456'
模型就能自主完成以下流程:
- 视觉编码:使用高性能 ViT 主干网络提取图像特征;
- 语义对齐:将'账号'、'密码'等关键词与界面上的输入框建立关联;
- OCR 识别:提取所有可见文本内容,辅助判断功能区域;
- 空间定位:输出目标元素的边界框坐标(x, y, w, h);
- 动作规划:生成带有显式等待机制的 Selenium/Playwright 代码。
这种模式彻底摆脱了对底层 DOM 结构的依赖,使得同一套测试逻辑可以无缝应用于 Web、移动端原生应用甚至 Electron 桌面程序——只要视觉呈现一致。
from qwen_vl import QwenVLAgent
agent = QwenVLAgent(model="Qwen3-VL-4B-Instruct", mode="instruct")
def generate_login_test(screenshot_path: str):
prompt = """你是一个自动化测试工程师,请根据以下界面截图,生成一段 Python 格式的 Selenium WebDriver 代码,实现:
- 输入邮箱 [email protected] 到用户名字段
- 输入密码 123456 到密码字段
- 点击'登录'按钮
要求:
- 使用 WebDriverWait 确保元素加载完成
- 包含必要的导入语句
- 添加每一步的操作注释"""
response = agent.infer(image=screenshot_path, text=prompt)
return response["code"]
# 示例调用
test_code = generate_login_test("login_page.png")
print(test_code)

