Apifox 使用文档

vuePress-theme-reco Apifox 使用文档    2021
Apifox 使用文档 Apifox 使用文档

Choose mode

  • dark
  • auto
  • light
文档
建议反馈
下载 Apifox

Apifox 使用文档

0

Article

0

Tag

文档
建议反馈
下载 Apifox
  • 介绍

    • Apifox 介绍
    • 快速上手
  • 接口管理

    • 接口设计 (接口文档)
    • 接口调试 / 接口用例
    • 数据结构 / 数据模型
    • 快捷调试
    • 环境管理
    • 环境变量 / 全局变量 / 本地变量
    • 动态变量 / 随机参数
  • Socket 接口

    • Socket 接口快速上手
    • 报文数据处理器
  • 最佳实践

    • 团队协作流程
    • 接口之间如何传递数据
    • 登录态(Auth)如何处理
    • 接口签名如何处理
  • 使用脚本

    • 脚本介绍
    • 预执行脚本
    • 后执行脚本 (断言测试)
    • 公共脚本
    • 脚本 API 参考

      • pm 对象 API
      • 内置 JS 类库
      • 脚本调用其他语言( java、python、php 等)
    • 脚本示例

      • 断言 (测试请求结果)
      • 脚本使用变量
      • 脚本读取/修改接口请求信息
      • 其他示例
  • Mock 数据

    • Mock 功能说明
    • Mock 语法
    • 智能 Mock
  • 测试管理

    • 测试用例
    • 测试套件
    • 性能测试
    • 对比测试 (todo)
  • 持续集成

    • 持续集成
  • 代码生成

    • 代码生成
  • 导入/导出

    • 导入数据
    • 导入抓包数据 (cURL)
    • 导出数据
  • Apifox CLI

    • Apifox CLI 命令行运行
  • Apifox API

    • Apifox 开放 API (todo)
  • 插件

    • 插件安装、开发 (todo)
    • 数据导入插件 (todo)
    • 数据导出插件 (todo)
  • 更多功能

    • 快捷键
    • 私有化部署
  • 参考资料

    • JSON Schema 介绍
    • Socket 粘包和分包问题
    • 安装 Java 环境
  • 其他

    • 常见问题
    • 后续功能规划
    • 更新日志
    • 联系我们

vuePress-theme-reco Apifox 使用文档    2021

脚本读取/修改接口请求信息


Apifox 使用文档

# 脚本读取/修改接口请求信息

脚本如何读取/修改接口请求信息主要使用pm.request。

注意

  • 脚本可以读取所有请求参数信息,但是只能修改 header 和 query 参数,不能修改其他参数。
  • 只有在预执行脚本里修改请求信息才是有效的,在后执行脚本里修改无效。

# URL 相关信息

// 获取 url 对象
var urlObject = pm.request.url;

// 获取完整接口请求 URL,包含 query 参数
var url = urlObj.toString();

// 获取协议(http 或 https)
var protocol = urlObj.protocol;

// 获取 端口
var port = urlObj.port;

# Header 参数

获取 header 参数

// 获取 Header 参数对象
var headers = pm.request.headers;

// 获取 key 为 field1 的 header 参数的值
var field1 = headers.get('field1');

// 已键值对象方式获取所有 query 参数
var headersObject = headers.toObject();

// 遍历整个 query
headers.each(item => {
    console.log(item.key); // 输出参数名
    console.log(item.value); // 输出参数值
});

修改 header 参数

// 获取 Header 参数对象
var headers = pm.request.headers;

// 增加 header 参数
headers.add({
    key: 'field1',
    value: 'value1',
});

// 修改 query 参数(如不存在则新增)
headers.upsert({
    key: 'field2',
    value: 'value2',
});

# Query 参数

获取 query 参数

// 获取 Query 参数对象
var queryParams = pm.request.url.query;

// 获取 key 为 field1 的 query 参数的值
var field1 = queryParams.get('field1');

// 已键值对象方式获取所有 query 参数
var quertParamsObject = queryParams.toObject();

// 遍历整个 query
queryParams.each(item => {
    console.log(item.key); // 输出参数名
    console.log(item.value); // 输出参数值
});

修改 query 参数

// 获取 Query 参数对象
var queryParams = pm.request.url.query;

// 增加 query 参数
queryParams.add({
    key: 'field1',
    value: 'value1',
});

// 修改 query 参数(如不存在则新增)
queryParams.upsert({
    key: 'field2',
    value: 'value2',
});

# Body 参数

Body 参数来自pm.request.body,pm.request.body 是一个RequestBody 实例。

参考:http://www.postmanlabs.com/postman-collection/RequestBody.html

注意

Body 参数在只能读取,不能直接修改。如需修改 Body 里的数据,请在 Body 里引用变量,然后在脚本里设置变量的值,以达到修改的目的。

# 一、body 类型为 form-data

获取 form-data 信息

// 当 body 类型为 form-data 时,从 pm.request.body.formdata 获取请求参数
var formData = pm.request.body.formdata;

// 获取 key 为 field1 的 form-data 参数的值
var field1 = formData.get('field1');
console.log(field1); // 控制台打印 field1

// 已键值对象方式获取所有 formdata 参数
var formdataObject = formData.toObject();
console.log(formdataObject); // 控制台打印 formdataObject

// 遍历整个 form-data 数据
formData.each(item => {
    console.log(item.key); // 控制台打印参数名
    console.log(item.value); // 控制台打印参数值
});

# 二、body 类型为 x-www-form-urlencode

获取 x-www-form-urlencode 信息

// 当 body 类型为 x-www-form-urlencode** 时,从 pm.request.body.urlencoded 获取请求参数
var formData = pm.request.body.urlencoded;

// 获取 key 为 field1 的 form-data 参数的值
var field1 = formData.get('field1');

// 已键值对象方式获取所有 formdata 参数
var formdataObject = formData.toObject();

// 遍历整个 form 数据
formData.each(item => {
    console.log(item.key); // 控制台打印参数名
    console.log(item.value); // 控制台打印参数值
});

# 三、body 类型为 json

获取 json 信息

// 当 body 类型为 json 时,从 pm.request.body.raw 获取请求参数

try {
    var jsonData = JSON.parse(pm.request.body.raw);
    console.log(jsonData); // 控制台打印参整个 json 数据
} catch (e) {
    console.log(e);
}

# 四、body 类型为 raw

获取 raw 信息

// 当 body 类型为 raw 时,从 pm.request.body.raw 获取请求参数

var raw = pm.request.body.raw;
console.log(raw); // 控制台打印参整个 raw 数据
  • URL 相关信息
  • Header 参数
  • Query 参数
  • Body 参数
  • 一、body 类型为 form-data
  • 二、body 类型为 x-www-form-urlencode
  • 三、body 类型为 json
  • 四、body 类型为 raw