API auto test
1. api-auto-test简介
- 指南和教程,帮助您开始使用api-auto-test。
- api-auto-test是一个免费的开源API开发平台,帮助您更快地构建、测试和文档化API。它是一个基于Web的API开发环境,允许您在一个界面中发送请求和查看响应。
- 查找文章、指南和教程,帮助您开始使用api-auto-test。

2. 工作区
2.1. 创建工作区
-
要创建工作区,请单击工作区切换器右上角的 ”+” 图标。

-
或者,您也可以在“Workspaces”部分下的“Profile”页面上单击“Create new workspace”按钮。

-
创建工作区使您成为该工作区的所有者。您可以邀请其他用户加入工作区并分配角色。
2.2. 邀请用户加入工作区
-
要邀请用户加入工作区,请单击“Invite”按钮。

-
输入您想要邀请的用户的电子邮件地址。您可以通过在输入字段中添加电子邮件地址一次邀请多个用户。

2.3. 在工作区之间切换
在工作区之间切换,请点击应用程序右上角的工作区切换器,然后选择您想要切换到的工作区。

2.4. 编辑工作区
您只能在是工作区所有者的情况下编辑工作区。

2.4.1. 从工作区中移除用户
- 要从工作区中移除用户,请点击应用程序右上角的工作区设置按钮。
- 然后点击您想要从工作区中移除的用户的“Delete”按钮。
2.4.3. 离开工作区
- 要离开工作区,请点击应用程序右上角的工作区设置按钮。然后点击您想要离开的工作区的“Delete”按钮。
- 您只能在不是工作区所有者的情况下离开工作区。如果您是工作区的所有者,您必须删除工作区才能离开。或者,您也可以将工作区的所有权转让给其他用户,然后再离开工作区。
2.4.4. 更改成员角色
工作区成员有三种角色类型:
- Owner: 工作区的所有者对工作区拥有完全访问权限,并可以邀请其他用户加入工作区。所有者还可以删除工作区。
- Editor: 工作区的编辑者对工作区拥有编辑权限,可以在工作区中创建、编辑和删除集合、环境和请求。
- Viewer: 工作区的查看者对工作区拥有只读访问权限,只能查看工作区中的集合、环境和请求。 要更改工作区中成员的角色,请单击应用程序右上角的工作区设置按钮。然后单击您想要更改角色的用户的“Role”下拉菜单。接着选择您想要分配给该用户的角色,然后单击“Save”。
2.4.5. 删除工作区
要删除工作区,请单击您想要删除的工作区上的“Delete”按钮,在“Profile”页面的“Workspaces”部分下。
3. 集合
3.1. 创建新集合
要创建新集合,请单击集合部分的“Add new”按钮并输入集合的名称。您还可以通过单击所需集合上的“Add new”按钮并输入子集合的名称来创建子集合。
3.2. 将请求保存到集合
要将新请求添加到您的集合中,您可以单击请求页面上的“Save”按钮并选择要添加的集合。单击保存按钮旁边的下拉菜单,然后单击“Save as”将请求保存到新位置。
您还可以使用键盘快捷键 Ctrl/Cmd + S 将请求保存到集合中。
3.3. 组织集合
您可以通过拖放集合到所需位置来组织您的集合。您还可以通过将一个集合拖放到另一个集合中来创建子集合。
3.3.1. 编辑集合
要编辑集合,请单击集合选项上的“Edit”按钮。
3.3.2. 将请求添加到集合
要将请求添加到集合中,请单击集合选项中的“New request”按钮,以将当前请求保存到集合中。
3.4. 复制集合
要复制集合,请单击集合选项中的 “Duplicate” 按钮。
3.5. 删除集合
要删除集合,请单击集合选项中的“Delete”按钮。
3.6. 导入和导出集合
您可以从 api-auto-test、OpenAPI 和 Postman 导入和导出集合。
3.6.1. 导入集合
要导入集合,请单击集合部分中的“Import”按钮,并选择您要导入的集合类型。
3.6.2. 导出集合
要导出集合,请单击集合选项中的“Export”按钮,并选择您要导出的集合类型。
3.7. 集合属性
集合属性使您能够定义适用于集合中所有请求的通用设置。
授权详细信息和头部可以在集合级别指定。集合中的子文件夹和单个请求可以继承这些属性或定义其自定义身份验证和头部。
要设置集合属性:
- 右键单击集合或集合中的子文件夹以打开其属性。
- 指定所有嵌套请求或文件夹应遵循的授权和头部。
- 如果子文件夹应继承父集合的属性,请将授权指定为“inherit”,并保留头部。
4. 变量
4.1. 变量作用域
api-auto-test 提供了不同的变量作用域,允许您在不同的上下文中使用不同的作用域。
- Global Variables: 可以在 api-auto-test 中访问,并且是所有变量中作用域最广泛的。
- Environment Variables: 允许您的变量被限定在一个环境中。环境变量在您有两个环境(例如生产和预发布)使用相同的变量集时非常有用。
- Request Variables: 仅限于单个请求,请求变量在您想要在 URL 路径中使用变量或想要嵌入变量 URL 时非常有用。
- Predefined Variables: 在运行时自动生成,并且可以通过 $ 符号在 api-auto-test 中全局访问,例如 $guid 或 $timestamp。
每个变量的作用域可以通过变量名称的颜色来识别
| Variable Scope | Color |
|---|---|
| Global | Blue |
| Environment | Green |
| Request | Orange |
| Predefined | Yellow |
| Non resolvable | Red |
4.2. Types of Variables
- A regular variable: 允许用户在 api-auto-test 中引用该变量,任何人都可以看到与该变量相关联的值。在工作区中,常规环境变量-值对将同步到服务器,使其对所有工作区成员可用。然而,您可以选择是否同步您个人工作区中存在的常规变量值。
- A secret variable: 使用户能够指定秘密并将值作为变量引用。任何工作区中的秘密变量的值将永远不会同步到服务器或与任何工作区成员共享。预计在协作工作区中,用户将在运行时填充变量的值。api-auto-test 中的所有秘密变量值将使用星号 (*** ) 进行掩码。秘密变量不能被限制在请求中,只能在环境中或全局范围内使用。
当环境被导出时,秘密变量的值将不会被导出。
- A predefined variable: 在运行时自动生成,并提供动态的、上下文特定的数据。预定义变量在您的请求和响应中可用,并且对于在 API 交互中纳入系统级信息或动态值而无需手动配置非常有用。所有预定义变量在 api-auto-test 中都可以访问,并且可以使用 $ 符号进行检索。以下是预定义变量的列表,其值在请求或集合运行期间动态生成:
变量名称 描述 示例: guidA v4 风格的唯一 (GUID) 标识符,用于每个请求。123e4567-e89b-12d3-a456-426614174000
timestamp 当前的 UNIX 时间戳(以秒为单位) 1693047645isoTimestamp 当前日期和时间,采用 ISO-8601 格式,零 UTC(也称为“Zulu 时间”或 UTC-0)2024-09-25T00:00:00.000Z
randomUUID 一个随机的 36 字符 UUID。6929bb52-3ab2-448a-9796-d6480ecad36b
Numbers, Text, and Colors| Variable Name | Description | Example |
|---|---|---|
| $randomAlphaNumeric | 一个随机的字母数字字符。 | A9X1Z3 |
| $randomBoolean | 一个随机的布尔值。 | true , false |
| $randomInt | 一个介于 0 和 1000 之间的随机整数值。 | 29 , 432 , 786 |
| $randomColor | 在 red, green, blue, yellow, purple, and orange. 中的随机颜色 | yellow |
| $randomHexColor | 随机十六进制值。 | #f2a729 |
| $randomAbbreviation | 随机缩写。 | SQL , JSON , HTML |
| Variable Name | Description | Example |
|---|---|---|
| $randomIP | 随机 IPv4 地址 | 192.168.0.101 |
| $randomIPV6 | 随机 IPv6 地址 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
| $randomMACAddress | 随机 MAC 地址。 | 00:1B:44:11:3A:B7 |
| $randomPassword | 随机 15 个字符的字母数字密码。 | H8w72Sx93KlqA1b |
| $randomLocale | 随机两字母语言代码(ISO 639-1)。 | en , fr , es |
| $randomUserAgent | 随机用户代理。 | Mozilla/5.0 (Windows NT 10.0; Win64) |
| $randomProtocol | 随机互联网协议。 | https , ftp |
| $randomSemver | 随机语义版本号。 | 1.2.3 |
| Variable Name | Description | Example |
|---|---|---|
| $randomFirstName | 随机名字。 | Ethan , Chandler , John |
| $randomLastName | 随机姓氏。 | Schaden , Schneider , Doe |
| $randomFullName | 随机全名。 | Ethan Schaden , Chandler Schneider , John Doe |
| $randomNamePrefix | 随机名字前缀。 | Dr. , Miss. , Prof. |
| $randomNameSuffix | 随机名字后缀。 | MD , PhD , Jr. |
| Variable Name | Description | Example |
|---|---|---|
| $randomCity | 随机城市名称。 | New York , Houston , Philadelphia |
| $randomJobArea | 随机工作领域。 | Intranet , Development , Testing |
| $randomJobDescriptor | 随机工作描述。 | Corporate , Lead , Principal |
| $randomJobTitle | 随机工作标题。 | Global Branding Officer , Productivity Analyst |
| $randomJobType | 随机工作类型。 | Manager , Coordinator , Director |
5. 环境
5.1. 环境类型
- 全局环境 - 在全局环境中定义的变量可以在任何工作区随时访问。然而,在个人或共享工作区环境中定义的变量如果被使用,将优先于全局变量。
- 个人环境 - 个人用户专用,不与共享工作区关联,然而用户可以在共享工作区中使用个人环境,而无需与工作区成员共享。
- 共享环境 - 每个共享工作区独有,所有在共享工作区中创建的共享环境对每个共享工作区的成员可访问。
5.2. 环境中的变量类型
api-auto-test 环境支持两种类型的变量
- 常规环境变量允许用户在整个 api-auto-test 中引用该变量,任何人都可以看到与该变量相关联的值。在共享工作区中,常规环境变量-值对将同步到服务器,使其对所有工作区成员可用。然而,您可以选择是否同步个人或全局环境。
- 一个秘密环境变量使用户能够指定秘密并将其值作为变量引用。在任何工作区中的秘密变量的值将永远不会同步到服务器或与任何工作区成员共享。预计用户将在运行时填充变量的值。api-auto-test中的所有秘密变量值将使用星号(***)进行掩码。
当环境被导出时,秘密变量的值将不会被导出。
5.3. 共享环境访问
| Environment Variable | Secret Variable | |
|---|---|---|
| 工作区所有者 | 创建/删除变量,编辑值并使用 | 创建/删除秘密变量,添加值并使用 |
| 工作区编辑者 | 创建/删除变量,编辑值并使用 | 创建/删除秘密变量,添加值并使用 |
| 工作区查看者 | 使用 | 添加值并使用 |
5.4. 创建环境
点击侧边栏上的“环境”图标以创建环境。
在环境中创建的变量可以通过输入用双尖括号括起来的变量名称来使用 <<variable>>。
5.4.1. 从客户端创建环境变量
Environment variables了解如何在请求和脚本中使用环境变量。
环境变量允许您在请求和脚本中存储和重用值。
通过将值存储在变量中:
- 您可以在请求部分中引用它。
- 您可以通过在一个地方更新它来更改其值。
- 您提高了高效工作的能力,并最小化错误的可能性。
您可以通过点击侧边栏上的环境图标并点击 new 按钮来创建一个新环境。让我们将环境标记为 Pokemon Envs。 现在,让我们创建一个名为 baseURL 的环境变量,指向 https://pokeapi.co/api/v2。
同样,您可以创建多个环境和环境变量。
Accessing environment variable如果您有多个环境,请选择您想要访问其变量的环境。您可以通过以下格式引用变量,在请求部分访问变量 <<variable_name>>,在我们的例子中,变量将是 <<baseURL>>,完整的 URL 将是 <<baseURL>>/pokemon/ditto。
5.4.2. 使用脚本创建环境变量
Pre-request scripts了解如何在 Hoppscotch 中使用预请求脚本。
ScriptsHoppscotch 允许您为 REST API 请求添加动态行为。这使您能够编写测试套件并构建可以包含动态参数的请求。您可以添加 ECMAScript 代码,该代码根据流程中的事件执行:
- 预请求脚本在请求发送到服务器之前执行。
- 您可以向请求添加多个预请求脚本。
- 您可以向保存在集合中的请求和未保存在集合中的请求添加预请求脚本。
然后,Hoppscotch 将按照指定的顺序执行脚本和请求。
Pre-request script预请求脚本是一段将在请求执行之前运行的代码。
您可以将预请求脚本用于预处理任务,例如:
- 设置参数、头部。
- 添加主体数据。
- 添加变量值。
- 在请求头中包含时间戳。
Hoppscotch 提供了一个特殊的 pw 对象,包含各种方法来创建脚本和测试。pw 对象是全局的,可以通过名称引用以访问方法。 例如,要设置环境变量,您可以使用 pw.env.set() 方法。
pw.env.set("variable", "value");
Examples让我们看一些如何使用 Hoppscotch 编写预请求脚本的示例。
Setting environment variablespw.env.set() 可以直接用于快速和方便的环境变量定义。它可以更好地组织请求代码。
pw.env.set("baseURL", "https://httpbin.org");pw.env.set("method", "get");
转到预请求脚本选项卡并复制粘贴上述 ECMAScript 代码,如下所示:
这些变量可以通过在双尖括号 <<variable_name>> 中引用它们来访问请求部分。因此,URL 将是 <<baseURL>>/<<method>>。
让我们考虑一个需要测试在端点上可用的随机测试用户数据的情况。
让我们使用以下 GET API 端点 https://reqres.in/api/users/。
将 <<randomValue>> 添加到端点 URL。
https://reqres.in/api/users/<<randomValue>>
现在在预请求脚本选项卡中添加以下逻辑。
var random = Math.floor(Math.random() * 10);pw.env.set("randomValue", random.toString());
ECMAScript 代码将为环境变量 randomValue 分配一个随机数,API 将返回与随机值相关联的随机用户。
您将获得如下所示的类似响应:
{
"data": {
"id": 4,
"email": "eve.holt@reqres.in",
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://reqres.in/img/faces/4-image.jpg"
},
"support": {
"url": "https://reqres.in/#support-heading",
"text": "为了保持 ReqRes 免费,感谢对服务器成本的贡献!"
}
}
5.5. 使用脚本
您还可以通过使用 pw 对象来使用脚本创建和删除环境变量。
pw.env.set("variable", "value"); // 创建一个环境变量
pw.env.unset("variable"); // 删除环境变量
5.6. 复制环境
创建现有环境的副本,以便在不影响原始环境的情况下修改或测试不同的配置:
- 点击侧边栏中的“环境”图标,以查看所有在全局环境下的现有环境。
- 在您想要复制的环境旁边,点击 More 图标。
- 从下拉菜单中选择 Duplicate。将创建一个带有后缀 Duplicate 的新环境。