详解PostMan使用

news2024/11/14 3:00:00

目录

1.简介

2.管理用例集

3.断言

3.1.概述

3.2.判断响应状态码

3.3.判断响应体是否包含某个字符串

3.4.断言JSON数据

3.5.断言响应头

4.全局变量和环境变量

4.1.概述

4.2.创建环境

4.3.设置变量

4.4.获取变量

5.前置脚本

6.关联

7.批量执行

8.测试报告


1.简介

PostMan,一款接口调试工具。

特点:

  • 可以保留接口请求的历史记录

  • 可以使用测试集Collections有效管理组织接口

  • 可以在团队之间同步接口数据(收费)

2.管理用例集

创建:

 导出:

 导入:

3.断言

3.1.概述

断言,让程序去判断预期结果和实际结果是否一致。

postMan的断言是使用JavaScript编写的,写在Tests标签里。

常用的断言有五个:

  • 判断响应状态码

  • 判断响应体是否包含某个字符串

  • 判断响应体是否等于某个字符串

  • 断言Json数据

  • 断言响应头

3.2.判断响应状态码

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

3.3.判断响应体是否包含某个字符串

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

3.4.断言JSON数据

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

josnData.value指的是response的json中的key,如果是{"code":200},则应该写为jsonData.code,以此类推。

3.5.断言响应头

断言响应头中是否包含某个参数:

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

 断言响应头中某个参数的值:

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type","application/json;charset=UTF-8");
});

4.全局变量和环境变量

4.1.概述

全局变量:全局唯一,不可重复的变量,全局都可以使用。

环境变量:PostMan支持定义多套不同的环境、在每套环境里面定义属于当前环境的环境变量。当切换到某个环境时才能使用这个环境里的环境变量。

4.2.创建环境

以下是创建一套环境的方法:

点击环境管理

点击新增

 

新增一套环境,新增时允许指定属于该套环境的环境变量。

 

 创建完成后就可以使用了:

 

4.3.设置变量

全局变量和环境变量都是可以在界面上手动设置的:

进入环境管理:

支持手动设置全局或者环境变量:

当然也可以通过在tests标签来写代码实现。

全局变量:

pm.globals.set("name",value);

环境变量:

pm.environment.set("name",value);

4.4.获取变量

全局变量、环境变量都可以通过{{变量名}}来获取:

也可以通过在tests标签写代码来获取:

获取全局变量:

var value=pm.globals.get("name");

获取环境变量:

var value=pm.environment.get("name");

5.前置脚本

在Pre-request Script中可以书写请求前执行的脚本:

此处以向百度发送一个时间戳为例,在前置脚本中获取当前时间戳,设置进全局变量中,参数中再去获取该全局变量携带发送即可。

6.关联

当接口之间存在依赖关系,接口B要依赖于接口A的返回值时,就要用到PostMan的关联。

关联是使用环境变量、全局变量来实现的,接口A的返回值存入环境变量、全局变量中,接口B再去获取使用。

案例:

根据手机号获取所在地区,然后查询该地区的天气。

查看A接口的返回结果:

在Tests中通过js脚本来解析返回结果,将城市信息放到全局变量中:

 然后再建一个请求,去请求B接口(天气接口),参数从全局变量中取即可。

7.批量执行

run之前支持配置一些参数,比如循环次数、间隔时间等。

8.测试报告

用newman可以基于postMan来生成测试报告,这里不展开了,想生成的时候直接去搜newman相关内容就行。

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

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

相关文章

传统机器学习(六)集成算法(2)—Adaboost算法原理

传统机器学习(六)集成算法(2)—Adaboost算法原理 1 算法概述 Adaboost(Adaptive Boosting)是一种自适应增强算法,它集成多个弱决策器进行决策。 Adaboost解决二分类问题,且二分类的标签为{-1,1}。注:一定是{-1,1},不能是{0,1} …

Linux 线程安全

目录 传统艺能😎Linux线程安全😊原子性&互斥🤣mutex😊互斥量初始化🙌互斥量销毁🙌互斥量加锁🙌互斥量解锁🙌 互斥量原理😊锁的申请🙌 线程安全&#x1f9…

Java --- springboot2之文件上传

目录 一、文件上传 二、自动配置原理 一、文件上传 <form role"form" th:action"{/upload}" method"post" enctype"multipart/form-data"><div class"form-group"><label for"exampleInputEmail1&quo…

VUE 学习笔记(二)VUE的深入理解

一、VUE 简介 1.什么是VUE ? VUE 是一套用于构建用户界面的渐进式JavaScript框架 &#xff0c;对于简单应用&#xff0c;只需要轻量小巧的核心库&#xff0c;对于复杂的应用&#xff0c;可以引入各种VUE 插件。 模板引擎是 Vue 里最主要、最核心的一个能力&#xff0c;在模板引…

【Linux学习】多线程——线程控制 | 线程TCB

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 线程控制 | 线程TCB &#x1f9f0;线程控制&#x1f3b4;线程创建&#x1f3b4;线程结束&#x1…

华为eNSP综合实验学习记录

区域一&#xff1a;ISP 题目要求&#xff1a; 1、ISP区域&#xff0c;每台路由器需要指定一个环回口地址&#xff0c;所有设备之间互联使用/30网段&#xff0c;server1服务器区域是有10台服务器&#xff0c;使用10.1.1.0/24网段进行划分。LSW1是一台OLT设备&#xff0c;连接家…

谷歌账号注册流程全攻略

谷歌账号是获取谷歌各种服务的通行证&#xff0c;包括Gmail、Google Drive、Google Photos、Google Maps等。拥有一个谷歌账号可以让你的数字生活变得更加便捷。下面我们一起来看看谷歌账号的注册流程。 一、访问谷歌账号注册页面 首先&#xff0c;你需要访问谷歌账号注册页面…

【MYSQL】基础的增删查改

目录 1.create(新增) 2.retrieve(查询) 1.全列查询&#xff1a;*代表所有&#xff1b; 2.指定列查询&#xff1a; 3.取别名 4.去重--distinct 5.排序--order by 类型 asc 6.条件筛选--where 类型数值&#xff1b; 7.筛选null--is/not is 8.范围查找between and 9…

springboot第七章 结合Dubbo

实现Dubbo分布式框架&#xff0c;需要公共接口maven项目&#xff0c;需要服务提供者springboot项目&#xff0c;需要服务消费者springboot项目。 因为公共接口只有数据类和接口&#xff0c;后期提供者和消费者需要根据maven唯一坐标来导入公共接口项目的jar包&#xff0c;因此公…

Python简单教程(第01章---第04章)

Python简单教程 1. Python综述1.1 python是什么1.2 python的发展1.3 python的特点 2.Python3安装2.1 python3 和 python2的区别2.2 python3环境的安装&#xff08;以windows为例&#xff09;2.3 Anaconda 安装&#xff08;可选&#xff09; 3. Python基本语法3.1 编码3.2 标识符…

内网渗透之横向移动 委派-非约束委派约束委派资源委派

0x01 横向移动-非约束委派 原理&#xff1a; 机器A&#xff08;域控&#xff09;访问具有非约束委派权限的机器B的服务&#xff0c;会把当前认证用户&#xff08;域管用户&#xff09;的的TGT放在ST票据中&#xff0c;一起发送给机器B&#xff0c;机器B会把TGT存储在lsass进程…

tomcat乱码解决方案

2.将里面的java.util.logging.ConsoleHandler.encoding 的值改为GBK。如下图&#xff1a;

电影推荐算法

模型训练 下载数据集&#xff0c;解压到项目目录下的./ml-1m文件夹下。数据集分用户数据users.dat、电影数据movies.dat和评分数据ratings.dat。 ** 数据集分析 ** user.dat&#xff1a;分别有用户ID、性别、年龄、职业ID和邮编等字段。 数据集网站地址为http://files.group…

数智未来,因你而来 | 昇腾AI创新大赛2023全新启动

在5月6日-7日举行的昇腾AI开发者峰会2023上&#xff0c;昇腾AI创新大赛2023正式启动。大赛旨在鼓励全产业开发者基于昇腾AI技术和产品&#xff0c;打造软/硬件解决方案、探索模型算法&#xff0c;加速AI与行业融合&#xff0c;促进开发者能力提升。 会上&#xff0c;中国工程院…

【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积

CDN&#xff08;Content Delivery Network&#xff09;即内容分发网络&#xff0c;是一种通过在全球范围内分布式部署服务器来加速网络内容传输的技术。CDN加速的原理是&#xff0c;当用户请求访问某个资源时&#xff0c;CDN会根据用户的地理位置和网络状况&#xff0c;自动选择…

【内置函数】——高级编程——如桃花来

目录索引 1. hasattr()&#xff1a;2. getattr()&#xff1a;有&#xff1a;没有则报错&#xff1a; 3. setattr()&#xff1a;4. delattr():5. issubclass():6. isinstance():判断前面是不是属于后面的类型&#xff1a;判断前面是不是属于后面的类型之一&#xff1a;判断前面是…

百度网盘密码数据兼容处理

文章目录 一、问题描述二、代码实现1. 配置类2. 数据库配置3. config 配置类4. AOP 通知类5. 数据层6. 业务层7. 实体类 三、测试及结果 一、问题描述 需求&#xff1a; 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理。 分析&#xff1a; ① 在业务方法执行之前对所…

目标检测YOLO(V1、V2、V3)入门

one-stage和two-stage的区别 YOLO常见的指标 YOLO V1 yolo v1架构解读 yolo v1损失函数 NMS非极大值抑制 yolo v1版本的问题 重叠在一起的物体不好分类&#xff0c;只是一个单分类问题多标签问题&#xff08;狗和哈士奇&#xff09; v2和v1的区别 v2网络结构 batch normaliz…

【iOS】---pthread,NSThread

在iOS中多线程开发有四种方式&#xff0c;在之前我们浅浅了解了一下GCD&#xff0c;这期来看看pthread和NSThread pehread pthread简介 pthread 是一套通用的多线程的 API&#xff0c;可以在Unix / Linux / Windows 等系统跨平台使用&#xff0c;使用 C 语言编写&#xff0c;…

Redis持久化之RDB高频问题

1、RDB是如何应用的&#xff1f; 因为记录的是操作命令&#xff0c;而不是实际的数据&#xff0c;所以&#xff0c;用 AOF 方法进行故障恢复的时候&#xff0c;需要逐一把操作日志都执行一遍。如果操作日志非常多&#xff0c;Redis 就会恢复得很缓慢&#xff0c;影响到正常使用…