第三节:Postman常用技巧(全局/环境变量、常用脚本代码、关联案例、断言、参数化)

一.  全局变量和环境变量

1.  全局变量

    在 整个postman中都可以使用的变量。不需要 单独创建环境。

2.  环境变量

    在 特定的环境下(或者作用域),才能使用的变量。需要给此变量创建单独的环境。使用步骤如下:

(1). 创建环境

(2). 在对应的环境内添加或修改变量

(3). 选择需要生效的环境

   

3. 变量的设置和使用 

   无论是全局变量还是环境变量,都可以通过 {{}} 符号调用,如下:

设置全局变量和环境变量的代码如下:

// 2.1 使用 全局变量
pm.globals.set("全局变量key", 全局变量值)
// 2.2 使用 环境变量
pm.environment.set("环境变量key", 环境变量值)

 

二.  常用脚本代码

1. 说明

   这里实际上都是JavaScript代码,然后配合使用postman本身内置的一些变量和方法,一些常见的代码已经内置了,可以通过点击直接查看。

2. 常用代码

 (1).  postman对象:  pm

 (2).  获取接口返回的数据,转为json格式:   let jsonData=pm.response.json();

 (3).  全局变量的设置、获取、删除:    

pm.globals.set("variable_key", "variable_value");
pm.globals.get("variable_key");
pm.globals.unset("variable_key");

  (4). 环境变量的设置、获取、删除:    

pm.environment.set("variable_key", "variable_value");
pm.environment.get("variable_key");
pm.environment.unset("variable_key");

 

三. 关联案例

1. 背景

    当接口和接口之间,有依赖关系时,需要借助 postman 关联技术,来实现。如: 登录接口 返回的 令牌数据(token),需要被其它接口依赖使用。思路如下:

2. 实操

(1). 登录接口中的代码:

(2). 其它接口中的代码:

    直接使用 {{token}} 即可

 

四.  断言

1.  什么是断言?

  让 Postman工具 代替 人工 自动判断 预期结果 和 实际结果 是否一致

(1). 断言代码 书写在 Tests 标签页中。

(2). 查看断言结果 Test Results 标签页

另外常用的断言代码postman中都内置了:

2. 断言响应状态吗

pm.test("测试状态码是否为200", function () {
    pm.response.to.have.status(200);
});

3. 断言字符串

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

4. 断言JSON

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

上述的 .value ,可以改为返回数据中的key

 

 

 

五. 参数化

1. 简介

(1). 什么是参数化 ?

    将 测试数据,组织到 数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。

(2). 应用场景

   一般在测试同一个接口的不同 测试点时,只有测试数据不同。考虑使用 参数化。

2. 数据文件

(1). CSV

优点:数据组织格式简单

缺点:

   1. 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串

   2. 不能存储复杂数据类型(元组、列表、字典)。

   3. 不能实现 参数测试。

应用场景:数据量较大,数据组织格式简单。

如果编码不正确,可以通过下面的方式调整一下:

(2). JSON

优点:

   1. 可以测试 bool类型

   2. 能使用 复杂数据类型

   3. 可以实现 参数测试。

缺点:相同数据量,json文件要远大于 csv 文件。

应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!

3. 实操

     以一个登录接口为例,采用参数化的形式校验接口返回结果和预期结果是否相同。接口的返回格式如下图,这里就是重点判断 数据文件中的 myResult字段 和  接口返回的msg字段  是否相同。

(1). 配置基本的URL 和 参数, 上述数据文件(cvs 或 json),账号和密码的字段名称分别为: myAccount、myPwd,所以这里参数的位置需要通过 {{myAccount}}、{{myPwd}} 的方式传入。

(2).  编写测试脚本, 注意:通过data对象获取数据文件中的参数,比如 data.myResult 

(3). 导入数据文件:  点击根目录 → 点击run按钮

进入Runner页面,选择需要测试的接口 → 选择数据文件

查看数据文件 → 进行测试

测试结果如下:

另外点击菜单 view - show postman console,可以跟踪请求详情。

 

 

 

 

 

 

 

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 
posted @ 2023-02-28 17:10  Yaopengfei  阅读(657)  评论(2编辑  收藏  举报