☰
AngusTester 是什么:AI 原生软件测试
2026/11/4 2:04:26 网站建设 项目流程

AngusTester 是一个自动化测试平台,一份 YAML测试 Anything,计划和结果在一处。你在控制台里排计划和用例。要自动跑的部分写成一份 AngusScript 2.0 YAML,描述接口、性能、Web、移动端和模型调用。执行节点上的 Agent 真正跑这份脚本,不是浏览器里的控制台进程。跑完的结果挂回用例,也可以整理成一份可以冻结的报告。数据留在你这次安装里。

解决的主要问题

  • 接口、性能、页面、移动端和模型调用各写一套。每换一种测试,就要再维护一份脚本。这里用一份 AngusScript YAML 把这些步骤写在一起。人审的是计划和用例。真正执行的是执行节点上的 Agent,不是浏览器里的控制台进程。
  • 自动化占比上不去,是因为脚本要人从零写。顶栏的「AI 智能体」接的是 AngusAI 里绑定的 Tester 助手,用来起草 YAML。生成时先出预览,确认之后才保存进项目。进项目之前,人还是要在计划和用例上看过。用例能挂上脚本的多了,重复执行就不用再靠手工点。
  • 换环境就要复制脚本。地址、请求头和密钥写在 YAML 里,环境或密钥一变,就得多出一份副本。这些放在「环境」里。同一份 YAML 切到另一个环境,就是另一套被测目标。测模型调用时,供应商密钥也放这里,不写进脚本。
  • 报告还在跟着源数据变,留档就对不上当时的结论。执行详情看这一次的期望值和实际值。要交出去的那一份,确认后冻结成快照。源数据再变,这份归档不变。

注意: 它不扫描代码、密钥、依赖和镜像。那些检查在安全产品里做。脚本里的安全测试是对已经跑起来的主机、容器、端口和接口做只读检查,侧栏没有单独的安全菜单,结果在「执行」里看。testType: SECURITY不会代替安全产品的门禁,也不会把结果推过去。平台不内置模型,也不代理任何 LLM。要测模型调用,把供应商的密钥放进环境。没有一台状态为 ONLINE 的执行节点,自动化不会在平台进程里直接跑。

主要功能

登录后的第一屏叫「概览」,用来看待办、用例质量、缺陷和这一轮执行。

列表按当前项目隔离。先看顶部的项目切换器,再读这一页的数字。换项目之后,计划、用例和执行都换成那一个项目的。

计划、用例、问题。「计划」是一轮测试活动。计划里可以有迭代,迭代是计划内的时间盒。提测和回归都放在计划里,不必分成两个产品。「用例」写前置条件、步骤和预期结果。人审的是这份用例:待评审、待测试都从概览能点进去。「问题」留下缺陷。一次执行失败之后,可以把缺陷挂到这次执行上。手动用例和自动脚本各算各的覆盖,跑完的自动结果挂回用例。

接口。「接口」管集合和端点,可以在线调试,也可以导入、导出 OpenAPI。调试用来确认地址和参数。要反复跑、要进计划、要留给流水线的,仍写成脚本,不把一次调试记录当成回归。

脚本和设计器。脚本是一份 AngusScript 2.0 YAML。设计器按步骤拼同一份自动化。脚本有版本,也可以定时调度。协议步骤包括 HTTP、WebSocket、gRPC、JDBC、Kafka。Web 用 Playwright 或 Selenium。移动端用 Appium。性能步骤写并发、爬坡,以及 P99、错误率这类阈值。LLM 步骤调用你自己的供应商接口,断言延迟、Token 和 JSON 结构。

节点要先装好对应的浏览器、驱动。Appium 还要让设备连到这台节点机器。LLM 的密钥放在环境里,不写进 YAML 正文。

安全测试从「脚本」新建,没有单独路由。它检查的是跑起来之后的主机、容器、单主机端口、移动快照、已有模型输出和 Nuclei 结果,而且是只读。它回答的是这次运行基线是否符合,不是代码仓库里有没有已知漏洞。

执行。「执行」是脚本的一次运行。状态包括排队中、已派发、执行中、已完成、已失败、已取消、已拒绝、定时调度。失败时,断言是字段:能看到期望值和实际值,而不是只有一个红点。执行详情是这一次的实时页面。执行报告是面向汇报的文档,两者不是同一页。

至少要有一台状态为 ONLINE 的执行节点,脚本、Web、移动端和 LLM 才会被领走。执行节点装着 Agent,端口默认 7100,脚本在这台机器上跑。应用节点只监控被测系统,不接脚本。设备有在线、离线、占用中、维护中。被占用的设备不会再被另一次执行抢走。

数据、环境、桥接。「数据」放数据文件、变量和数据库连接,给参数化用。「环境」切换变量、请求头和密钥。同一份 YAML 换环境,就是换被测地址和密钥,不必复制脚本。「桥接」是 DevBridge,把本机服务当成联调目标,不用先把服务部署到节点旁边。

报告。报告是一次或一批执行的汇总。实时报告会跟着源数据变。内容确认后点「冻结」,数据态变成快照(SNAPSHOT),不再随源数据变化。冻结不能在页面上撤销。已经冻结的报告不能重新生成。还要更新时,另建一份再冻结。删除报告不可逆。要留档的那一份,冻结之后就不要删。

顶栏的 AI 智能体。它嵌入的是 AngusAI 里绑定的 Tester 助手,不是本产品「系统设置」里的另一套模型配置。未开通时顶栏仍可能看得到入口,对话会提示鉴权失败。助手可以起草脚本。保存进项目之前,人还是要在计划和用例上看过。

应用场景

  • 同一个发布候选要同时看接口契约和关键页面,以前得分成两个工程、两份报告。在当前项目里建一个计划,把这两类用例放进同一轮,该评审的先过评审。HTTP 断言和 Playwright 步骤写在同一份 YAML 里。至少一台执行节点是 ONLINE,脚本才会被领走。通过和失败挂回对应用例。失败的那条打开执行详情,对照期望值和实际值。交给流水线时,用 REST 触发这份脚本再轮询这次执行。断言失败则这次执行是已失败。还在跑时读到completed=false,不能当成通过。

  • 用例停在手工,是因为 YAML 要从零写。顶栏「AI 智能体」用 AngusAI 里绑定的 Tester 助手起草脚本。tester_generate_script只返回预览,不保存。确认后带着confirmationId调用tester_invoke,控制台里才看得到。保存进项目之前,人还是要在计划和用例上看过。助手没接通时,对话会提示鉴权失败,用例也不会因此变成已自动化。

  • 预发和生产各有一份脚本,地址或密钥一变,两份就分叉。地址、请求头和密钥放在「环境」里。同一份 YAML 切到另一个环境,就是另一套被测目标。测模型调用时,供应商密钥也放这里,不写进 YAML。平台不托管模型。

  • 压测数字确认过,报告随后又跟着源数据变了,归档对不上当时的结论。在同一份 YAML 里加上并发、爬坡,以及 P99 和错误率。跑在执行节点上,不在浏览器进程里。结果整理成报告,数字确认后点「冻结」,数据态变成快照。冻结不能在页面上撤销,也不能重新生成。还要一份新结论,就另建一份再冻结。

核心亮点

  • 人审计划和用例,跑的是同一份 YAML。少做的那一步,是接口一套工程、页面另一套工程、压测再第三套。用例里写预期。脚本里的断言按这个预期去比。失败写在执行详情里,字段是期望值和实际值。计划和报告不用再导出到表格里对序号。

  • 第一屏是概览,不是菜单树。左侧菜单收起后,只剩一列图标。标题是「概览」。能读到的是待办四项,以及核心功能上的计划、用例、问题、接口、报告、脚本、执行。时间范围在右上角。顶栏有「AI 智能体」、「中文」和主题开关。百分比和项目名单会变,不在这里当功能说明。

  • 换环境不复制脚本。地址、请求头和密钥在「环境」里。同一份 YAML 切到另一个环境就是另一套被测目标。LLM 的供应商密钥也放这里。平台不托管模型,也不把密钥写进脚本正文。

  • 没有 ONLINE 的节点,脚本不会自己跑。执行节点上的 Agent 领走脚本。应用节点只看被测系统。Web 和移动端还要节点上已经有浏览器、驱动,移动设备要连到这台机器。这是运行条件,不是再装一个控制台。

  • 报告可以冻结成不再变的快照。执行详情看这一次。报告给要留档的人。冻结之后内容固定,不能在页面上撤销,也不能重新生成。还要一份新结论,就新建报告再冻结。

  • 安全脚本只检查跑起来的系统。从脚本新建,结果在执行里。它是只读的主机、容器、端口和接口检查。代码和镜像的门禁不在这里下结论,也不要把它的通过当成仓库扫描已经通过。

部署方式

本包安装 AngusTester 2.0.0,并带上门户。浏览器先打开门户,再打开本产品。有 Docker 时走安装向导,默认是 Docker Compose。没有 Docker,走主机 ZIP。安装机不能访问公网,走离线安装。Kubernetes 的 Helm 目前是预览,不要当成生产安装。

生产用 Linux x86_64。试用可以用 macOS。docker compose version要能打出版本号。macOS 用当前登录用户跑向导,不要加sudo。Linux 要装到/opt/angus,先把目录所有者改成当前用户。

80 端口空闲。要 HTTPS 时 443 也空闲。Agent 跑脚本用 7100。8807和8801是应用自己的端口,反向代理会转发。9528不要映射到公网。gm.<你的域名>和tester.<你的域名>解析到这台机器。安装包从https://repo.anguskit.com的 raw-public 下载。解压目录是AngusTester-2.0.0。

unzip<安装包>.zipcdAngusTester-2.0.0 ./install.sh

Windows 在 Docker Desktop 里执行.\install.bat。向导提示是英文。

向导提示你输入什么它决定什么
Install mode回车Docker Compose。没有 Docker 时改用主机 ZIP
Access输入2自带反向代理和子域名。回车留在按端口访问
反向代理回车Caddy。Let’s Encrypt 只能配 Caddy
证书必须输入数字,没有默认1已有 PEM,2自签,3Let’s Encrypt,4只用 HTTP
数据库回车Compose 在本机起 MySQL 8
安装目录回车当前解压目录,即$ANGUS_HOME
根域名example.com这种根域填tester.example.com会多拼一层。IP 或localhost会停下

管理员密码至少 8 位。不要沿用向导给出的公开默认数据库口令。数据目录只在第一次创建时采用这个口令。之后只改配置文件、不改库里已经存下的口令,应用会连不上。默认字符串不写在这里。

证书选1、2或3,打开https://gm.<你的域名>/,再打开https://tester.<你的域名>/。选4则两边都是http://。自签时浏览器会警告。当前安装包在选 Let’s Encrypt 时,仍会为七个产品子域申请证书,即使这台机器只装了本产品和门户。那七个名字都要解析到本机,或者改用通配符证书。只走 HTTP 时选4,不受这条限制。

成功是日志末尾两行:doctor: OK和Install finished.日志在$ANGUS_HOME/logs/install.log。之后执行./bin/angusctl.sh doctor。装完控制台还不够跑自动化,还要有一台 ONLINE 的执行节点,Agent 端口是 7100。

MCP 接入

经网关的地址是https://<gateway-host>/tester/mcp。私有化没有产品前缀时,改为https://<tester-host>/mcp。令牌放进ANGUS_TESTER_TOKEN,请求头是Authorization: Bearer。令牌在头像「我的」里签发,必须是本门户的用户访问令牌。别的产品的令牌会得到 401,响应里没有工具列表。不要把令牌写进仓库。

未把 MCP 关掉时,端点按部署说明打开。写开关缺省是打开的。设成false之后,写工具不出现。关掉整个 MCP 不影响原来的 REST。出站请求会带X-Angus-Client-Source: mcp。用户令牌管理、删除项目或节点不会出现在可调用工具里。MCP 不会扩大这个账号的权限。

写之前先预览。tester_generate_script按名称和项目起草脚本并校验,只返回预览,不保存。确认后带着confirmationId调用tester_invoke,控制台里才看得到这份脚本。tester_report_defect同样是没带confirmationId时只预览。tester_run_and_wait会跑已有脚本,模式是dryrun、execute或debug,最多等大约 30 秒。没跑完就返回executionId和completed=false,接着用tester_invoke_read查,不要再跑一次。tester_explain_failure给出失败断言的期望值和实际值。tester_schema_validate按内置 schema 检查 YAML。流水线的门禁规则仍在平台里配置,不由 MCP 替你改。

SDK 接入

官方 REST SDK 版本 2.0.0。Java 构件angus-tester-sdk,包名cloud.xcan.angus.sdk.tester。npm 是@anguskit/angus-tester-sdk。PyPI 是angus-tester-sdk。Go 模块是github.com/anguskit/angus-sdk-tester。没有官方 NuGet 包。

认证头是Authorization: Bearer <access_token>。网关 Base URL 是https://bj-c1-prod-apis.anguskit.com/tester。路径前缀/api/v1/**。冒烟请求是GET /api/v1/user/profile。列计划是GET /api/v1/test-plans。字段以 API 参考里的 OpenAPI 为准。/innerapi不在官方 SDK 里。

脚本语言仍是 YAML。SDK 用来触发、查询计划和执行,不代替 AngusScript。流水线要挡发布,调的是执行接口,然后看这次执行是不是已失败。

FAQ

没有节点能不能在浏览器里把脚本跑完?
不能。自动化在执行节点的 Agent 上跑。节点状态要是 ONLINE。应用节点只监控,不接脚本。

一份 YAML 能覆盖哪些?
接口(HTTP、WebSocket、gRPC、JDBC、Kafka)、性能、Web、移动端和模型调用,都写在 AngusScript 里。安全测试也是脚本的一种,只读检查已经跑起来的系统。

失败之后看哪里?
看这次执行的详情。失败断言带期望值和实际值。要留档,把报告冻结成快照。冻结不能在页面上撤销。

助手生成的脚本为什么控制台没有?
tester_generate_script只预览。带着返回的confirmationId调用tester_invoke才会保存。

SDK 能不能换成测试脚本?
不能。SDK 调 REST。要反复跑的步骤写在 YAML 里。

从哪登录?
先开gm.<你的域名>,再开tester.<你的域名>。不要把8807当成对外入口。

参考文章

  • AngusTester 介绍
  • AngusTester 报告中心
  • AngusTester 安装与部署
  • 通过 MCP 连接 AngusTester
  • AngusTester SDK 接入
  • AngusTester 支持哪些主要功能
  • 测试用在提测、提交后和上线前的哪一步

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询