Postman的数据驱动,也可以叫做参数化。

1、什么是数据驱动?

我们在执行测试用例的过程,本质上是执行的不同数据。因此我们的测试是输入不同数据,并执行查看接口返回结果的过程。

所以我们可以在计算机中,使用预先设定好的数据文件,来批量执行测试用例,实现覆盖测试点。

这个过程就叫做数据驱动。

2、测试集说明

为了更方便地管理接口请求的执行,可以通过Postman测试集(collection)来完成测试的操作,每一个测试请求可以看成一个测试用例(testcase),Collections能够一次管理多个测试用例来执行。

通过save,能够将请求保存到Collections中使用。

3、创建请求与准备数据文件

(1)新增学院结果文档内容如下

学院新增:

1) 请求方法:POST
2) 请求地址:http://127.0.0.1:8000/api/departments/
3) 请求JOSN报文:参数为json格式的请求报文
4) 调用传入的json串如下(可新增多条,之间用,隔开):
{
"data": [
{
"dep_id": "T01",
"dep_name": "Test学院",
"master_name": "Test-Master",
"slogan": "Here is Slogan"
}
]
}

新增成功返回报文:

{
"already_exist": {
"results": [],
"count": 0
},
"create_success": {
"count": 1,
"results": [
{
"dep_id": "T02",
"dep_name": "Java学院",
"master_name": "Java-Master",
"slogan": "java"
}
]
}
}

新增失败:id已存在所返回的报文

{
"already_exist": {
"count": 1,
"results": [
{
"dep_id": "T01",
"dep_name": "Test学院",
"master_name": "Test-Master",
"slogan": "Here is Slogan"
}
]
},
"create_success": {
"results": [],
"count": 0
}
}

新增失败:json数据格式错误

{
"status_code": 400,
"detail": "请求体参数格式错误。"
}

(2)编写数据文件

因为我们批量执行新增学院接口,通过上面接口文档可以得到提交数据的格式与内容,如下:

{
"data": [
{
"dep_id": "T01",
"dep_name": "Test学院",
"master_name": "Test-Master",
"slogan": "Here is Slogan"
}
]
}

创建一个Excel文件,编写如下内容:

dep_id dep_name master_name slogan
100 Tester_100 Master_100 一个口号
101 Tester_101 Master_101 一个口号
102 Tester_102 Master_102 一个口号
103 Tester_103 Master_103 一个口号
104 Tester_104 Master_104 一个口号
105 Tester_105 Master_105 一个口号
106 Tester_106 Master_106 一个口号
107 Tester_107 Master_107 一个口号
108 Tester_108 Master_108 一个口号
109 Tester_109 Master_109 一个口号
110 Tester_110 Master_110 一个口号

说明:

  • 把Excel文件要保存为.cvs文件。(弹出的提示一律选择是)
  • 要把保存后的文件用Notepad++文档工具打开,然后转为UTF-8编码,并保存。否则中文存入数据库会乱码。

    因为Postman对数据文件,只支持UTF-8的编码格式。

  • 如果是以key-value表单的形式提交,也是一样的一个key对应Excel中的一列数据。(请求中需要一个变量,就再Excel中定义一列数据)
  • 在Postman读取文件的时候,会把第一行自动忽略掉。

说明:

  • Postman只支持.csv.json格式的数据文件。
  • 数据多推荐使用 .csv格式的数据文件进行数据驱动。
  • 数据少推荐使用.json格式的数据文件进行数据驱动,不容易出错。

(3)在Postman中创建请求

根据文档,创建新增学院请求如下图:

注意:

{{ }}中的字段,一定要和数据文件中的字段对应上。

然后编写接口断言:

提示:

请求创建完成后要进行保存。

如果请求有修改,保存后,再重新Collection Runner界面。

4、实现Postman中的数据驱动

当需要进行数据驱动运行多次Postman脚本时,可以通过.csv或者.json格式的数据文件,对接口测试数据进行管理,以方便用例的执行。

步骤1:进入Collection Runner界面

进入Collection测试集的Collection Runner界面。

点击Collection测试集名称后边的箭头,点击Run

步骤2:选择需要执行的接口

Collection Runner界面中选择需要执行的接口。

我们只需要执行批量新增学院请求,如下图:

按钮说明:

  • Deselect All:取消全选(默认全选)。
  • Select All:全选。
  • Reset:重置(恢复默认全选)。

步骤3:配置Collection Runner

配置Collection Runner执行选择。

  1. 选择Collection测试集。
  2. Environment:选择环境变量。
  3. Iterations:接口迭代次数,这个不用填写,选择数据文件后会自动识别(会自动忽略第一行标题)。

    如果只执行测试集,不进行数据驱动,自己按需求填写。
  4. Delay:每次执行的间隔。
  5. Data:选择.csv数据文件。(可以添加测试数据,在tests中用data参数访问)
    // data 表示数据文件的对象
    // data.cityname表示获取数据文件中的cityname属性值
    pm.test("验证返回中city的值是"+data.cityname, function () {
    var jsonData = pm.response.json(); // 获取返回值所有数据
    pm.expect(jsonData.city).to.eql(data.cityname); // 断言返回值中具体字段的值
    }); // 这种取值方式要重点记住
  6. Save responses:保存响应。

    允许记录请求的响应头和正文,方便您查看。

    这可能会收集较多的数据,从而影响测试集运行的性能。
  7. Keep variable values:是否保留测试集执行过程中对环境变量的修改。(够不勾选都可以)
  8. Run collection without using stored cookies:在不使用存储的cookie的情况下运行测试集。
  9. Save cookies after collection run:测试集运行后保存cookie。

    更新此会话中存储的cookie,并将其保存到您的cookie管理器中。

    (以上四项默认即可)
  10. Run ***:运行已选择collection测试集中的接口。

配置完如下图:

重点提示:Preview能够查看数据文件中内容预览,可以查看文件读取内容是否有误。

步骤4:执行测试

执行并查看结果。

说明:

(1)顶部栏:

(2)测试结果部分:

测试集Run完成后:

  • 成功多少个断言。
  • 失败多少歌断言。
  • 测试集的名称。
  • 测试集选择的环境变量。

执行完成PASSED和FAILED的总和,等于每个接口断言个数×执行次数。

(3)工具栏:

  • Run Summary:查看运行摘要(概况)。

    如下图:

  • Export Results:导出测试集执行结果,.json文件的形式。
  • Retry:重新执行一次测试集。
  • New:新建一个Collection Runner界面,其实也就是返回了Collection Runner界面。

(4)请求列表部分:

说明:

  • 我们可以看到每一个请求名称、URL、执行的响应码、使用时间、所用数据,还有该请求所执行的断言。
  • 左侧栏可以点击切换,只查看成功的断言、只查看失败的断言和全部显示。
  • 右侧栏我们可以直接选择查看第几次发送的请求。
  • 点击请求的名称,我们也可以看到该请求的详细数据,如下图:

(5)底部栏:

Console:控制台,可以查看每个请求的运行日志和数据信息。

可以查看请求头、请求体、响应头、相应体等数据。

如果请求报错,也可以查看到错误信息。

以上就是在Postman中数据驱动的使用过程。(json格式的数据文件使用同理)

实际上面是讲了两部分内容,

  • 一部分是Collection测试集的执行,也就是Collection Runner
  • 还有一个就是Postman中数据驱动的使用。

5、补充: json格式数据文件说明

[
{
"userName":"张三",
"passWord":"123456",
"sex":"男",
"age":66
},
{
"userName":"李四",
"passWord":"123456",
"sex":"男",
"age":88
},
{
"userName":"王五",
"passWord":"123456",
"sex":"女",
"age":99
}
]

提示:外面必须是[],每一组数据使用 {} 进行封装,中间使用逗号进行分隔。

6、补充:数据文件在预置脚本中的使用

(1).csv文件

Pre-request Script编写如下代码:

// 在Pre-request Script和tests中用data代表访问参数
// 获取参数化文件中的dep_name字段的值
var dep_name = data.dep_name // 将获取到的 dep_name 设置为环境变量
pm.environment.set("dep_name", dep_name); // 调试
console.log(pm.environment.get("dep_name"));

(2).json文件

Pre-request Script编写如下代码:

// 在Pre-request Script和tests中用data代表访问参数
// 获取参数化文件中的userName字段的值
var userName = data.userName // 将获取到的 userName 设置为环境变量
pm.environment.set("userName", userName); // 调试
console.log(pm.environment.get("userName"));

参考:https://zhuanlan.zhihu.com/p/150292738

『政善治』Postman工具 — 12、Postman中实现数据驱动的更多相关文章

  1. 『政善治』Postman工具 — 1、Postman介绍与安装

    目录 一.Postman介绍 二.Postman下载与安装 1.Postman下载 2.Postman安装 3.为什么要注册Postman账号 一.Postman介绍 Postman是一款非常流行的H ...

  2. 『政善治』Postman工具 — 2、Postman主界面详细介绍

    目录 1.Postman菜单栏 (1)File 菜单 (2)Edit 菜单 (3)View 菜单 (4)Help 菜单 2.Postman工具栏 3.Postman工具栏中的系统设置 4.Postma ...

  3. 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)

    目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...

  4. 『政善治』Postman工具 — 8、Postman中Pre-request Script的使用

    目录 1.Pre-request Script介绍 2.常用SNIPPETS(片段)说明 (1)获取变量脚本: (2)设置变量脚本: (3)清空变量脚本: (4)Send a request代码片段 ...

  5. 『政善治』Postman工具 — 10、Postman中对Cookie的操作

    目录 1.往常的Cookie处理方式 2.Postman中的Cookie管理机制 3.自定义Cookie管理内容 在接口测试中,某些接口的调用,需要带入已有Cookie,比如有些接口需要登陆后才能访问 ...

  6. 『政善治』Postman工具 — 13、Postman接口测试综合练习

    目录 (一)项目接口文档 1.鉴权接口 2.注册接口 3.登录接口 4.用户信息接口 5.注销接口 (二)网站上手动验证 (三)Postman测试实现 1.准备工作 (1)创建一个Collection ...

  7. 『政善治』Postman工具 — 14、NewMan工具的使用详解

    目录 1.NewMan工具的介绍 2.NewMan的安装 (1)安装 (2)验证NewMan环境: (3)NewMan卸载命令 3.NewMan执行Postman测试集 (1)导出collection ...

  8. 『政善治』Postman工具 — 4、HTTP请求基础组成部分介绍

    目录 1.Method 2.URL 3.Headers 4.body 一般来说,所有的HTTP Request都有最基础的4个部分组成:URL. Method. Headers和body. 1.Met ...

  9. 『政善治』Postman工具 — 9、在Postman中使用断言

    目录 1.Tests的介绍 2.常用SNIPPETS(片段)说明 (1)常用变量相关 (2)状态码相关 (3)响应结果断言: (4)Header : (5)响应速度: 3.示例 (1)响应码断言 (2 ...

随机推荐

  1. Ubuntu18.04安装MySQL(未设置密码或忘记密码)

    一 安装MySQL sudo apt-get update sudo apt-get install mysql-server 二 密码问题 1 安装时提示设置密码 这种情况没什么问题,通过已下命令登 ...

  2. 【linux】驱动-6-总线-设备-驱动

    目录 前言 6. 总线-设备-驱动 6.1 概念 6.2 工作原理 6.3 总线 6.3.1 总线介绍 6.3.2 注册总线 6.4 设备 6.4.1 设备介绍 6.4.2 设备注册.注销 6.5 驱 ...

  3. 手机浏览器通过Scheme跳转APP,兼容各种手机浏览器

    一个比较完整的产品线,必定有APP和网站,另外还有微信公众号网页和小程序.那么有一个比较常见的需求就是在手机浏览器内打开APP,实现起来也比较简单,只要APP配置的有URLScheme即可. 但是因为 ...

  4. CSS 常用样式 – 背景属性

    一.背景颜色 background-color 属性名:background-color 作用:在盒子区域添加背景颜色的修饰 加载区域:在 border 及以内加载背景颜色 属性值:颜色名.颜色值 & ...

  5. shell 使用 cat 配合 EOF 创建文件并写入多行内容

    之前折腾 GtiHub Actions 想实现提交 issue 后将 issue 的内容生成一个 Markdown 文件提交到仓库,从而实现自动发布到 GitHub Pages 的目的.倒是有一些现成 ...

  6. 在Android、iOS、Web多平台使用AppGallery Connect性能管理服务

    性能管理(App Performance Management,简称APM)是华为应用市场AppGallery Connect(简称AGC)质量系列服务中的其中一项,可以提供分钟级应用性能监控能力,支 ...

  7. 关于nacos在windows系统启动时闪退的问题

    nacos可以用来作为springcloud的配置中心使用,但在windows系统下使用的时候需要注意. nacos下载后解压,可以直接点击文件bin目录下的  startup.cmd  就可以启动. ...

  8. 基于MATLAB的手写公式识别(转折)

    2021-03-29 21:11:00 很难说自己是不是上当受骗了,老师明明说利用MATLAB进行手写体(记得是手写体,再不济印刷体)的识别是轻而易举的. 平时我也十分喜欢MATLAB这一操作系统,认 ...

  9. 488. Zuma Game

    Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B), gre ...

  10. 12- winmerge讲解

    WinMerge是一款运行于Windows系统下的免费开源的文件比较/合并的工具,使用它可以非常方便的比较多个文档内容设置是文件夹与文件夹之间的差异.适合程序员或者经常撰写文稿的朋友使用.