Ranorex
一款功能强大的自动化测试工具,广泛应用于桌面、Web 和移动应用的测试。
Midscene.js 是一款基于 AI 技术的自动化 SDK,旨在简化 UI 自动化测试流程。它通过大型语言模型(LLM)解析用户的自然语言指令,执行相应的操作(如输入文本、点击按钮等)。
Midscene.js 支持动作执行、数据查询和页面断言,并提供可视化报告,帮助用户轻松调试和优化测试流程。作为开源项目,用户可在自有环境中运行,确保数据安全。它支持与 YAML 脚本、Puppeteer 和 Playwright 等工具集成,适用于多种自动化测试场景。
Midscene.js 提供了三种关键方法,覆盖测试全流程:
| 方法 | 功能描述 | 示例 |
|---|---|---|
交互(.ai/.aiAction) |
描述测试步骤并执行交互(如点击、输入) | await ai('在搜索框输入 "Headphones" ,敲回车'); |
提取(.aiQuery) |
从 UI 中提取数据并返回 JSON 格式结果 | const items = await aiQuery('{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格'); |
断言(.aiAssert) |
验证 UI 状态是否符合预期 | (示例中结合 console.log 输出验证结果) |
实战示例:
// 输入关键字,执行搜索(支持中文指令控制英文页面)
await ai('在搜索框输入 "Headphones" ,敲回车');
// 提取列表中耳机商品信息
const items = await aiQuery(
'{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格'
);
console.log("headphones in stock", items);
运行结束后,Midscene.js 生成可视化报告和调试 Playground,支持:
Midscene.js 的核心流程基于以下技术模块:
验证登录页面功能:
.aiAction 方法);.aiQuery 方法);.aiAssert 方法)。import { expect } from "@playwright/test";
import { test } from "./fixture";
test.beforeEach(async ({ page }) => {
page.setViewportSize({ width: 400, height: 905 });
await page.goto("https://www.ebay.com");
await page.waitForLoadState("networkidle");
});
test("search headphone on ebay", async ({ ai, aiQuery, aiAssert }) => {
// 输入关键字并搜索(中文指令控制英文页面)
await ai('在搜索框输入 "Headphones" ,敲回车');
// 提取商品信息并验证
const items = await aiQuery(
'{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格'
);
// (此处可添加断言逻辑,如验证商品数量或价格范围)
});
运行后生成可视化报告,包含: