您的测试仍然使用 Playwright、Selenium 和 pytest。我们不会取代它们。我们让它们满足企业级需求,而您拥有一切:代码、证据和历史记录。

Studio 的每个界面,以及各自的用途。

在这些界面中创建、运行、调度测试并评判结果。命令行则留给流水线使用。

测试是否采用标准的 Playwright、Selenium 和 pytest 代码?

文件是什么样的

是的。Studio 编写或导入的每项测试都采用团队熟悉的框架代码。引擎在其周围增加证据留存、遥测、结果判定和自愈功能,而不会取代这些代码。

  • Playwright, JavaScript 和 TypeScript: 一个 Playwright Test 文件。顶部导入的是 Studio 的 fixture;主体使用 page、定位器和 expect。
  • Playwright, Python: 标准的 pytest-playwright,一个接收 page 的 test_ 函数。仅使用 pytest 即可运行。
  • Selenium, Python: 使用 driver fixture 的 pytest。当测试不是由引擎运行时,工作区的 conftest.py 会回退到普通 WebDriver。
  • Selenium, JavaScript: 在 run({ driver, By, until }) 中编写 selenium-webdriver 代码。Studio 的运行器负责创建和退出驱动程序。
  • Selenium, Java: JUnit 5, @ExtendWith(NexusExtension.class), 由扩展提供的 WebDriver 参数。使用 Maven 构建。
  • Selenium 和 Playwright, C#: NUnit, 继承 NexusSeleniumTest 或 NexusPageTest 的类。使用 .NET 构建。
  • API 测试使用 Studio 自有的 JavaScript 格式。

如何迁出

您的测试、证据和历史记录都以文件形式存放在工作区中。要脱离 Nexus 运行测试套件:Python 测试可直接运行,Playwright JavaScript 的导入需改回指向 @playwright/test(如果添加了视觉检查点,则需要替换),Selenium JavaScript 的 run() 函数则需添加几行启动驱动程序的代码。API 测试需要为其他运行器重写。

创建

Patrol

编写、运行和调度测试的地方。树状列表展示每项测试,各浏览器都有对应图标,并以颜色表示状态;编辑器上方的运行状态栏用文字说明每个浏览器正在执行的操作。

  • 五个选项卡:测试用例、运行巡检、Nexus Recorder、AI 编写器和测试适配器。
  • 目标:桌面浏览器矩阵(Chromium、Firefox 和 WebKit)、移动设备模拟、真机(真实的 Android 手机),或桌面 + 真机,同时在电脑和 Android 手机上运行,证据按各自的身份归档。
  • 默认逐个浏览器依次运行,也可设置为最多同时运行三个浏览器,并同时运行多项测试。Selenium 可在 Chromium 和 Firefox 上运行。
  • 新测试会先在不写入历史记录的沙盒中试运行,之后的运行才会正式计入。
  • 功能开关: 每个开关可设为开启、关闭或两种状态都运行,通过 cookie、请求头、本地存储或查询字符串传递;卡片会标明导致测试失败的开关组合。

AI writer

根据您的描述,使用您选择的 AI 编写测试:您自己的 AI 命令行工具(Claude Code、Codex 或 opencode),或 API、本地 Ollama 模型、Anthropic 或 OpenAI。可使用 JavaScript、TypeScript、Python 或 C# 编写 Playwright 测试,以及使用 JavaScript、Python、Java 或 C# 编写 Selenium 测试。

  • 三种工作方式:与我的 AI 聊天、逐步进行(规划用例,再编写您选中的用例),或使用我的智能体,为您自己终端中的智能体提供任务说明。
  • 它最多可读取您应用中的四个页面,以只读方式访问且不登录,让测试能够引用真实的元素。
  • 命令行工具在空文件夹中运行且不使用任何工具,或在其专用的只读沙盒中运行;每个目标位置都需事先征得您的同意。
  • 每项测试都要通过审查,包含七项不使用 AI 的检查:有测试 ID、可解析、使用 Studio 的 fixture、不访问页面以外的任何内容、包含可能失败的断言、不使用固定等待、强制点击或模拟对象,以及不使用脆弱的定位器。
  • 试运行会将测试作为草稿在 Chromium 中运行两次,不写入任何证据或历史记录。在您打开代码之前,接受按钮始终处于禁用状态。

通过专属命令行使用您的 AI

  • Claude Code
  • Codex
  • opencode

编写器会启动您在本机上已登录的命令行工具,因此无需将 API 密钥粘贴到 Studio 中。您在该工具上的套餐仍然适用。也可以选择使用提供商的 API 密钥或本地 Ollama 模型。

Studio 如何启动 Claude Code,逐个参数说明:

claude -p --output-format json --tools "" --disable-slash-commands

--strict-mcp-config --setting-sources "" --no-session-persistence

--permission-mode dontAsk --max-budget-usd 1

提示词通过 stdin 传入。不使用工具,不连接 MCP 服务器,不加载你自己的设置或钩子,不保存为会话,而且每次调用都有费用上限:默认为一美元。

Nexus Recorder

将你在浏览器中的操作录制为测试代码。全程没有 AI 参与:你点击什么,就记录什么。

  • 支持录制桌面端, 模拟移动端或真实设备: 通过 USB 连接 Android 手机,操控手机自带的 Chrome. 目前仅支持 JavaScript 和 Python; Java 和 C# 支持桌面端录制。
  • 生成 JavaScript, TypeScript, Python 或 C# 的 Playwright 代码,或 JavaScript, Python, Java 或 C# 的 Selenium 代码。
  • 也可以将页面发出的 API 调用录制为 REST 或 GraphQL 测试,不包含身份验证或 Cookie 请求头,并将疑似敏感信息的字段转换为环境变量。
  • 选择器映射无需 AI 即可扫描页面,将每个选择器评为高、中或低等级,并将映射保存在本地磁盘上。

Test Adapter

将团队现有的测试导入 Studio, 无需手动重写。

  • 粘贴测试、拖入文件或指定文件夹:支持使用 JavaScript、TypeScript 或 Python 编写的 Playwright 或 Selenium 测试,测试框架包括 Playwright Test、mocha、jest、pytest 或 unittest.
  • 按规则重写,而非使用 AI: 浏览器启动和设置会移入 Studio 的测试夹具中,断言、条件、循环和等待则保持原样。
  • 并排显示差异以及修改前后的断言数量。如果有断言丢失,导入将被阻止,除非您逐行接受这些变更。
  • 可选的 AI 仅处理规则未覆盖的内容,其代码须接受严格审查。保留的测试会在沙箱中试运行,直到连续三次无误通过。
  • 不支持 Cypress、WebdriverIO、Robot Framework、Java 和 C#.

修复此行与自愈

定位器失效后会发生什么。任何修复都不会在您不知情的情况下进行。

  • 自愈默认设为建议模式:测试失败后,后台浏览器会将测试重放至失败行并读取页面,提前准备好候选项。不使用 AI, 测试仍保持红色失败状态。
  • 修复此行可从该行的侧边栏启动:仅重新录制该步骤,或替换选择器,优先列出最可靠的选项,XPath 排在最后。更改会出现在编辑器中,但不会自动保存,保存即表示您批准了更改。
  • 让我的 AI 帮忙选择只能重新排列候选项,不会添加新项。文件的上一版本会保留在其时间线中。
  • 定位器健康状况列出当前打开测试中的薄弱定位器,并以同样的方式进行修复。

运行

Devices & Mobile

通过 USB 将真实 Android 手机连接到运行引擎的机器。无需设备农场,无需购买使用时长。

  • 通过 adb 和 Chrome DevTools Protocol 同时连接多部手机,并提供首部手机的连接指南。
  • 查看屏幕将手机画面镜像到 PC 上:可从此屏幕操控手机,从 Patrol 打开时则仅可查看。
  • 移动设备模拟使用 Playwright 的设备配置:支持 Android 上的 Chrome、使用 Safari 引擎 WebKit 的 iPhone 或 iPad, 以及低端设备配置。真机仅支持 Android 手机:iPhone 或 iPad 均为模拟设备,而非 Apple 实体设备,因此不测试 iOS 键盘和系统手势。
  • 每部手机一次只能运行一个测试,且手机测试始终在连接该手机的机器上运行。

Watch

在 Patrol 的运行巡检下:按定时计划重新运行所选测试,无需值守。

  • 可每隔 5 分钟至 24 小时重复运行,或选择在指定日期运行一次. 可手动停止,也可在达到指定运行次数或日期后结束。
  • 它作为独立进程运行,因此关闭 Studio 不会使其停止。运行时需要保持该机器开机:机器休眠期间,计划运行会等待或被跳过。
  • 仅在状态变化时通过 Telegram 或 Slack 发送通知,标记为 ALERT 或 RECOVERED.

CI/CD

在界面上配置流水线,无需使用 YAML 编辑器。

  • 生成 GitHub Actions 或 GitLab CI 文件:包含浏览器、视觉测试、无障碍测试、混沌测试、循环和重试设置,并可在 GitHub 上按指定 UTC 时间,每晚对您选择的测试执行回归测试。
  • 可在云托管运行器、本机或使用 Docker 的本机上运行,并提供 bash 或 PowerShell 运行器脚本。
  • 先在本地验证流水线,再从同一界面提交并推送。也可以在此启动远程运行并下载其证据。
  • 也支持通过脚本集成到 CI: nexus ci 在测试通过时退出码为 0, 失败时为 1, 未运行任何测试时为 2, 并生成 JUnit XML。通过 CI/CD 运行测试

Docker 和 SSH

Studio 是一款 Windows 11 桌面应用,可在您的 PC 上运行,也可选择在 Windows 11 迷你 PC 上运行。通过 Studio, 引擎可以在本机上、在本机的 Docker 中, 或通过 SSH 在另一台计算机上运行工作区的测试套件。Studio 本身绝不会在 Docker 中或通过 SSH 运行。

  • 在 Docker 中,测试套件在使用同一磁盘的运行器容器内运行,因此证据会照常保存到您的工作区。
  • 通过基于密钥的 SSH 访问安装了 Ubuntu 24.04 LTS、Docker Engine 和 Compose v2 的 VPS: 引擎在该主机上使用与本地 Docker 相同的容器镜像运行测试套件,证据会保留在该主机上,直到您将其拉取。
  • 真实 Android 手机测试、Selenium 和 Python 测试套件、基础设施混沌测试以及结果导入始终在 Studio 所在的机器上运行。
  • 顶部栏显示工作区的运行位置及其内存和 CPU 信息。启用自适应节奏后,系统会根据可用内存调整同时运行的浏览器数量。

Studio 会为每次运行保留哪些证据?

Evidence Locker

每项结果都归档到便于您查看和分类处理的位置。

  • 包含测试结果、运行摘要、缺陷报告、已通过测试、历史智能分析、风险排名、Core Web Vitals、安全审计、混沌韧性和 API 测试等栏目。
  • 每条记录打开后均提供报告, 元数据, 遥测数据, 原始日志和AI 分析, 最后一项默认启用,连接您的 AI 后即可生成内容。失败时会归档取证报告,元数据和最后一帧的截图,如果确实失败还会保存视频 (您可在设置中的保留失败视频条件下选择适用的判定结果); 原始日志包含控制台错误,失败的请求,安全问题和页面错误。启用跟踪时还会保留跟踪记录,此功能默认开启。
  • 问题分诊: 真实缺陷或误报, 必须说明原因、是否仍计入统计,以及如何处理文件:保留、归档重要内容,或删除。
  • 分享到 Telegram、Slack、Jira 或 Azure Boards, 复制图片,或导出完整的 HTML 报告。在您选择渠道并点击发送前,任何数据都不会离开机器。

逐一查看一次真实失败的文件夹中的文件 →

API 测试

REST 和 GraphQL 测试拥有七种专属判定结果。它们与其他测试一样从 Patrol 运行,每个端点都会在 Evidence Locker 的 API 测试区域中归档到各自的文件夹。

  • API_SECURE: 所有断言均通过,且响应结构与上次记录的一致。 API_FLAKY: 重试后通过。 API_DRIFTED: 测试通过,但结构发生变化,差异对比会列出每个新增,删除或类型发生变化的字段。除非您启用严格模式,否则结构漂移仍算通过。
  • API_BREACHED: 某项断言失败。 API_DEGRADED: 耗时超过延迟预算,默认为 2000 ms, 且仅在启用严格性能模式时才会给出此判定。 API_VULNERABLE: 不带凭据的请求获得了响应,而预期应为 401 或 403; 仅缺少安全标头不会触发此判定。 API_BLOCKED: 收到 429, 或带有 Cloudflare 或 Akamai 特征的 403, 表明请求未到达您的产品。
  • 界面包含:端点数,通过数,超出预算的运行次数,结构变化数,曾存在漏洞数及观测到的最长耗时等指标卡片;全部,失败,漂移和存在漏洞等筛选项;以及列出端点,判定结果,最小值,中位数,p95, 最大值,样本数和通过率的表格。观测次数不足 20 次的端点会显示短横线,而非百分位数。
  • 点击一次运行记录即可打开六个选项卡: 报告, 请求, 响应, 性能, 架构和AI 分析, 最后一项会在连接您的 AI 后生成内容。流程中失败的步骤提供从步骤 N 重新运行和重新运行失败步骤选项。
  • 每次运行均在 api-evidence 中归档:request.json, response.json, performance.json, schema.json, report.md 和 metadata.json, 标头和正文中的敏感信息均已脱敏。report.md 末尾提供一条可重放该调用的 curl 命令。通过的运行记录每项测试保留最新 20 条;失败记录始终保留。
  • 创建测试: 选择新建测试、API 后,需要指定类型:REST、GraphQL 或基于 HTTP 的 SOAP. 每种类型都从一个无需修改即可针对公共端点运行的用例开始,文件首行会记录类型,因此文件树中会显示该类型,移动文件也不会改变它。SOAP 的 XML 以文本形式发送,并使用文本规则检查,不使用 XML 解析器。staging 和 prod 等环境各自保存自己的基础 URL,令牌则仅保存其变量名。文件夹可以嵌套。
  • API Flow Recorder: 在 Nexus Recorder 中录制页面发起的调用,然后在写入测试套件前检查录制内容. 调用列出每个调用的方法,路径,状态,类别及归类原因。默认只有业务,身份验证,读取和状态变更类 API 调用会纳入测试套件;遥测信标,第三方主机,资源和预检请求默认排除,您可以重新勾选以纳入。 流程将某个响应中的值传递到后续请求中,例如登录令牌,而脱敏则列出看似敏感且已标记为绝不写入的字段。
  • 在审查界面中: 生成测试用于编写测试套件, 生成 OpenAPI用于编写包含类型和状态码但不含已记录值的 3.1 版草稿, 负载测试则将这些调用作为负载计划打开。

Schema 选项卡所呈现的漂移

APIT311-1 GET /api/productsList API_DRIFTED

+6 fields, -2 fields

+ products[].brand + products[].id + products[].name + products[].price

+ products[].category.category + products[].category.usertype.usertype

- brands[].brand - brands[].id

APIT311 是一个刻意制造漂移的演示测试:由于线上 API 不会按需发生变化,该测试会在连续运行时交替调用两个目录端点,第二次运行时显示 API_DRIFTED。漂移是指使用方在生产环境中遇到的变化,即使此时针对状态码 200 的断言仍然通过。

如何及时发现 API 模式漂移,避免测试漏检?

History

每个身份下的每项测试,一次次运行。

  • 各个选项卡分别展示摘要、可靠性、性能、API、失败、覆盖率、质量,以及单元测试和集成测试结果。
  • 按会话、天或周查看趋势:出现回归、已恢复、仍未修复、速度变慢。身份矩阵将每项测试与每种浏览器和设备交叉对照。
  • 单元测试和集成测试:从 Jest、Vitest、pytest、Maven 或 gotestsum 导入 JUnit XML, 与端到端测试数据分开统计。
  • 证据库和巡查中的风险:根据测试结果反复变化、失败或耗时的频率进行排名,运行不足五次的测试不会被标为不稳定,并基于历史记录通过逻辑回归预测风险,数据不足时则回退到 EWMA.

一条历史记录包含什么 →

Visual Regression

将像素与您已批准的图片进行比较。首次使用 --visual 运行时会建立基准,之后每次运行都会与之比较。界面打开后会显示需要您决定的内容: 像素发生变化。

  • 每项回归都以卡片呈现:测试、检查点、变化像素占比及其容差、"N / M px"、尺寸、发生变化的区域数量,以及截图始终未稳定时的提示。因抗锯齿而重新混合的边缘像素不计入其中。
  • 提供并排、滑动、差异和闪烁视图,以及同一检查点的历史运行: 一次回归只说明发生了变化,连续四次逐渐恶化说明 UI 在逐步偏移,而连续四次完全相同则说明录制测试时的界面本身就不稳定。
  • 基准按浏览器和平台分别保存。批准此更改只会替换该检查点的图片; 全部批准适用于影响多个检查点的更改,例如全局页眉的更改。
  • 同一界面上的设置及其默认值: 每次运行都比较像素关闭,整页容差 1.0%,元素检查点容差 0.1%,出现回归则测试失败关闭 (回归会被记录,测试仍显示 SECURE; 开启后则显示 BREACHED),以及用于时钟或广告的每张截图都遮罩的内容 (CSS 选择器)。
  • 每项回归的文件保存在 visual-regression 中:baseline.png、current.png、diff.png (红色表示变化,琥珀色表示已忽略的抗锯齿,灰色表示未变化)、visual-report.md 和 result.json,每个测试和检查点保留最新 10 组,每组约 1 MB。

针对单个元素的检查点

nexus patrol TC01 --visual

# 测试内部:单个元素,而非整个页面

await visualCheck(page, 'cart-total', page.locator('#cart-total'));

元素检查点的容差为整个视口容差的十分之一:缩小范围可让检查更严格,又不会因时钟或广告的变化而导致失败。当间距、颜色或布局变化可能破坏页面,而所有断言仍能通过时,就可以使用它。对于有意变化的内容,应使用遮罩,而不是提高容差。

Executive Report

用一份 PDF 呈现发布质量,供签字批准者参考。

  • 选择时间段:全部时间、最近 7、30 或 90 天,或自定义范围。
  • 给出发布决策:放行、谨慎或不放行,并附上置信度、覆盖率和通过率。
  • 失败及其根本原因和业务影响、各测试的稳定性、安全发现、API 测试,以及由端到端、集成和单元测试结果构成的质量金字塔。
  • 建议基于规则生成,而非 AI.

压力与安全

Chaos Lab

从浏览器到容器的韧性测试。

  • 浏览器故障: 网络 (≈3G) 延迟、测试中途断网、Chromium 上的 CPU 降速 4 倍, 或同时注入全部故障,再叠加丢包和内存压力。
  • 基础设施:注册 Docker 容器或被测应用,然后对其执行暂停、停止、强制终止或重启,无论是否正在运行针对它的测试。
  • 每 500 ms 通过健康探针测量恢复情况:检测耗时、恢复耗时、可用性。结果为 RESILIENT、DEGRADED、NOT_RECOVERED 或 NOT_INJECTED.
  • 仅针对已注册的目标,绝不涉及 Studio 自身的容器。故障在触发前会被记录,且始终会还原故障影响;未触发故障的测试即使通过,也不会被认定为具备韧性。

Load

并发数、百分位数和判定结果,均直接来自引擎。

  • 使用引擎内的工作线程,无需外部负载工具,报告保存在各标签对应的 statistics.json 文件中。
  • 每秒请求数、p50、p90、p95 和 p99、错误率及 APDEX. 判定结果为 PASS、OVER_BUDGET 或 UNMEASURED.
  • 测量负载下的 Web Vitals: 在负载施加前、施加期间每隔 15 秒以及结束后,对真实的 Chromium 页面采样,测量 LCP、CLS、FCP、TTFB 和 TBT.
  • 只有输入 AUTHORIZED 后才会就绪,若目标不是本机,则会再次要求确认。

安全

执行您配置的安全检查,并记录发现的问题及证据。DAST 扫描器 Smart Monkey 位于安全界面的运行扫描下。

  • Smart Monkey 扫描您获授权测试的目标:XSS、SQL 注入、访问控制失效、IDOR、SSRF、命令注入、路径遍历、模板注入、XXE、开放重定向、CORS、安全响应头和 Cookie 标志等。
  • 选择一个阶段或运行全部阶段:pre-auth、auth-transit、post-auth、http-probes (Cookie、CORS、标头、重定向、文件)、ssrf、cmdi、xss-oob、sqli (盲注、布尔盲注和时间盲注)、idor 或 agent (经过编排且设有预算的发现过程)。界面会用一句通俗的话解释您所选的阶段。
  • 带外确认使用您本机上的 HTTP 监听器:每个载荷都携带一个随机的 32 字符令牌,只有目标携带该令牌发起回连时,才认定存在 SSRF、命令注入或盲 XSS。不使用 DNS 回连,也不使用 Interactsh 或 Burp Collaborator 等公共服务,因此目标的任何信息都不会传给第三方。
  • 测试授权: 对于未记录授权依据的主机,会在发送任何数据包之前拒绝扫描,而私有地址和本地地址无需此依据即可通过。每次扫描都会记录其授权、操作人员、目标、操作及 60 分钟的时间窗口,这些记录在本地封存,绝不外传。
  • 每个会话都会为每项发现建立一个文件夹,内含 audit_report.json、screenshot.png、录制成功保留时的 replay.webm,以及可执行的 replay.mjs,可通过 nexus replay 针对该发现的文件夹运行。会话根目录还包含 session_summary.json 和 results.sarif。保留最新 10 个会话。
  • 采用 SARIF 2.1.0,每项发现对应一条结果:规则为该发现的 CWE,CRITICAL 和 HIGH 映射为 error,MEDIUM 映射为 warning,其余映射为 note,位置为被探测的 URL。GitHub 代码扫描和 GitLab 可直接导入,nexus monkey 无需 Studio 即可在 CI 运行器上写出该文件。

磁盘上的单个会话

monkey-audits/YYYY-MM-DD_HH-mm-ss_FAST_AUDIT/

session_summary.json results.sarif

BUG-NN_TYPE/ audit_report.json screenshot.png replay.webm replay.mjs

文件夹以 UTC 时间标记,并以 FAST_AUDIT 或 DEEP_AUDIT 结尾。每项发现的全部内容都保存在各自的文件夹中,因此可以连同截图、录像和复现脚本一起交给负责修复的人;在 Evidence Locker 中,Archive… 也会保留这些内容。发布前,可对您拥有或获准测试的目标使用它。

Settings

运行过程中的质量检查

在运行巡查或设置中为每次运行单独启用。每项检查默认仅提供建议,设为严格模式后才会影响判定结果。

  • 使用 axe-core 按 WCAG 2.1 AA 标准检查无障碍性,并检查手机上的触控目标尺寸。
  • 按预算检查 Web Vitals (LCP 2.5 s、CLS 0.1、INP 200 ms、TTFB 800 ms), 并通过延迟加载审计,对页面的图片加载方式给出 A 到 F 的评级。
  • 拦截检测:遇到 403、429 或验证页面时,结果为 BLOCKED. 默认向网站隐藏自动化特征,一个开关即可关闭此功能。
  • 严格模式下,违规会被判定为 A11Y_VIOLATION、PERFORMANCE_DEGRADED 或 SECURITY_VIOLATION.

Timeouts

Playwright 步骤可等待多久,超过后运行即被判定为 TIMEOUT. 设置中的执行 & 超时部分提供四项调节选项。以下为默认值。

Settings · Execution & Timeouts

  • Action timeout (click, fill…)30000 msNEXUS_ACTION_TIMEOUT · every click, fill or wait on a locator
  • Assertion timeout10000 msNEXUS_EXPECT_TIMEOUT · how long an expect() keeps retrying
  • Page navigation timeout60000 msNEXUS_NAV_TIMEOUT · page.goto() and its redirects
  • Per-test hard timeout360 sNEXUS_TC_TIMEOUT · the whole test, six minutes

可按标准 Playwright 写法,在测试代码中为单个步骤设置独立时限:

await page.getByRole('link', { name: 'More information...' }).click({ timeout: 5000 });

await expect(page.getByRole('heading', { level: 1 })).toHaveText('Example Domain', { timeout: 15000 });

TC91 是一个演示测试,特意使用 example.com 旧版链接文本 More information... 编写;页面如今显示的是 Learn more. 点击操作按默认值等待了 30000 ms, 但该链接已不存在,最终结果为 TIMEOUT. 延长时限无法掩盖失效元素:测试仍会失败,只是更晚。

AI Providers

用于失败取证分析和 Smart Monkey 发现分诊的 AI.

  • 默认仅本地: 通过 Ollama 使用本机模型,不会回退到云端。
  • 也可自行选择自动、Anthropic 或 OpenAI, 提示词发送到您的网络之外时,界面会明确告知。密钥仅可写入。

Settings

集中管理其他界面背后的开关。

  • 集成:Jira, Xray, Azure DevOps, Slack 和 Telegram, 默认均关闭,需由您手动启用。Jira 和 Azure Boards 为每个失败的测试维护一个问题:测试失败 (BREACHED, BREACHED_FLAKY 或 CHAOS_BREACHED) 或 TIMEOUT 时创建问题,再次发生时添加评论,测试顺利通过时关闭问题。阻断、崩溃、网站无法访问或配置错误均不会触发此操作。集成
  • 证据与保留策略:每项测试保留多少份缺陷报告、通过时的截图和扫描会话。
  • 选择器与自愈、根据 RAM 压力自适应调整执行节奏,以及浏览器暴露的自动化特征。

完整功能清单

另有 19 项功能,一目了然

Nexus Recorder

将操作流程录制为 Playwright (JavaScript, TypeScript, Python, C#) 或 Selenium (JavaScript, Python, Java, C#) 脚本:JavaScript 和 Python 支持桌面端、模拟移动设备或真实 Android 手机,其余语言仅支持桌面端;也可录制应用发出的 API 调用。全程无 AI 参与。

Test Adapter

粘贴测试或指定文件夹:支持使用 JavaScript、TypeScript 或 Python 编写的 Playwright 或 Selenium 测试。它会展示差异,保留每一条断言,并在正式计入结果前试运行测试。

Repair line

从测试失败的那一行入手:仅重新录制该步骤,或更换选择器,优先使用最可靠的选择器,最后才考虑 XPath. 旧版本会保留在文件的时间线中。

先征求同意的自愈功能

测试失败后,Studio 会在后台重新执行测试至失败行,并准备好候选选择器。在您选定一个之前,运行结果会一直显示为红色。

定位器健康状况与选择器映射

列出当前打开测试中的薄弱定位器,并就地修复。选择器映射无需 AI 即可扫描页面,并为找到的每个选择器评分。

Watch

按 5 分钟至 24 小时的间隔重新运行所选测试,或在指定日期运行一次,仅在状态变化时发出提醒。Studio 关闭后仍会继续运行。

在界面中配置 CI/CD

编写 GitHub Actions 或 GitLab CI 流水线,包含每晚回归测试,并先在本地验证。流水线本身提供严格的退出码和 JUnit XML.

Feature flags

针对功能开关的每种开关状态组合各运行一次测试,并指出导致失败的组合。

质量金字塔

从 Jest, Vitest, pytest, Maven 或 gotestsum 导入 JUnit XML, 在端到端测试运行结果旁查看单元测试和集成测试结果。

风险排名与预测

根据结果反复变化的频率,失败频率及耗时,对每个身份下的各项测试进行排名。基于您自身历史数据的逻辑回归模型会给出风险评分,数据不足时则采用 EWMA 作为后备方案。

视觉回归

使用按浏览器和平台保存的基准,通过并排,滑动,差异或闪烁模式进行对比,并一键批准变更。

无障碍

使用 axe-core 执行 WCAG 2.1 AA 检查,并检查手机上的触控目标尺寸。默认仅提供建议;在严格模式下,违规会被标记为 A11Y_VIOLATION.

Web Vitals 与懒加载

LCP, CLS, INP, FCP, TTFB 和 TBT 默认启用,并依据性能预算进行评估,另有懒加载审计,为页面加载图片的方式评分。

拦截检测

403, 429 或机器人验证页面会被识别为 BLOCKED, 而非您的应用故障,且绝不会创建 Jira 工单。

API 测试套件

REST 和 GraphQL: 检查状态,字段,类型及延迟预算,提供独立判定结果,并将请求,响应和模式保存为证据。

管理层报告

一份 PDF, 包含发布建议 (可以发布,谨慎发布或不可发布), 覆盖率,稳定性,按根因分类的故障,安全发现以及基于规则的建议。

Jira, Xray, Azure DevOps, Slack 和 Telegram

Jira 和 Azure Boards 为每个失败的测试维护一个问题,并附上截图,测试通过后自动关闭。Xray 和 Azure Test Plans 接收每次 CI 运行的结果。Slack 接收 Block Kit 警报,Telegram 则通过您自己的机器人接收警报,扫码即可配对。

Docker 和 SSH

引擎可以在 Studio 所在计算机的运行器容器中运行同一测试套件,也可以通过 SSH 在 VPS 上使用相同的容器镜像运行,得出相同的判定结果。每个工作区可自行选择运行环境。通过 SSH 运行时,证据会保留在远程主机上,直到您将其拉取。

桌面应用

适用于 Windows 11 x64 的 Nexus Studio, 可在配备至少 16 GB 内存的 PC 或迷你 PC 上使用:在同一窗口中查看运行,证据,设备和历史记录。

在您自己的应用上试用每个界面。

在您的设备上免费使用 30 天,畅享全部功能。无需信用卡。