用途
Artillery.io 是一款面向 Web 应用和 API 的负载测试与性能监控工具。开发者和 QA 工程师使用它来模拟用户流量,并在应用发布到生产环境之前识别性能瓶颈。
本技能通过 Membrane CLI 与 Artillery.io 进行交互,用于管理数据、记录并自动化工作流,适合用户需要与 Artillery.io 数据进行交互的场景。
官方文档:https://www.artillery.io/docs
主要能力
该集成通过 Membrane 提供的预构建操作连接 Artillery.io,可以:
- 搜索并执行与 Artillery.io 相关的操作;
- 在现有操作不覆盖需求时,通过 Membrane 代理直接向 Artillery.io API 发送请求;
- 由 Membrane 自动处理认证和凭据刷新,集成逻辑无需自行处理认证管道。
资料中列出的 Artillery.io 概览要点为:Test、Configuration、Run。具体可用操作、字段与返回值需在建立连接后通过命令查询获得,资料未提供具体操作清单。
使用方式
安装 CLI
在终端中运行:
npm install -g @membranehq/cli@latest
认证
membrane login --tenant --clientName=<agentType>
该命令会视是否可用交互模式,打开浏览器进行认证,或在控制台打印一个授权 URL。
无头环境:命令会打印授权 URL,请用户用浏览器打开;用户完成登录后会看到代码,随后执行:
membrane login complete <code>
在任何命令后加 --json 可获得机器可读的 JSON 输出。
Agent 类型包括:claude、openclaw、codex、warp、windsurf 等,用于根据运行环境调整工具。
连接 Artillery.io
使用 membrane connection ensure 按应用 URL 或域名查找或创建连接:
membrane connection ensure "https://artillery.io/" --json
用户在浏览器中完成认证,输出包含新的连接 id。若返回的连接状态为 READY,可跳到下一步。
等待连接就绪
若连接处于 BUILDING 状态,可轮询直到就绪:
npx @membranehq/cli connection get <id> --wait --json
--wait 标志进行长轮询(最长至 --timeout 秒,默认 30),直到状态变化。持续轮询直到状态不再是 BUILDING。
状态含义:
- READY — 连接已完全建立。
- CLIENT_ACTION_REQUIRED — 用户或 agent 需要执行操作,clientAction 对象描述所需操作:clientAction.type("connect" 表示需要认证,"provide-input" 表示需要更多信息)、clientAction.description(说明)、clientAction.uiUrl(可选,预构建操作界面)、clientAction.agentInstructions(可选,面向 AI agent 的编程说明)。用户完成操作后,再用 membrane connection get <id> --json 轮询检查是否进入 READY。
- CONFIGURATION_ERROR 或 SETUP_FAILED — 出错,检查 error 字段。
搜索操作
用自然语言描述意图进行搜索:
membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json
始终在特定连接的上下文中搜索操作。每个结果包含 id、name、description、inputSchema(接受的参数)和 outputSchema(返回值)。
发现可用操作:
npx @membranehq/cli@latest action list --intent=QUERY --connectionId=CONNECTION_ID --json
运行操作
membrane action run <actionId> --connectionId=CONNECTION_ID --json
传入 JSON 参数:
membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json
结果位于响应的 output 字段中。
代理请求
当可用操作未覆盖需求时,可通过 Membrane 代理直接向 Artillery.io API 发送请求。Membrane 会自动在路径前附加基础 URL,并注入正确的认证头(含凭据过期时的透明刷新):
membrane request CONNECTION_ID /path/to/endpoint
常用选项:
- -X, --method:HTTP 方法(GET、POST、PUT、PATCH、DELETE),默认 GET;
- -H, --header:添加请求头(可重复),如 -H "Accept: application/json";
- -d, --data:请求体(字符串);
- --json:发送 JSON 请求体并设置 Content-Type: application/json 的简写;
- --rawData:按原样发送请求体,不做处理;
- --query:查询字符串参数(可重复),如 --query "limit=10";
- --pathParam:路径参数(可重复),如 --pathParam "id=123"。
适用场景
- 需要与 Artillery.io 数据进行交互,管理数据、记录并自动化工作流的场景;
- 查询与操作负载测试相关数据;
- 通过代理调用 Artillery.io API 完成自定义需求。
限制
- 具体可用操作、输入输出字段以及 Artillery.io 端的完整能力取决于建立连接后的查询结果,资料未提供具体操作清单;
- 不应向用户索取 API 密钥或令牌,认证生命周期由 Membrane 在服务端管理;
- 其他功能、收费、价格或平台信息暂未提供。