HermesAgentAPI测试:Postman脚本自动运行
摘要
一、使用 Postman 集合 + Tests 脚本直接验证 当你已经部署好 Hermes Agent,配置完一步 API,却在
一、使用 Postman 集合 + Tests 脚本直接验证
当你已经部署好 Hermes Agent,配置完一步 API,却在 Postman 里碰了壁——请求发出去,要么石沉大海,要么返回一堆错误码。别急,这多半是请求结构、认证头或者环境变量在某个环节出了岔子。下面这套方法,能帮你快速验证单个接口(比如 /v1/chat/completions)的连通性和响应逻辑,整个过程轻量直接,无需引入复杂的工具链。
首先,在 Postman 里新建一个集合,名字可以定为「Hermes-Agent-Test」。接着,点开集合右侧的「⋯」菜单,选择「Edit」,切换到「Variables」标签页。这里需要添加两个关键的环境变量:一个是 base_url,填入你的 API 基础地址,例如 https://yibuapi.com/v1;另一个是 api_key,填入你从一步平台获取的实际密钥,格式类似 sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx。
然后,在这个集合下新建一个请求。将请求命名为「Hermes Chat Completion」,请求 URL 填写为 {{base_url}}/chat/completions,方法选择 POST。接下来,在「Headers」里添加两个必要的头信息:Authorization 字段的值设为 Bearer {{api_key}},Content-Type 字段的值设为 application/json。
请求体部分,在「Body」标签下选择「raw」格式和 JSON 类型,填入标准的 OpenAI 兼容格式内容:
{
"model": "hermes",
"messages": [
{"role": "user", "content": "你好"}
],
"temperature": 0.7
}
最后,也是验证的关键一步,切换到「Tests」标签页。在这里粘贴以下脚本,它会在收到响应后自动执行断言:
pm.test("Status code is 200", function () {
pm.response.to.ha ve.status(200);
});
pm.test("Response has choices array", function () {
pm.expect(pm.response.json()).to.ha ve.property("choices");
});
pm.test("Response time < 10000ms", function () {
pm.expect(pm.response.responseTime).to.be.below(10000);
});
点击发送,如果所有测试都通过,那么恭喜你,接口的基础连通性和响应格式就没问题了。

二、通过 Newman 命令行批量执行并生成报告
如果测试需求升级了,比如需要集成到 CI/CD 流水线、定时巡检,或者要对多个环境配置进行比对,那么手动在 Postman 里点来点去就显得效率低下了。这时,Newman 命令行工具就派上了用场,它能让你批量运行测试集,并生成直观的 HTML 报告用于归档和分析。
首先,确保你的系统已经全局安装了 Newman 和它的 HTML 报告插件。打开终端,执行这条安装命令:npm install -g newman newman-reporter-html。
接着,回到 Postman。对你刚才创建好的「Hermes-Agent-Test」集合点击右键,选择「Export」,推荐导出为 v2.1 格式,将其保存为本地文件,例如 hermes-test-collection.json。
光有集合还不够,环境变量也得导出来。点击 Postman 右上角的环境选择器,进入「Manage Environments」,选中你配置了 base_url 和 api_key 的那个环境,点击「Export」按钮,将其保存为 hermes-env.json。
准备工作就绪。在终端里,进入存放这两个 JSON 文件的目录,执行核心命令:
newman run hermes-test-collection.json -e hermes-env.json -r html --reporter-html-export hermes-report.html
命令执行完毕后,你会在当前目录下发现一个新生成的 hermes-report.html 文件。用浏览器打开它,一份结构清晰的测试报告便呈现在眼前,里面详细列出了每个请求的执行状态、断言结果、响应时间等关键信息,非常适合团队协作和问题追溯。
三、利用 Pre-request Script 动态注入 Hermes 上下文参数
有些时候,简单的接口调用测试还不够。Hermes Agent 在实际应用中,往往需要处理带状态的会话,比如携带 session_id、agent_id 或一些自定义的元数据(metadata)。为了模拟这类真实场景,进行端到端的逻辑验证,我们可以利用 Postman 的「Pre-request Script」功能,在请求发出前动态注入这些上下文参数。
具体操作如下:在你需要测试的请求中,切换到「Pre-request Script」标签页。在这里,你可以编写一段 Ja vaScript 脚本,来动态设置环境变量。例如,可以粘贴以下代码来生成一个随机会话 ID 并设定袋里 ID:
const sessionId = "sess_" + Math.random().toString(36).substr(2, 9);
pm.environment.set("session_id", sessionId);
pm.environment.set("agent_id", "hermes-prod-001");
然后,转到「Body」中的 JSON 请求体,将之前的结构进行扩展,把动态生成的参数嵌入到 metadata 字段中:
{
"model": "hermes",
"messages": [
{"role": "user", "content": "你好"}
],
"temperature": 0.7,
"metadata": {
"session_id": "{{session_id}}",
"agent_id": "{{agent_id}}"
}
}
最后,为了验证服务端是否正确接收并处理了这些上下文信息,我们可以在「Tests」标签页的断言脚本里追加相应的检查逻辑:
pm.test("Metadata echoed in response", function () {
const resp = pm.response.json();
pm.expect(resp).to.ha ve.property("metadata");
pm.expect(resp.metadata).to.ha ve.property("session_id");
});
这样一来,每次执行这个请求,它都会携带一个全新的会话上下文,并且自动验证响应中是否包含了对应的元数据,从而确保 Hermes Agent 的状态保持功能工作正常。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。