0


Postman:Postman脚本编写:变量与环境变量的管理

Postman:Postman脚本编写:变量与环境变量的管理

在这里插入图片描述

Postman基础介绍

Postman的安装与配置

在开始使用Postman进行API测试和开发之前,首先需要安装并配置Postman应用。Postman是一个强大的API开发工具,支持多种协议,如HTTP和HTTPS,允许用户构建、发送、调试和修改API请求。

安装步骤

  1. 访问官方网站:前往Postman的官方网站(https://www.postman.com/downloads/)。
  2. 选择版本:根据你的操作系统(Windows, macOS,或Linux)选择合适的版本进行下载。
  3. 安装应用:下载完成后,运行安装程序并按照屏幕上的指示完成安装过程。

配置Postman

安装完成后,Postman会自动启动。首次使用时,你可能需要进行一些基本配置:

  1. 创建账户:虽然Postman可以不登录使用,但创建一个账户可以让你保存请求、集合和环境,以及与团队共享工作。
  2. 工作空间选择:Postman提供个人工作空间和团队工作空间。选择适合你当前需求的工作空间。
  3. 环境设置:在Postman中,环境用于存储和管理变量,这些变量可以是API的URL、认证信息等。创建环境可以帮助你在不同的开发阶段(如开发、测试、生产)之间切换。

Postman的请求发送方法

Postman允许用户通过其直观的界面发送各种类型的HTTP请求。以下是一些基本的请求类型及其在Postman中的发送方法:

GET请求

GET请求用于从服务器获取数据。在Postman中发送GET请求非常简单:

  1. 选择请求类型:在顶部的下拉菜单中选择“GET”。
  2. 输入URL:在URL输入框中输入你想要请求的URL。
  3. 发送请求:点击“Send”按钮,Postman将发送请求并显示服务器的响应。

POST请求

POST请求用于向服务器发送数据。在Postman中,你可以通过以下步骤发送POST请求:

  1. 选择请求类型:在顶部的下拉菜单中选择“POST”。
  2. 输入URL:在URL输入框中输入你想要请求的URL。
  3. 设置Body:在Body选项卡中,选择“raw”并设置数据格式(如JSON、XML等),然后输入你想要发送的数据。{"name":"John Doe","email":"[email protected]"}
  4. 发送请求:点击“Send”按钮,Postman将发送请求并显示服务器的响应。

PUT和PATCH请求

PUT和PATCH请求用于更新服务器上的资源。PUT通常用于完全替换资源,而PATCH用于部分更新资源。发送这些请求的方法与发送POST请求类似,只需在顶部的下拉菜单中选择“PUT”或“PATCH”,然后设置Body和URL。

DELETE请求

DELETE请求用于从服务器删除资源。发送DELETE请求的方法与发送GET请求类似,只需选择“DELETE”请求类型并输入URL。

使用变量

在Postman中,变量允许你存储和重用数据,如URL、认证信息或动态生成的值。你可以在请求的任何部分使用变量,包括URL、Headers、Body和Pre-request Scripts。

定义变量

在请求的任何部分,你可以通过双括号

{{variable_name}}

来定义和使用变量。例如,如果你有一个API URL,其中包含一个动态的用户ID,你可以这样定义:

{"url":"https://api.example.com/users/{{user_id}}"}
环境变量

环境变量是存储在Postman环境中的变量,可以跨请求和集合使用。要使用环境变量,首先需要创建一个环境,然后在该环境中定义变量。

  1. 创建环境:在Postman的左侧面板中,点击“Manage Environments”,然后点击“Add”来创建一个新的环境。
  2. 定义环境变量:在新创建的环境中,添加你想要的变量,如{{user_id}}
  3. 使用环境变量:在请求中,使用双括号引用环境变量,如{{user_id}}

预请求脚本

预请求脚本允许你在发送请求之前执行JavaScript代码。这可以用于设置动态变量、修改请求头或执行任何必要的预处理。

示例:设置动态变量

假设你想要在发送请求之前生成一个随机的用户ID,你可以使用预请求脚本来实现:

// 设置动态变量
pm.environment.set("user_id", Math.floor(Math.random()*1000));

这段代码将在每次发送请求之前生成一个0到999之间的随机整数,并将其存储为环境变量

user_id

后处理脚本

后处理脚本允许你在收到响应后执行JavaScript代码。这可以用于提取响应中的数据、设置变量或进行断言检查。

示例:提取响应数据

假设你发送了一个请求,并希望从响应中提取用户ID,你可以使用后处理脚本来实现:

// 提取响应数据var jsonData = pm.response.json();
pm.globals.set("user_id", jsonData.user.id);

这段代码将解析JSON响应,提取

user.id

的值,并将其存储为全局变量

user_id

通过以上步骤,你可以开始使用Postman进行API测试和开发,利用其强大的功能来管理变量和环境,以及发送各种类型的HTTP请求。

Postman:脚本编写中的变量与环境变量管理

变量的概念与使用

理解Postman中的变量

在Postman中,变量允许你存储和重用数据,使请求更加动态和灵活。它们可以用于构建URL、请求头、请求体、预请求脚本、测试脚本等。变量的值可以在不同的请求之间传递,甚至在不同的集合之间共享,这极大地提高了测试和API开发的效率。

变量的声明与赋值

在Postman中,变量可以通过预请求脚本或测试脚本进行声明和赋值。使用

pm

对象和

postman

集合,你可以轻松地操作这些变量。下面是一个示例,展示了如何在预请求脚本中声明和赋值变量:

// 预请求脚本示例// 声明一个变量并赋值
pm.globals.set("myVariable","Hello, World!");// 使用变量const url = pm.globals.get("myVariable")+"/api/v1/users";
pm.request.url = url;

使用变量进行动态请求

变量的使用使Postman请求能够根据不同的条件或数据动态变化。例如,你可以使用变量来构建动态的URL参数,或者在请求体中插入动态数据。下面的示例展示了如何在请求中使用变量:

// 测试脚本示例// 假设我们从响应中获取了一个用户ID,并将其存储为变量const responseJson = pm.response.json();
pm.globals.set("userId", responseJson.id);// 在下一个请求中使用这个变量const url ="https://api.example.com/users/"+ pm.globals.get("userId");
pm.request.url = url;

环境变量与全局变量

环境变量

环境变量是在特定的环境中定义的变量,它们可以被该环境下的所有请求访问。环境变量非常适合存储API密钥、URL、端点等,这些通常在测试、开发、生产等不同环境中会有所不同。

创建环境变量

在Postman中,你可以通过“Manage Environments”功能来创建和管理环境变量。下面是一个示例,展示了如何在环境中设置一个变量:

// 预请求脚本示例// 在环境中设置变量
pm.environment.set("apiUrl","https://api.example.com");// 使用环境变量const url = pm.environment.get("apiUrl")+"/users";
pm.request.url = url;

全局变量

全局变量在整个Postman应用程序中都是可用的,它们可以被所有环境和请求访问。全局变量通常用于存储不会频繁更改的信息,如固定的API密钥或常量。

创建全局变量

全局变量的创建和管理与环境变量类似,但它们的范围更广。下面是一个示例,展示了如何在全局变量中设置一个变量:

// 测试脚本示例// 在全局变量中设置变量
pm.globals.set("apiKey","1234567890");// 使用全局变量const headers ={"Content-Type":"application/json","x-api-key": pm.globals.get("apiKey")};
pm.request.headers.add(headers);

变量与环境变量的管理

变量管理

在Postman中,你可以通过“Pre-request Script”和“Tests”面板来管理变量。在“Pre-request Script”中,你可以设置变量的初始值或在请求发送前更新它们。在“Tests”面板中,你可以根据响应来更新变量的值。

环境变量管理

环境变量的管理主要通过“Manage Environments”对话框进行。在这里,你可以创建、编辑和删除环境变量,以及在不同的环境中切换。环境变量的管理对于处理不同环境下的API测试至关重要。

全局变量管理

全局变量的管理同样在“Manage Environments”对话框中进行,但它们位于“Globals”部分。全局变量的管理确保了在整个Postman应用程序中的一致性和可重用性。

实战案例:使用变量和环境变量进行API测试

假设你正在测试一个需要用户认证的API。你首先需要发送一个登录请求,从响应中获取一个用户ID,然后使用这个ID来构建后续的请求。同时,你希望在不同的环境中测试这个API,例如开发环境和生产环境。下面是一个使用变量和环境变量的实战案例:

登录请求
// 预请求脚本// 设置环境变量
pm.environment.set("apiUrl","https://dev-api.example.com");// 发送登录请求const loginUrl = pm.environment.get("apiUrl")+"/login";
pm.request.url = loginUrl;// 测试脚本// 从响应中获取用户ID并存储为全局变量const responseJson = pm.response.json();
pm.globals.set("userId", responseJson.id);
用户信息请求
// 使用全局变量构建请求URLconst userInfoUrl = pm.environment.get("apiUrl")+"/users/"+ pm.globals.get("userId");
pm.request.url = userInfoUrl;

通过上述示例,你可以看到变量和环境变量在Postman中的强大作用。它们不仅使请求动态化,还简化了在不同环境下的测试流程,提高了API测试的效率和准确性。

环境变量的管理

创建与编辑环境

在Postman中,环境变量允许你存储和管理特定于环境的值,如开发、测试或生产环境的URL、API密钥等。这有助于在不同的部署阶段中保持测试的一致性和效率。

创建环境

  1. 打开Postman,点击顶部菜单栏的“管理器”。
  2. 选择“环境”选项卡。
  3. 点击右上角的“新建”按钮,输入环境名称,例如“Development”。
  4. 点击“创建”以保存新环境。

编辑环境

  1. 在“环境”列表中,选择你想要编辑的环境。
  2. 点击“编辑”按钮,这将打开环境变量编辑器。
  3. 在编辑器中,你可以添加、修改或删除变量。
  4. 点击“保存”以应用更改。

环境变量的使用场景

环境变量在以下场景中特别有用:

  • API URL切换:在开发、测试和生产环境中,API的URL可能不同。使用环境变量可以轻松切换这些URL,而无需修改请求。
  • 认证信息管理:API密钥、令牌等敏感信息可以存储在环境变量中,以避免在请求中硬编码这些值。
  • 动态参数:如果你的请求需要动态参数,如用户ID或日期,环境变量可以提供这些值,使测试更加灵活。

在环境中存储变量

在Postman中,你可以在环境变量中存储各种类型的值,包括字符串、数字和JSON对象。以下是如何在环境中添加变量的步骤:

  1. 打开你想要编辑的环境。
  2. 点击“编辑”按钮。
  3. 在变量列表中,点击“添加变量”。
  4. 输入变量名称和值。
  5. 点击“保存”。

示例:添加环境变量

// 假设我们正在创建一个环境变量来存储API的URL
pm.environment.set("apiUrl","https://api.example.com/v1");

环境变量与全局变量的区别

在Postman中,环境变量和全局变量都可以用来存储值,但它们在使用范围和生命周期上有所不同:

  • 环境变量:特定于环境,当你在不同环境中切换时,这些变量的值也会改变。它们适用于需要在不同部署阶段中变化的值。
  • 全局变量:在整个Postman应用程序中可用,无论你处于哪个环境。它们适用于所有环境共享的值,如常量或默认设置。

示例:使用环境变量和全局变量

// 设置全局变量
pm.globals.set("globalVar","This is a global variable");// 使用环境变量let apiUrl = pm.environment.get("apiUrl");
console.log("API URL: "+ apiUrl);// 使用全局变量let globalVar = pm.globals.get("globalVar");
console.log("Global Variable: "+ globalVar);

通过以上步骤和示例,你可以有效地在Postman中管理环境变量,提高API测试的效率和安全性。

Postman: 脚本编写 - 预请求脚本与测试脚本

编写预请求脚本

预请求脚本是在Postman发送请求之前运行的脚本,可以用于设置请求的动态部分,如生成随机数、修改请求头或URL参数。这在测试需要动态数据的API时非常有用。

示例:生成随机数并设置为请求参数

// 生成一个随机数const randomNum = Math.floor(Math.random()*100)+1;// 设置生成的随机数为请求参数
pm.sendRequest({url: pm.environment.get("base_url")+"/api/endpoint?random="+ randomNum,method:'GET'});

在这个例子中,我们首先生成了一个介于1到100之间的随机数。然后,我们使用

pm.sendRequest

函数来发送一个GET请求,其中URL包含我们生成的随机数作为参数。这确保了每次请求都是唯一的,非常适合测试API对不同输入的响应。

编写测试脚本以验证变量

测试脚本用于在Postman中验证API响应。你可以使用这些脚本来检查响应状态码、响应体中的特定值,或者进行更复杂的验证,如JSON Schema验证。

示例:验证响应状态码和响应体中的变量

// 验证响应状态码
pm.test("Status code is 200",function(){
    pm.response.to.have.status(200);});// 从响应体中提取变量const responseJson = pm.response.json();const variableValue = responseJson.data.variable;// 验证变量值
pm.test("Variable value is correct",function(){
    pm.expect(variableValue).to.eql(pm.environment.get("expected_value"));});

在这个例子中,我们首先验证了响应状态码是否为200。然后,我们从响应体中提取了一个名为

variable

的值,并将其与环境变量

expected_value

进行比较,以确保API返回了预期的值。

使用Chalk函数进行测试结果的高亮显示

Chalk是一个流行的Node.js包,用于在控制台中为文本添加颜色。在Postman中,你可以使用Chalk来高亮显示测试脚本中的信息,使输出更易读。

示例:使用Chalk高亮显示测试结果

// 引入Chalk库const chalk =require('chalk');// 验证响应状态码
pm.test("Status code is 200",function(){
    pm.response.to.have.status(200);
    console.log(chalk.green("Status code is 200"));});// 从响应体中提取变量const responseJson = pm.response.json();const variableValue = responseJson.data.variable;// 验证变量值
pm.test("Variable value is correct",function(){
    pm.expect(variableValue).to.eql(pm.environment.get("expected_value"));
    console.log(chalk.green("Variable value is correct"));});

在这个例子中,我们使用了Chalk库来为控制台输出添加颜色。当测试通过时,我们使用

chalk.green

函数来输出绿色的文本,这在Postman的测试结果中提供了视觉上的确认,使测试结果更易于理解。


以上示例展示了如何在Postman中使用预请求脚本、测试脚本以及Chalk函数来管理变量和环境变量,进行API测试。通过这些脚本,你可以确保API在各种条件下都能正确响应,同时使测试结果更加直观。

变量与环境变量的高级应用

变量在集合中的应用

在Postman中,变量的使用可以极大地增强测试集合的灵活性和重用性。变量允许你在请求之间传递数据,或者根据前一个请求的结果动态地修改后续请求的参数。这在处理API测试中经常变化的数据时非常有用。

如何在集合中定义变量

在Postman的测试脚本中,你可以使用

pm.variables.set()

来定义一个变量,这个变量可以在整个集合中被其他请求使用。

// 测试脚本示例
pm.variables.set("token", pm.response.json().token);

在上面的代码中,我们从响应中提取了一个名为

token

的值,并将其存储为集合变量。这个

token

可以在后续的请求中被引用,例如:

// 使用集合变量const token = pm.variables.get("token");
pm.sendRequest({url: pm.environment.get("base_url")+"/protected-resource",method:"GET",header:{"Authorization":"Bearer "+ token
  }});

变量的生命周期

集合变量的生命周期是整个集合。这意味着一旦在一个请求中设置了一个变量,它将保持其值直到集合运行结束,或者在后续的请求中被重新设置。

使用环境变量进行环境切换

环境变量在Postman中用于存储和管理不同环境(如开发、测试、生产)的配置信息。这使得在不同的环境中运行相同的测试集合变得容易,而无需修改测试脚本中的任何代码。

如何设置环境变量

在Postman中,你可以通过“Manage Environments”选项来设置环境变量。例如,你可以为开发环境设置一个

base_url

变量,其值为

https://dev.example.com

,而对于生产环境,这个变量的值可以是

https://www.example.com

在测试脚本中引用环境变量

在测试脚本中,你可以使用

pm.environment.get()

函数来引用环境变量。

// 引用环境变量示例const baseUrl = pm.environment.get("base_url");
pm.sendRequest({url: baseUrl +"/api/v1/users",method:"GET"});

环境变量的管理

环境变量的管理包括在不同的环境中切换变量值,以及在测试脚本中正确地引用这些变量。这通常涉及到在Postman的环境设置中维护多个环境配置,并确保测试脚本能够根据当前环境正确地引用变量。

变量与环境变量在自动化测试中的作用

在自动化测试中,变量和环境变量的使用可以提高测试的效率和准确性。它们允许你:

  • 动态生成测试数据:使用变量来存储和重用测试数据,可以避免硬编码数据,使测试更加灵活。
  • 环境独立性:通过环境变量,你可以轻松地在不同的环境中运行相同的测试,而无需修改测试脚本。
  • 错误处理和调试:变量可以用来存储和检查API响应中的关键信息,帮助你诊断和调试测试中的问题。

示例:使用变量和环境变量进行自动化测试

假设我们正在测试一个API,该API需要一个

session_id

来验证用户。我们可以使用Postman的预请求脚本来生成这个

session_id

,并将其存储为变量。然后,在测试脚本中,我们可以引用这个变量和环境变量来构建请求。

// 预请求脚本生成session_idconst sessionId ="123456";// 假设这是从服务器返回的session_id
pm.variables.set("session_id", sessionId);// 测试脚本引用变量和环境变量const sessionId = pm.variables.get("session_id");const baseUrl = pm.environment.get("base_url");

pm.sendRequest({url: baseUrl +"/api/v1/protected-resource",method:"GET",header:{"Session-Id": sessionId
  }});

在这个例子中,我们首先在预请求脚本中生成并存储了

session_id

。然后,在测试脚本中,我们引用了这个变量以及环境变量

base_url

来构建请求。这样,我们就可以在不同的环境中运行相同的测试,同时使用动态生成的

session_id

来验证用户。

通过这种方式,变量和环境变量在Postman的自动化测试中扮演了关键角色,提高了测试的效率和准确性。

Postman: 脚本编写中变量与环境变量的管理

变量与环境变量的最佳使用实践

在Postman中,变量和环境变量是测试和开发API的强大工具。它们允许你存储和重用数据,使测试更加动态和高效。下面是一些最佳实践,帮助你更有效地管理这些变量:

1. 使用Pre-request脚本设置变量

// Pre-request脚本示例
pm.variables.set("timestamp",newDate().getTime());

在请求之前,你可以使用预请求脚本来设置变量。例如,上述代码将当前时间戳设置为变量

timestamp

。这在需要动态生成数据时非常有用。

2. 在Tests中使用和更新变量

// Tests脚本示例const responseJson = pm.response.json();
pm.environment.set("token", responseJson.token);

在测试脚本中,你可以访问和更新环境变量。例如,如果API返回一个token,你可以将其存储在环境变量中,以便后续请求使用。

3. 利用环境变量进行配置管理

环境变量可以用来存储API的URL、认证信息等,这样在不同的环境中(如开发、测试、生产)切换时,只需更改环境变量的值,而无需修改脚本。

// 使用环境变量的请求示例
pm.sendRequest({url: pm.environment.get("apiUrl")+"/users",method:"GET",header:{"Authorization":"Bearer "+ pm.environment.get("token")}},function(err, res){// 处理响应});

4. 全局变量与环境变量的区分

全局变量在整个Postman应用中都是可用的,而环境变量只在特定的环境中可用。合理使用两者,可以避免变量污染。

调试脚本中的变量问题

调试脚本中的变量问题时,确保变量的正确设置和使用是关键。以下是一些调试技巧:

1. 检查变量的值

在Postman的测试脚本中,使用

console.log

来检查变量的值。

// 检查变量值的脚本示例
console.log("当前的token值为: "+ pm.environment.get("token"));

2. 使用Postman的调试模式

Postman的调试模式可以帮助你逐行执行脚本,观察变量的变化。

3. 重置环境和全局变量

如果变量值不正确,尝试重置环境或全局变量,确保它们从预期的初始状态开始。

避免变量污染的策略

变量污染是指在不同的测试或环境中,变量值被意外覆盖,导致测试结果不准确。以下策略可帮助避免变量污染:

1. 使用不同的环境

为不同的测试场景创建不同的环境,每个环境有自己的变量集。

2. 限制变量的作用域

确保变量只在需要的范围内可用,避免在不必要的地方使用全局变量。

3. 清理变量

在测试结束时,清理不再需要的变量,防止它们影响后续的测试。

// 清理变量的脚本示例
pm.environment.unset("token");

通过遵循这些实践,你可以更有效地管理Postman中的变量和环境变量,提高API测试的准确性和效率。


本文转载自: https://blog.csdn.net/weixin_42749425/article/details/142348404
版权归原作者 kkchenjj 所有, 如有侵权,请联系我们删除。

“Postman:Postman脚本编写:变量与环境变量的管理”的评论:

还没有评论