Postman之脚本介绍

前言

本文章的内容抄录自郭宏志老师在CSDN发布的课程<<Postman接口测试>>, 由于这个视频没有提供课程笔记, 所以很尴尬的只能自己抄下来作为笔记使用. 本文的内容截图和代码都是自己敲上去的, 但是定义解释很多是抄下来的。
视频链接: https://edu.csdn.net/course/play/26898/350102.

脚本简介

Postman包含一个机遇Node.js的强大运行时, 该运行时可让你想请求和集合中添加动态行为. 这样, 你就可以编写测试套件, 构建可以包含动态参数的请求, 在请求之间传递数据等等。 JavaScript代码可以在2个事件期间执行:

  1. 在将请求发送到服务器之前, 作为pre-request script选项卡下的预请求脚本.
  2. 收到响应后, 作为test script选项卡下的测试脚本

你可以将预请求和测试脚本添加到集合, 文件夹, 集合中的请求或未保存到集合的请求.

举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在预请求脚本中输入

// 在预请求中设置全局变量
pm.globals.set("variable_key", "variable_value");

// 输出日志
console.log("预请求脚本")

在测试脚本中输入

// 返回状态码200
pm.test("状态码:200", function () {
    pm.response.to.have.status(200);
});

// 输出日志
console.log("测试脚本")

运行之后,会返回测试结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

脚本的执行顺序

在Postman中, 单个请求的脚本执行顺序如下所示:

  • 与请求关联的预请求脚本将在发送请求之前执行
  • 发送请求后, 将执行与请求关联的测试脚本
    在这里插入图片描述

对于集合中的每个请求,脚本中奖按一下顺序执行:
在这里插入图片描述

示例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试脚本

使用Postman, 你可以使用JavaScript为每个请求编写测试脚本。

编写Postman测试脚本

Postman测试实质上是在发送请求后执行的JavaScript代码。

示例代码:

// 检查当前的状态码
pm.test("返回的状态码应为200", function(){
    pm.response.to.hava.status(200);
});

// 检查检查环境变量的值
pm.test("环境变量env的值应为production", function(){
    pm.expect(pm.environment.get("env").to.equal("produciton"));
});


// 该方法内的3个判断都需要为真才算测试通过
pm.test("检查响应内容", function(){
    pm.response.to.not.be.error;  // 响应没有错误
    pm.response.to.have.jsonBody(""), // jsonBody为空
    pm.response.to.not.have.jsonBody("error");  //jsonBody没有错误
})

代码片段

尽管编写测试时要记住的事情很多, 但Postman可以通过编辑器旁边列出常用的代码片段来简化此过程。

你可以选择要添加的代码片段, 并在测试编辑器中填充适当的代码。 这是快速构建测试用例的好方法。
在这里插入图片描述

常用代码片段翻译

代码片段中文描述
Get a global variable得到一个全局变量
Get a variable得到一个变量
Set an environment variable设置一个环境变量
Set a global variable设置一个全局变量
Clear an environment variable清空一个环境变量
Clear a global variable清空一个全局变量
send a request发送一个请求
status code: Code is 200状态码是200
Response body : Contains string响应的body包含某一个字符串
Response body: JSON value check响应的body是JSON格式的
Response body: is equal to a string判断某一个body是某一个字符串
Response headers: Content-Type header check响应头信息的Content-Type必须出现
Response time is less than 200ms响应的时间小于200毫秒
Status code: Successful POST requestPOST成功的状态码
Status code: Code name has string状态码的名称
Response body: Convert XML body to a JSON object将响应的body从xml格式转换为JSON格式
Use Tiny Validator for JSON data验证JSON数据

查看结果

结果显示在响应查看器下的Test选项卡中。 标签页眉显示了通过了多少次测试, 并在此列出了测试结果。 如果测试评估为真,则测试通过。
在这里插入图片描述

分支和循环

运行集合时, 你可以使用postman.setNextRequest(“request_name”); 在Postman中的API请求之间进行分支和循环.

设置下一个要执行的请求

集合中如果有A、B、C三个请求, 正常情况下,这三个请求是按照顺序运行下去,但是我想运行完A请求之后跳过B运行C请求,这里就可以用到postman.setNextRequest(“request_name”);
在这里插入图片描述
在这里插入图片描述

循环当前请求

当前运行的请求名称提供给setNextRequest可以让Postman连续运行当前请求。
但是要注意,这个方式是一个死循环,可以通过在下面加一句 *postman.setNextRequest(null)*停止循环。
在这里插入图片描述
在这里插入图片描述

  • 关于分支和循环,Postman本身是支持JavaScript语法的,因此也可以用if和for来做分支条件和循环。
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值