Postman的高级使用,傻瓜式学习【上】

news2024/11/15 13:51:11

目录

前言

1、小白使用Postman是不是这样的?

2、管理测试用例

2.1、创建用例集collections

3、用例集的导出导入

4、再次认识Postman

​编辑

5、Authrization授权

6、Pre-request Script 前置脚本

7、Tests 断言

Postman中常用的断言:

1)断言响应状态码:Status code: Code is 200

2)断言响应体是否包含某个字符串:Response body: Contains string

3)断言响应体是否等于某个字符串(对象):Response body: Is equal to a string

4)断言JSON数据:Response body: JSON value check

 5)断言响应头:Response headers: Content-Type header check


前言

        Postman的安装、注册、登录我在这里就不啰嗦了,小伙伴们可以自行查找资料~

        对URL不熟悉的伙伴,可以先看这篇文章:http://t.csdnimg.cn/ANc4x,熟悉一下,再学习Postman的使用~

1、小白使用Postman是不是这样的?

        很多的小白,对Postman的使用都只停用在如下步骤:

举例:

上述都是初级使用,下面我们来学习Postman更高级的用法:


2、管理测试用例

2.1、创建用例集collections

  • 1、给项目建一个文件夹,意思就是该项目的接口用例都写在这个下面: 

  • 2、给项目中每个模块建一个文件夹,就是对项目下不同模块的接口进行一个分配:

例如,我们这是一个用户的登录模块:

  • 3、在指定文件下,创建一个请求:

例如,我们准备要写一个登录成功的接口用例测试:

取名:


3、用例集的导出导入

  • 我们先来导出:

        注意:导出用例集时,蓝色方框的三个点是总的用例集后面的,不是请求后面的也不是模块文件夹后面的~

        点击后:

上述的文件夹的名字,只能修改BlogSystem这个不分,后面的一长串都不可以修改~

  • 导入操作:

我们可以先把刚才Postman中的用例集删除掉再进行下面的操作:

导入成功:


4、再次认识Postman

说明:

  • Params:参数。指的就是url后面的参数,所以我们可以在在Params中写,也可以直接在URL后面写,都可以~
  • Authrization:授权。这里后面会有详细说明~
  • Headers:这个就是请求的请求头部分了~
  • Body:这个就是请求的请求体部分~
  • Pre-request Script:这个是Postman的请求前置脚本。具体后面会有详细说明~
  • Tests:Postman的断言。后面会具体介绍~
  • Settings:设置相关,这个就没什么好说的~

5、Authrization授权

来看如何设置:

这里只是一个简单的使用举例,更多的可以看这篇文章:

举例1,使用Bearer Token:

举例2,使用Bearer Auth:

        

        上述两个例子,其实都差不多,都是使用Token来实现鉴权,也就是检验用户的 身份信息是否是已登录状态~

         这里根据你自己的项目来定,例如现在大部分的项目都是使用Token而不是cookie和Session。

举例1的说明:

        如果是使用Token的话,这里你把Token的那串字符串放在这里即可,我们知道,Token一般是一个字符串,登录后在浏览器查看:

        这里是我登录我的网站(自己做的)后,存储的令牌在这里~ 这里我其实是采用最简单的处理方式来做的,过多的解释,我在这里就不说了【我这两天就会出一篇,站在开发者角度上,来处理这个Token的问题】,在这里大家就只需要理解Authorization是key,对应的value是该用户的令牌,以字符串形式呈现,格式为Bearer + “ ” + 唯一标识的字符串。大家在浏览器上可以把这个后面这个value字符串复制下来,不要前面的Bearer和空格,粘贴在:

        为什么不要前面的Bearer和空格?这个数据最后去哪儿?

        因为在Authorization中的信息,会被自动拼接到header中,格式为:"Bearer" + 一个空格 + 刚才的字符串

我们抓包看看:

 

举例2的说明:

        

        这里的数据同样是"Bearer" + 一个空格 + 字符串。这个字符串是哪儿的?是根据你输入的这个用户名和密码以username:password的形式转为Base_64的字符串。能不能使用这个方法来获取令牌,要看你的项目后端是如何实现的~ 


6、Pre-request Script 前置脚本

什么是前置脚本:

        在Postman中,Pre-request Script 前置脚本就是指,在你按下send按钮后,第一时间被执行的代码,为前置脚本;使用JS编写~

为什么需要这个前置脚本?

        我在这里举一个特殊情况的例子:有一个接口,要求输入的时间戳的标准值不能超过标准时间的5分钟,否则给接口不能被调用~

        此时如果我们直接在请求头或请求体中写死这个时间戳,那随着时间的推移,这个接口测试用例就会出错。此时就需要我们写一个前置脚本,每次在Postman真的向服务器发送请求之前都会去动态的过去时间戳,这个接口用例就不会再出错了~

        这里也有Postman认为我们可能会常用的代码,如果需要直接点击,就可以生成代码,你根据自己的需求修改即可~

举例:


代码解读,我们继续看断言,断言中会有代码解读,看了后,这个代码什么意思就很好理解了~ 

7、Tests 断言

Postman中的断言:

        Postman断言也是使用JS来编写的,目的就是帮助我们来判断预期结果与实际结果是否一致~

Postman中常用的断言:

1)断言响应状态码:Status code: Code is 200

pm.test("Status code is 200", function () {

    pm.response.to.have.status(200);

});

代码解读:

  • pm:表示Postman的一个实例
  • test():是Postman实例的一个方法,该方法中有两个参数:第一个参数为断言成功后给出的文字提示,这个提示可以根据自己的需求随意更改;第二个参数是一个匿名函数,这个匿名函数大致意思(根据英文猜测便可知)就是Postman实例的响应结果中应该包含状态码200

举例:

成功:

失败:

2)断言响应体是否包含某个字符串:Response body: Contains string

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

代码解读:

  • 外观和上一个断言差不多哈,就不说了
  • 匿名函数中大致意思:Postman的实例pm,期望 响应文本的值,包含xxx字符串

例:

3)断言响应体是否等于某个字符串(对象):Response body: Is equal to a string

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

代码解读:

  • 外观和上一个断言差不多哈,就不说了
  • 匿名函数中大致意思:Postman的实例pm,期望 响应 中应该有响应体xxx

例:

4)断言JSON数据:Response body: JSON value check

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

代码解读:

  • 外观和上一个断言差不多哈,就不说了
  • 匿名函数中大致意思:第一步先是获取响应的JSON格式的结果,第二步是Postman的实例pm,期望 JSON格式的响应 中 的value对应的值 应该等于xxx

一个tips:

例:

 5)断言响应头:Response headers: Content-Type header check

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

代码解读:

  • 外观和上一个断言差不多哈,就不说了
  • 匿名函数中大致意思:在响应中,响应头是否包含Content-Type    或者    断言响应头中指定key的value是否正确

例1:响应头是否包含Content-Type :

例2:响应头中指定的key对应的value是否正确:


好啦,我们今天先了解到这里,后面持续更新~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电源控制系统架构(PCSA)背景和简介

安全之安全(security)博客目录导读 目录 一、PCSA背景 二、PCSA简介 三、PCSA范围和限制 电源控制系统架构规范描述了一种基于Arm组件的SoC电源控制系统架构的方法。它定义了电源控制系统架构(PCSA)的V2.1版本。 由于Arm组件自1.0版本以来的发展,该版本包含了重…

WAS如何设置日志大小和数量

WAS如何设置日志大小和数量 注意: 本经验使用的版本为WebSphere Application Server 7.0.0.25 在IE中输入控制台地址,然后点击【继续浏览此网站(不推荐)】选项 ​​​ 输入控制台的用户名和密码,点击【登陆】&#x…

Linux文件系统、文件I/O和动静态库

文章目录 一、Linux文件系统1.存储设备文件系统2.伪文件系统a).procfs文件系统b).sysfs文件系统 3.虚拟文件系统4.文件系统的结构5.软硬链接 二、文件I/O1.I/O分类a).缓冲与非缓冲 I/Ob).直接与非直接 I/Oc).阻塞与非阻塞 I/O VS 同步与异步 I/O 2.Linux中I/O系统调用函数a).op…

ZKP6.3 Discrete-log-based Polynomial Commitments (Bulletproofs)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 6: Discrete-log-based Polynomial Commitments (Yupeng Zhang) 6.3 Bulletproofs and other schemes based on discrete-log KZG: Pros: Commitment and proof size: O(1), 1 group elementVerifier time: O(1) pairing Cons…

【Docker从入门到入土 6】Consul详解+Docker https安全认证(附证书申请方式)

Part 6 一、服务注册与发现的概念1.1 cmp问题1.2 服务注册与发现 二、Consul ----- 服务自动发现和注册2.1 简介2.2 为什么要用consul?2.3 consul的架构2.3 Consul-template 三、consul架构部署3.1 Consul服务器Step1 建立 Consul 服务Step2 查看集群信息Step3 通过…

UE4/5 竖排文字文本

方法一、使用多行文本组件 新建一个Widget Blueprint 添加Text 或者 Editable Text(Multi-Line) 、TextBox(Multi-Line) 组件。 添加文字,调整字号,调整成竖排文字。 在Wrapping (换行)面板中 : 勾选 Auto Wrap te…

java/javaswing/窗体程序,人脸识别系统,人脸追踪,计算机视觉

源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制 源码下载地址

Openssl数据安全传输平台011:秘钥协商客户端

文章目录 0. 代码仓库拷贝jsoncpp库至工程目录下编译protobuf类文件Message.proto VS 2022 设置 0. 代码仓库 https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Preparation 拷贝jsoncpp库至工程目录下 编译protobuf类文件 VS2022 pr…

K8s 部署 CNI 网络组件+k8s 多master集群部署+负载均衡

------------------------------ 部署 CNI 网络组件 ------------------------------ ---------- 部署 flannel ---------- K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一…

Java —— 数组

目录 1. 数组的基本概念 1.1 什么是数组? 为什么要有数组? 1.2 数组的创建及初始化 1.3 数组的使用 1.3.1 数组中元素访问 1.3.4 遍历数组 2. 数组是引用类型 2.1 初识JVM的内存分布 2.2 基本类型变量与引用类型变量 2.3 认识null 3. 数组的应用场景 3.1 保存数据…

数学与经济管理

数学与经济管理(2-4分) 章节概述 最小生成树问题 答案:23 讲解地址:74-最小生成树问题_哔哩哔哩_bilibili 最短路径问题 答案:81 讲解地址:75-最短路径问题_哔哩哔哩_bilibili 网络与最大流量问题 真题 讲解…

记录--vue3实现excel文件预览和打印

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在前端开发中,有时候一些业务场景中,我们有需求要去实现excel的预览和打印功能,本文在vue3中如何实现Excel文件的预览和打印。 预览excel 关于实现excel文档在…

API自动化测试:如何构建高效的测试流程!

一、引言 在当前的软件开发环境中,API(Application Programming Interface)扮演了极为重要的角色,连接着应用的各个部分。对API进行自动化测试能够提高测试效率,降低错误,确保软件产品的质量。本文将通过实…

C语言学习笔记总结(一)

C语言基础 字节大小 char:1 字节 unsigned char:1 字节 short:2 字节 unsigned short:2 字节 int:通常为 4 字节(32 位平台)或 8 字节(64 位平台) unsigned int&#x…

starrock通过导入实现数据变更

当数据文件中同时包含 UPSERT 和 DELETE 操作时,必须添加 __op 字段,并且确保数据文件中包含一个代表操作类型的列,取值为 0 或 1。其中,取值为 0 时代表 UPSERT 操作,取值为 1 时代表 DELETE 操作。 数据样例 准备数据…

[蓝桥杯-610]分数

题面 解答 这一题如果不知道数论结论的话,做这个题会有两种天壤之别的体验 此题包含以下两个数论知识 1. 2^02^12^2...2^(n-1)2^n-1 2. 较大的数如果比较小的数的两倍大1或者小1,则两者互质 所以答案就是2^n-1/2^(n-1) 标程1 我的初次解答 #in…

分享一款spring渗透测试工具-支持springboot敏感路径扫描和spring漏洞扫描

工具简介: SBSCAN是一款专注于spring框架的渗透测试工具,可以对指定站点进行spring boot敏感信息扫描以及进行spring相关漏洞的扫描与验证。 最全的敏感路径字典:最全的spring boot站点敏感路径字典,帮你全面检测站点是否存在敏…

ZYNQ中Block Memory Generator数据位宽更改

1.场景: 实际使用中,启用了PS中AXI_GP端口的AXI总线,总线的位宽设置为32bit。所需控制的BRAM的接口是AXI接口,数据位宽是64bit。其他设备的AXI接口都是32bit。 2.问题: 搭建好block原理图后,BRAM这…

Kafak - 单机/集群快速安装指北(3.x版本)

文章目录 官方下载地址上传安装包解压安装包到指定目录修改解压包名为kafka修改config目录下的配置文件server.propertie配置环境变量其他机器同上 - 修改配置文件中的brokerid启动集群停止Kraft 方式部署集群----(不使用zookeeper) 官方下载地址 http://kafka.apache.org/dow…

STM32G030F6P6点灯闪烁

前言 (1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:zhangyixu02gmail.com,此消息至2025年1月1日前均有效 (2&#xff0…