Postman 正确使用姿势

前言:

请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i

简介:

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。

背景:

当我们使用Postman做接口测试时,不免某些接口请求前需要获取token参数,验证请求是否有效。

问题引申:当我们获取到token后需要手动添加到请求头里面,一旦token过期了,需要重新获取token,需要手动替换请求头中的token。周而复始麻烦的很!!!

解决思路:设置Postman中全局变量,将参数返回值token设置全局变量,便于其他接口调用

Test 简介

在 postman 中封装了我们常见的 断言(Tests),当然 Tests 除了可以作为断言,还可以当做后置处理器

  • 获取当前接口的响应,传递给下一个接口
  • 控制多个接口间的执行顺序

一、【登入接口】获取token

1.1 设置全局变量

设置全局参数,添加请求【登入接口】的请求参数

Postman 正确使用姿势

1.2 调用全局参数

Postman 正确使用姿势

二、【查询接口】并入token

2.1 【查询接口】token验证

Postman 正确使用姿势

2.2 【登录接口】中使用Tests语句自动添加环境变量

//把返回值解析成json字符串
var res = JSON.parse(responseBody)
//参数填充
postman.setEnvironmentVariable("authorization",res.value.token);
//简写
//pm.environment.set("authorization", res.value.token);

//自动设置值
//postman.setGlobalVariable("authorization",res.value.token)

Postman 正确使用姿势

发送请求运行后,再次查看【登入请求】,全局参数已自动添加token值

Postman 正确使用姿势

2.3 【查询接口】中引用参数值

引用参数值,实现每执行【登入接口】请求,完成token自动赋值替换

Postman 正确使用姿势

Tests 中常用方法

//1、设置环境变量
postman.setEnvironmentVariable("key", "value");
或
pm.environment.set("key", "value");

//2、设置全局变量
postman.setGlobalVariable("gv", "111111");
或
pm.globals.set("g", "2222");

//3、检查resonse body中是否包含某个string
tests["结果:Body matches string"] = responseBody.has("string_you_want_to_search");

或

pm.test("结果:Body is correct", function () {

    pm.response.to.have.body("response_body_string");

});
//4、验证Status code状态响应码是否是某个值
tests["Successful POST request"] = responseCode.code === 200 || responseCode.code === 202;

或

pm.test("Successful POST request", function () {

    pm.expect(pm.response.code).to.be.oneOf([200,202]);

});

Pre-request Script 简介

  • Pre-request Script是集合中请求发送之前需要执行的代码片段
  • 请求参数中包含一个随机数或者请求header中包括一个时间戳,或者你的请求参数需要加密

一、【登录接口】请求发起前处理

使用Pre-request Script语句对密码进行加密请求

var body_json = {
            "userCode" : "admin",
            "passwd" : "123456"
    }
pwd = body_json["passwd"]  // 获取passwd的值
var pwd = CryptoJS.MD5(pwd).toString()  // md5加密pwd变量
body_json["passwd"] = pwd  // 设置passwd为加密后的密码

console.log(body_json)

var body_str = JSON.stringify(body_json)    // converts objects to strings
pm.environment.set('request_body', body_str)  // 把处理后的body赋值给参数request_body,在body中输入{{request_body}}

样例:

Postman 正确使用姿势

Pre-request Script 中常用方法

// 清除全局变量
pm.globals.unset("variable_key");
// 清除环境变量
pm.environment.unset("variable_key");
// 获取全局变量
pm.globals.get("variable_key");
//获取一个变量
pm.variables.get("variable_key");
// 获取环境变量
pm.environment.get("variable_key");
//发送一个请求
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});
//设置环境变量
pm.globals.set("variable_key", "variable_value");

总结:

我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

参考链接参考链接

Original: https://www.cnblogs.com/bgyb/p/16158571.html
Author: 南国以南i
Title: Postman 正确使用姿势

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612096/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • C语言实现九九乘法口诀表

    儿子六岁了,奶奶在家里给孩子教乘法口诀, 昨天又把大学一年级C语言课程上要求实现的九九乘法口诀表用C语言实现了一遍,代码如下: #include int main() { int …

    Linux 2023年6月13日
    084
  • OpenSSL测试-随机数

    任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 使用OpenSSL定义一个私有函数 static int getRandom(char…

    Linux 2023年6月8日
    089
  • Spring事务(四)-事务隔离级别

    Spring @Transactional注解isolation属性 @Transactional注解通过isolation属性设置事务隔离级别。如下: @Transactiona…

    Linux 2023年6月6日
    070
  • 企业项目开发流程

    企业项目开发流程 商城 1.1 B2C 直销商城 商家与会员直接交易 ( Business To Customer ) 1.2 B2B 批发商城 商家与商家直接交易 1.3 B2B…

    Linux 2023年6月14日
    087
  • 最短的可通过编译的C语言程序

    要求:写一个最短的,能通过编译的C语言程序,但不要求能正确运行。 一般人首先想到的是除0。即 除0会引发SIGFPE信号(浮点异常)。 我们也可以删掉return,但是这样做的话编…

    Linux 2023年6月14日
    077
  • Docker存储卷

    Docker存储卷 1、COW机制 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。 如果运行中的容器修改了现有的一个已…

    Linux 2023年6月7日
    070
  • 正态分布

    用来计算连续变量的发生率,说的很抽象,简单说就是单独拿出来没什么太大用,但并不是说这个没什么用,相反这个太重要了,这玩意能让你看清世界的真相 先看个图,像这样的线性就是正太分布 正…

    Linux 2023年6月6日
    0103
  • 快速上手FastJSON

    作为一名后端开发而言肯定会接触数据,把数据提供给前端或者把数据存储起来,目前比较火热的传输格式是json,给前端传json是再常见不过啦,甚至是往db里面直接存入json。 在ja…

    Linux 2023年6月14日
    075
  • CentOS——Redis远程连接可视化工具Rdis Desktop Manage

    前排提示 Centos没有安装Redis的可参考 https://www.cnblogs.com/tianhengblogs/p/15265028.html 一。 修改redis….

    Linux 2023年5月28日
    0153
  • SSH加密原理

    1、SSH初次交换公钥 客户端发起链接请求 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥) 客户端生成密钥对 客户端用自己的公钥异或会话ID,计算出一个值Re…

    Linux 2023年6月7日
    081
  • aspx.designer.cs没有自动生成代码(没有自动注册)

    遇到这个问题的最大可能是:aspx页面存在bug。 比如说我的主页是从项目里的别的页面复制过来的,但是少复制了一些引用,页面就存在bug,导致aspx.designer.cs没有自…

    Linux 2023年6月7日
    081
  • 2021年3月-第01阶段-Linux基础-Linux系统概念-Linux命令

    Linux系统基本概念 图形界面: Ctrl+Shift +号 //调整命令终端变大 Ctrl – 号 //调整命令终端变小 命令终端: ~ 家目录:用户的私有场所,其…

    Linux 2023年6月8日
    090
  • K8S部署之VMWare网络拓扑踩坑

    知乎上最近发现一篇好文 图解K8S(01):基于Ubuntu 20.04部署1.23版K8S集群,想着之前 K8S 部署一直不成功,那么就照着这篇文章中说的试一试。结果在实验时遇到…

    Linux 2023年6月13日
    080
  • Nginx几种负载均衡方式介绍

    Nginx几种负载均衡方式介绍 前言 负载均衡就是Nginx将请求分摊到不同的服务器中,保证服务的可用性,缓解服务压力,保证服务的响应速度,即使某一个应用服务不可用,也可以保证业务…

    Linux 2023年6月6日
    0104
  • WPF 开源二维绘画小工具 GeometryToolDemo 项目

    这是一个演示 WPF 进行二维绘画的小工具 Demo 项目,基于 MIT 协议在 GitHub 上完全开源 这是一个演示 WPF 进行二维绘画的小工具 Demo 项目,基于 MIT…

    Linux 2023年6月6日
    098
  • webshell查杀的方法

    从您反馈的情况看,是您的网站被植入了webshel后门文件导致的。您可以先对当前的服务器做下快照备份,然后将您的网站代码拷贝到本地进行下webshell查杀:https://www…

    Linux 2023年5月28日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球