Postman之pre-requests与test断言

一、pre-requests前置数据处理

1. postman强大的脚本功能

  • Pre-request:请求前进行相应参数的设置(或进行前置数据处理)
  • Test:对请求后的Response结果进行断言(主要是响应status、响应Header及响应Body)
    在这里插入图片描述

2. 脚本的执行顺序

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

  1. 与请求关联的预请求脚本(Pre-request Script)将在发送请求之前执行
  2. 发送请求
  3. 发送请求后,将执行与请求关联的测试(test)脚本

3. pre-requests的使用

3.1 对环境变量的操作

  • 可以选择右边“SNIPPETS”下面的一些操作进行使用,这些操作仅仅只是一部分操作,可以点击片段上面的红框处进行学习
    在这里插入图片描述
  • 设置好环境变量后需要进行使用
    在这里插入图片描述

3.2 发送get与post请求

  • 此处通过pre-request script中添加脚本,实现发送请求的功能
    在这里插入图片描述

pre-request script功能强大,具体可以点击图二深度挖掘

二、test断言

1. 概述

  • 断言,是一个完整测试用例所不可或缺的一部分,没有断言的测试用例仅仅是测试步骤。
  • Postman的Test模块就是实现请求断言功能的,基于Node.js,可以确保您的API能够按预期运行,确定服务之间的集成可靠运行,并验证新开发未破坏任何现有功能。可以将断言添加到单个请求或集合中。
  • postman提供了很多集成的代码片段,我们只需要点击,然后进行简单的修改,就可以适用于请求的断言了。
  • Test中的断言脚本在收到响应后执行,当您单击Send时,当响应数据从API返回时,Postman将运行您的测试脚本。
  • 要执行断言脚本以验证请求返回的数据,使用pm.test函数定义断言,他提供一个名称和函数,该函数返回一个布尔值(true或false)来指示测试是通过还是失败。并结合使用pm.response对象和pm.expect来测试响应详细信息。
    在这里插入图片描述

2. 断言方法的使用

  1. 响应状态码断言:验证响应结果的状态码是否为200
// 主要是实现响应结果正确性验证的模块(断言正文(字符串))
pm.test("验证相应状态码是否为200?",function(){
    pm.response.to.have.status(200);
});
  1. 响应正文内容断言:验证响应正文中是否存在指定的字符串
// 验证响应的正文是否包括指定字符串
pm.test("验证响应的正文是否包括指定字符串YT4765083181234",function(){
    pm.expect(pm.response.text()).to.include("成都")
});
  1. 响应正文内容断言:验证响应的Json格式正文中指定的字段数据是否符合预期
// 验证响应的正文的json格式中指定的字段的值是否一致
pm.test("Your test name", function () {
    // 将响应的正文转化为json格式
    // jsondata就是json数据
    var jsonData = pm.response.json();
    // console.log(jsonData.data[0].context)
    // jsonData.com拿到的是实际的结果
    pm.expect(jsonData.com).to.eql("yuantong");
});
  1. 响应头部断言:验证响应头部信息中是否包括指定的字段
// 检查相应的content-type是否存在
pm.test("响应头中是否存在Content-Type字段", function () {
    pm.response.to.have.header("Content-Type");
});
  1. 响应时间断言:验证响应结果返回的时间是否在指定的范围内
// 响应时间断言
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
  1. 状态码是其中一个就表示成功
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});
  1. 验证状态信息是否一致
pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK");
});

3. 断言结果的查看

设置好test下的断言之后,点击send按钮发送请求,在response区域的Test results中可以查看断言是否成功

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值