SuperAPI AI 工具集

artilleryio

测试与质量

查看项目

更新于 10-16 02:24

技能介绍

用途

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 在服务端管理;
  • 其他功能、收费、价格或平台信息暂未提供。