Apidog Docs
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
Learning Center
HomeSupport CenterAPI ReferencesDownloadChangelog
Learning Center
HomeSupport CenterAPI ReferencesDownloadChangelog
  1. 使用脚本
  • Apidog 学习中心
  • 入门
    • Apidog 简介
    • Apidog 中的基本概念
    • 导航 Apidog
    • 快速开始
      • 概述
      • 创建端点
      • 发送请求
      • 添加断言
      • 创建测试场景
      • 共享 API 文档
      • 探索更多
    • 迁移到 Apidog
      • 概述
      • 手动导入
      • 定时导入(绑定数据源)
      • 导入选项
      • 导出数据
      • 导入自
        • 从 Postman 导入
        • 导入 OpenAPI 规范
        • 导入 cURL
        • 导入 Markdown
        • 从 Insomnia 导入
        • 从 apiDoc 导入
        • 导入 .har 文件
        • 导入 WSDL
  • Mock API 数据
    • 概述
    • Smart Mock
    • 自定义模拟
    • 模拟优先级顺序
    • 模拟脚本
    • 云端模拟
    • 自托管 Runner 模拟
    • 模拟语言(区域设置)
  • 账号与偏好设置
    • 账户设置
    • 生成 OpenAPI 访问令牌
    • 通知
    • 语言设置
    • 快捷键
    • 网络代理配置
    • 备份数据
    • 更新 Apidog
    • 删除账户
    • 实验性功能
  • 发送请求
    • 概述
    • SSE 调试
    • MCP 客户端
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP 或 WebService
    • GraphQL
    • gRPC
    • 使用请求代理 Agent 进行调试
    • 创建请求
      • 请求历史
      • 请求基础
      • 参数和主体
      • 请求头部
      • 请求设置
      • 调试请求
      • 将请求保存为端点
      • HTTP/2
    • 身份验证与授权
      • 概述
      • CA 和客户端证书
      • 授权类型
      • Digest Auth
      • OAuth 1.0
      • OAuth 2.0
      • Hawk 身份验证
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • 响应和 Cookie
      • 查看 API 响应
      • 管理 Cookie
      • 概述
  • 开发和调试 API
    • 概述
    • 生成请求
    • 发送请求
    • 调试用例
    • 测试用例
    • 动态值
    • 验证响应
    • Design-First vs Request-First
    • 生成代码
    • 环境与变量
      • 概览
      • 使用变量
      • 环境管理
    • Vault 密钥
      • 概述
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • 动态值模块
      • Airline
      • 动物
      • 颜色
      • 商务
      • Company
      • 数据库
      • 数据类型
      • 日期
      • Finance
      • 食物
      • Git
      • Hacker
      • Helpers
      • 图像
      • Internet
      • 位置
      • Lorem
      • 音乐
      • 数字
      • Person
      • 电话
      • 科学
      • String
      • System
      • Vehicle
      • Word
    • 前置和后置处理器
      • 概述
      • 断言
      • 提取变量
      • 等待
      • 安全
      • 数据库操作
        • 概述
        • MySQL
        • MongoDB
        • Redis
        • Oracle 客户端
      • 使用脚本
        • 概述
        • 预处理器脚本
        • 后处理器脚本
        • 公共脚本
        • Postman 脚本参考
        • 调用其他编程语言
        • 使用 JS 库
        • 可视化响应
        • 脚本示例
          • 断言脚本
          • 使用变量
          • 修改请求
          • 其他示例
    • API 调试
      • AI Agent Debugger
      • A2A 调试器
  • 设计 API
    • 概述
    • 创建新的 API 项目
    • 端点基础
    • API 设计指南
    • 模块
    • 配置多个请求主体示例
    • 组件
    • 通用字段
    • 全局参数
    • 端点变更历史
    • 评论
    • 批量端点管理
    • 自定义协议 API
    • Spec-first 模式(Beta)
    • 安全方案
      • 概述
      • 创建安全方案
      • 使用安全方案
      • 在线文档中的安全方案
    • 高级功能
      • 自定义端点字段
      • 关联的测试场景
      • 端点状态
      • 参数列表的外观
      • 端点唯一标识
    • Schemas
      • 概述
      • 创建新 Schema
      • 构建 Schema
      • 从 JSON 等生成 Schema
      • oneOf, allOf, anyOf
      • 使用 Discriminator
  • Apidog Europe
    • Apidog Europe
  • API 测试
    • 概述
    • 测试场景
      • 创建测试场景
      • 在请求之间传递数据
      • 流程控制条件
      • 从端点和端点用例同步数据
      • 从其他项目导入端点和端点用例
      • 导出测试场景
    • 测试报告
      • 测试报告
    • 运行测试场景
      • 运行测试场景
      • 批量运行测试场景
      • 数据驱动测试
      • 共享测试数据
      • 定时任务
      • 管理来自其他项目的 API 运行环境
    • 测试套件
      • 概述
      • 创建测试套件
      • 编排测试套件
      • 本地运行测试套件
      • 通过 CLI 运行测试套件
      • 定时任务
    • 测试 API
      • 集成测试
      • 性能测试
      • 端到端测试
      • 回归测试
      • 契约测试
    • Apidog CLI
      • 概述
      • 安装和运行 Apidog CLI
      • Apidog CLI 选项
    • CI/CD
      • 概述
      • 与 Github Actions 集成
      • 与 Gitlab 集成
      • 与 Jenkins 集成
      • 通过 Git Commit 触发测试
  • 发布 API 文档
    • 概述
    • 支持的 API 技术
    • 快速分享
    • 查看 API 文档
    • Markdown 文档
    • 发布文档站点
    • 自定义登录页面
    • 自定义布局
    • 自定义 CSS、JavaScript、HTML
    • 自定义域名
    • AI 功能
    • SEO 设置
    • 高级设置
      • 文档搜索
      • CORS 代理
      • 集成 Google Analytics
      • 文件夹树设置
      • 可见性设置
      • 在文档 URL 中嵌入值
    • API 版本
      • 概述
      • 创建 API 版本
      • 发布 API 版本
      • 共享带有 API 版本的端点
  • 分支
    • 概述
    • 创建 Sprint 分支
    • 在分支中测试 API
    • 在分支中设计 API
    • 合并 Sprint 分支
    • 管理 Sprint 分支
    • AI Branch(Beta)
  • AI 功能
    • 概述
    • 启用 AI 功能
    • 生成测试用例
    • 使用 AI 修改 Schema
    • 端点合规性检查
    • API 文档完整性检查
    • AI 驱动的字段命名
    • 常见问题
  • Apidog MCP 服务器
    • 概述
    • 将 Apidog 项目连接到 AI
    • 将已发布的文档连接到 AI
    • 将 OpenAPI 文件连接到 AI
  • 最佳实践
    • 处理 API 签名
    • 访问受 OAuth 2.0 保护的 API
    • 协作工作流
    • 管理身份验证状态
  • 离线空间
    • 概述
  • 管理
    • 管理项目
      • 管理项目
      • 通知设置
      • 管理项目成员
      • 项目资源
        • 数据库连接
        • Git 连接
    • 管理团队
      • 管理团队
      • 管理团队成员
      • 团队活动
      • 团队角色与权限
      • 团队资源
        • General Runner
        • 团队变量
        • 请求代理 Agent
      • 实时协作
        • 团队协作
    • 入门检查清单
      • 基本概念
      • 入门指南
    • 管理组织
      • 管理组织
      • 组织角色与权限
      • 套餐管理
        • 组织中的账单管理员
      • 单点登录 (SSO)
        • SSO 概述
        • 配置 Microsoft Entra ID
        • 配置 Okta
        • 为组织配置 SSO
        • 管理用户账户
        • 将组映射到团队
      • SCIM 配置
        • SCIM 预配简介
        • Microsoft Entra ID
        • Okta
      • 组织资源
        • 自托管 Runner
  • 计费
    • 概述
    • 积分
    • 升级您的套餐
    • 替代支付方式
    • 管理订阅
    • 将付费团队移入组织
  • 附加组件
    • API Hub
    • Apidog Intellij IDEA 插件
    • 浏览器扩展
      • Chrome
      • Microsoft Edge
    • 请求代理
      • Web 中的请求代理
      • 共享文档中的请求代理
      • 客户端中的请求代理
  • 数据与安全
    • 数据存储和安全
    • 用户数据隐私与安全
    • 请求路由与数据安全
  • 参考
    • API 设计优先方法
    • Apidog OpenAPI 规范扩展
    • JSONPath
    • XPath
    • 正则表达式
    • JSON Schema
    • CSV 文件格式
    • 安装 Java 环境
    • Runner 部署环境
    • Apidog Markdown 语法
    • Apidog Swagger 扩展
      • 概述
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Apidog JSON Schema 扩展
      • 概述
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • 支持中心
  1. 使用脚本

Postman 脚本参考

Apidog 的脚本引擎使用 pm 对象来访问有关请求、响应和变量的数据。此方法与 Postman 兼容。

pm 对象#

pm 对象具有以下主要属性。
属性数据类型描述
pm.info.eventNameString当前正在运行的脚本类型(预处理器脚本或后处理器脚本)。
pm.info.iterationNumber当前迭代的次数(仅在测试集合中有效)。
pm.info.iterationCountNumber总迭代次数(仅在测试集合中有效)。
pm.info.requestNameString当前正在运行的 API 名称。
pm.info.requestIdString当前正在运行的 API ID。

发送请求(pm.sendRequest)#

pm.sendRequest:Function
pm.sendRequest 用于在脚本中发送异步 HTTP/HTTPS 请求。
此方法接受一个与 collection SDK 兼容的请求参数,以及一个回调函数参数。回调有 2 个参数。第一个是错误,第二个是与 collection SDK 兼容的响应。更多信息请查看 Collection SDK documentation。
你可以在预处理器脚本和后处理器脚本中使用它。
更多参考,请访问:
Request JSON 结构
Response 结构

pm.variables#

pm.variables:在此查看 Variable SDK 文档。
局部变量。不同变量的优先级如下:
Local Variables > Environment Variables > Global Variables Shared within Project > Global Variables Shared within Team。
pm.variables.has(variableName:String):function → Boolean:检查临时变量是否存在。
pm.variables.get(variableName:String):function → *:获取临时变量。
pm.variables.set(variableName:String, variableValue:String):function → void:设置临时变量。
pm.variables.replaceIn(variableName:String):function:将字符串中的“动态变量”(例如 {{variable_name}})替换为实际值。示例:
// Define a string containing a dynamic variable
let stringWithVariable = "Hello, {{username}}";

// Use the replaceIn method to replace the {{username}} placeholder
let realValueString = pm.variables.replaceIn(stringWithVariable);

// Output the replaced value
console.log(realValueString); // Output: "Hello, john_doe"
pm.variables.replaceInAsync(variableName:String):function:将字符串中的“动态值表达式”(例如 {{$person.fullName}})替换为实际值。此方法返回一个 Promise,因此调用时需要使用 await。示例:
// Define a string containing a dynamic value expression
let stringWithVariable = "Hello, {{$person.fullName}}";

// Use the replaceInAsync method to replace the {{$person.fullName}}
let realValueString = await pm.variables.replaceInAsync(stringWithVariable);
pm.variables.toObject():function → Object:以对象形式获取所有局部变量。

pm.iterationData#

pm.iterationData:
测试数据变量
我们目前不支持直接在脚本中设置测试数据变量,因为测试数据是单独管理的。不过,你可以按如下方式在脚本中访问这些变量:
pm.iterationData.has(variableName:String):function → Boolean:检查测试变量是否存在。
pm.iterationData.get(variableName:String):function → *:获取测试变量。
pm.iterationData.replaceIn(variableName:String):function:将字符串中的动态变量替换为其实际值,例如 {{variable_name}}。
pm.iterationData.toObject():function → Object:以对象形式获取所有局部变量。

pm.environment#

pm.environment.name:String:环境名称。
pm.environment.has(variableName:String):function → Boolean:检查环境变量是否存在。
pm.environment.get(variableName:String):function → *:获取环境变量。
pm.environment.set(variableName:String, variableValue:String):function:设置环境变量。
pm.environment.replaceIn(variableName:String):function:将字符串中的动态变量替换为其实际值,例如 {{variable_name}}。
pm.environment.toObject():function → Object:以对象形式获取所有局部变量。
pm.environment.unset(variableName:String):function:取消设置环境变量。
pm.environment.clear():function:清除当前环境下的所有环境变量。
提示:上述操作仅读取和写入当前值;它们不会读取或写入远程值。

pm.moduleVariables#

pm.moduleVariables: Object
用于管理模块级变量的 Current Value。
pm.moduleVariables.has(variableName: String): function → Boolean
检查特定模块变量是否存在。
pm.moduleVariables.get(variableName: String): function → *
获取特定模块变量的值。
pm.moduleVariables.set(variableName: String, variableValue: String): function
设置特定模块变量的值。
pm.moduleVariables.replaceIn(variableName: String): function
将字符串中的 {{variable}} 占位符替换为其实际值。
pm.moduleVariables.toObject(): function → Object
将所有模块变量作为键值对象返回。
pm.moduleVariables.unset(variableName: String): function
删除特定模块变量。
pm.moduleVariables.clear(): function
清除当前模块中的所有模块变量。
示例:
兼容性说明:
pm.collectionVariables 的工作方式与 pm.moduleVariables 相同,并且可以互换使用。

pm.globals#

pm.globals.has(variableName:String):function → Boolean:检查全局变量是否存在。
pm.globals.get(variableName:String,variableScope:String):function → *:获取全局变量。使用 'PROJECT'(默认)或 'TEAM' 指定变量的作用域。
pm.globals.set(variableName:String,variableValue:String, variableScope:String):function:设置全局变量。使用 'PROJECT'(默认)或 'TEAM' 指定变量的作用域。
pm.globals.replaceIn(variableName:String):function:将字符串中的动态变量替换为其实际值,例如 {{variable_name}}。
为了在预处理器脚本中获取包含变量的请求参数的值,请使用 pm.globals.replaceIn 将变量替换为真实值。
pm.globals.toObject():function → Object:以对象形式获取所有全局变量。
pm.globals.unset(variableName:String,variableScope:String):function:取消设置全局变量。使用 'PROJECT'(默认)或 'TEAM' 指定变量的作用域。
pm.globals.clear():function:清除当前环境下的所有全局变量。
TIP
1.
以上所有操作仅影响current values,不影响initial values。
2.
使用 'TEAM' 作用域进行 set 时,只会更新现有团队变量的当前值。如果团队变量不存在,则不会创建它。相反,该变量会被视为局部变量。

pm.request#

pm.request:在此查看 Request SDK 文档。
request 是 API 请求对象。在预处理器脚本中,它是将要发送的请求。在后处理器脚本中,它是已经发送的请求。
request 包含以下信息:
pm.request.url:Url:当前请求的 URL。
pm.request.getBaseUrl():获取当前运行时环境所选的 BASE URL。此功能在 2.1.39 版本之后支持。
pm.request.headers:HeaderList:当前请求的头部列表。
pm.request.method:String:当前请求的方法,例如 GET、POST 等。
pm.request.body: RequestBody:当前请求的主体。
pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function:在当前请求中添加一个以 headerName 为键的头部。
pm.request.headers.remove(headerName:String):function:在当前请求中删除一个以 headerName 为键的头部。
pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function:在当前请求中更新或插入一个以 headerName 为键的头部。如果该键已存在,则会被修改。
以下 API 只能在postprocessor scripts中使用。

pm.response#

pm.response:在此查看 Response SDK documentation 。
在后处理器脚本中使用 pm.response 访问返回的响应信息。
pm.response 包含以下信息:
pm.response.code:Number
pm.response.status:String
pm.response.headers:HeaderList
pm.response.responseTime:Number
pm.response.responseSize:Number
pm.response.text():Function → String
pm.response.json():Function → Object

pm.cookies#

pm.cookies:在此查看 CookieList SDK documentation。
Cookies 是当前请求域名下的 cookie 列表。
pm.cookies.has(cookieName:String):Function → Boolean
检查 cookieName 的 cookie 值是否存在。
pm.cookies.get(cookieName:String):Function → String
从 cookieName 获取 cookie 值。
pm.cookies.toObject:Function → Object
以对象形式获取当前域名下的所有 cookie。
pm.cookies.jar().clear(pm.request.url)
清除所有 cookie。
TIP
pm.cookies 是 API 请求后返回的 cookie,而不是 API 请求发送的 cookie。

pm.test#

此函数用于断言结果是否符合预期。
下面的示例可用于判断响应是否正确。
你可以在回调函数中使用 done(可选参数)来运行异步测试。
pm.test.index():Function → Number
获取特定位置的测试总数。

pm.expect#

pm.expect 是一种断言方法。在此查看 ChaiJS expect BDD 库文档。
此方法旨在对响应或变量中的数据进行断言。有关更多 pm.expect 示例,请访问 Assertion library examples。

pm.response.to.have.*#

pm.response.to.have.status(code:Number)
pm.response.to.have.status(reason:String)
pm.response.to.have.header(key:String)
pm.response.to.have.header(key:String, optionalValue:String)
pm.response.to.have.body()
pm.response.to.have.body(optionalValue:String)
pm.response.to.have.body(optionalValue:RegExp)
pm.response.to.have.jsonBody()
pm.response.to.have.jsonBody(optionalExpectEqual:Object)
pm.response.to.have.jsonBody(optionalExpectPath:String)
pm.response.to.have.jsonBody(optionalExpectPath:String, optionalValue:*)
pm.response.to.have.jsonSchema(schema:Object)
pm.response.to.have.jsonSchema(schema:Object, ajvOptions:Object)

pm.response.to.be.*#

你可以使用内置的pm.response.to.be进行快速断言。
pm.response.to.be.info
检查状态码是否为 1XX。
pm.response.to.be.success
检查状态码是否为 2XX。
pm.response.to.be.redirection
检查状态码是否为 3XX。
pm.response.to.be.clientError
检查状态码是否为 4XX。
pm.response.to.be.serverError
检查状态码是否为 5XX。
pm.response.to.be.error
检查状态码是否为 4XX 或 5XX。
pm.response.to.be.ok
检查状态码是否为 200。
pm.response.to.be.accepted
检查状态码是否为 202。
pm.response.to.be.badRequest
检查状态码是否为 400。
pm.response.to.be.unauthorized
检查状态码是否为 401。
pm.response.to.be.forbidden
检查状态码是否为 403。
pm.response.to.be.notFound
检查状态码是否为 404。
pm.response.to.be.rateLimited
检查状态码是否为 429。
Modified at 2026-06-09 08:55:47
Previous
公共脚本
Next
调用其他编程语言
Built with