Postman使用小教程--基础入门篇

文章目录

    • 1 Postman介绍
    • 2 postman基础功能介绍
      • 2.1 postman基础页面
      • 2.2 postman基础页面介绍
      • 2.2 接口测试流程和原理
      • 2.3 请求区域介绍
    • 3 导出和导入接口集
      • 3.1 导出
      • 3.2 导入
    • 4 设置环境变量
      • 4.1 环境变量优先级
      • 4.2 新建环境变量
      • 4.3 将返回值的某个数据设置为环境变量
      • 4.4 将其他的常用tests方法
    • 5 使用postman进行接口自动化测试
    • 6 附录

1 Postman介绍

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。简单来说,四个词,简单实用大方美观!
Postman官网下载地址:https://www.postman.com/downloads/

2 postman基础功能介绍

2.1 postman基础页面

在这里插入图片描述

2.2 postman基础页面介绍

Collection在postman里面相当于一个文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹。

这里我们做一个普通接口的简单的示例:
Step1:新建一个文件夹
在这里插入图片描述
在这里插入图片描述
Step2:文件夹创建完毕,新建一个请求
在这里插入图片描述
在这里插入图片描述
Step3:输入请求URL和请求参数,点击“Send”
在这里插入图片描述
在此给大家推荐几个数据接口网站,注册就有免费调用机会:

  1. 点击进入APILINK

  2. 点击进入聚合数据中心

  3. 控制台-天气API

2.2 接口测试流程和原理

在这里插入图片描述
接收包理解:
在这里插入图片描述

2.3 请求区域介绍

请求部分介绍:

请求区域介绍:
在这里插入图片描述

1 Authorization:身份验证,主要用来填写用户名密码,以及一些验签字段,postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题。;

2 Headers:请求的头部信息

3 Body:post请求时必须要带的参数,里面放一些key-value键值对

4 Pre-requerst Script:可以让你在 请求之前自定义请求数据,这个运行在请求之前,语法使用JavaScript语句。

5 tests:tests标签功能比较强大,通常用来写测试,它是运行在请求之后。支持JavaScript语法。postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量以及对错情况。这个后面会进行详解,它也可以用来设计用例,比如要测试返回结果是否含有某一字符串

6 form-data:,它将表单数据处理为一条消息,以标签为单元,用分隔符分开。既可以单独上传键值对,也可以直接上传文件(当上传字段是文件时,会有Content-Type来说明文件类型,但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。);post请求里较常用的一种

7 x-www-form-urlencoded:对应信息头-application/x-www-from-urlencoded,会将表单内的数据转换为键值对;

8 raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送;

9 binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且没有键值对,一次只能上传一个文件, 也不能保存历史,每次选择文件,提交;

3 导出和导入接口集

postman支持非常方便的导入和导出接口集,继续操作如下:

3.1 导出

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

3.2 导入

在这里插入图片描述
在这里插入图片描述
0 error,0 wainning,如此即简单的导入导出collection集合


4 设置环境变量

4.1 环境变量优先级

Globa全局
Enviroment环境变量
Loca局部
Data数据

优先级从高到底: Data ---- > Local ---- > Enviroment ---- > Global

postman支持很方便的设置环境变量以及全局变量,并可以一键切换不同环境

在这里插入图片描述

  1. 可以一键切换环境,选择No Environment则不使用环境变量,仅适用全局变量

  2. 可以查看当前环境中的变量和全局变量(Globals)的值
    在这里插入图片描述

  3. 进入设置页面
    在这里插入图片描述

4.2 新建环境变量

新建一套环境变量名为test
在这里插入图片描述
创建环境变量意义:能够很方便的调取我们所需的数据

4.3 将返回值的某个数据设置为环境变量

应用场景:在某些时候,我们需要获取到一个变量,并保存下来,因为在后面我们会使用到。比如token信息;
这时候就需要用到tests区域了,使用其强大的js语法

下面是一个简单的将返回值的某个数据设置为环境变量或者全局变量的介绍:

//定义一个xxx,获取body中返回的所有参数,并转化为JSON格式var xxx = JSON.parse(responseBody);//检查json中某个数组元素的个数(这里检测programs的长度)
tests["program's lenght"] = data.programs.length === 5;//将返回中的值设置为一个环境变量pm.environment.set("key",xxx.data.value);或者:postman.setEnvironmentVariable("key", "value");//将返回中的值设置为一个全局变量,        
pm.globals.set("key",xxx.data.value);
或者postman.setGlobalVariable("key", "value");//注意:Global后面不能加S,value值一定要指定到某个具体节点

4.4 将其他的常用tests方法

在postman里,内置了一些常用的方法,可以很方便的调用:
在这里插入图片描述

下面是一些常用的tests方法:

1./*测试response Headers中的某个元素是否存在 */
tests["元素Content-Type是否存在"] = postman.getResponseHeader("Content-Type");
//getResponseHeader()方法会返回header的值;2./*定义一个xxx,获取headers值*/var.xxx = postman.getResponseHeader("key");3./*将Headers中的值设置为一个环境变量*/postman.setEnvironmentVariable("key",xxx);或者pm.environment.set("key",xxx);4./*检查response的code值是否为200*/tests["Status code is 200"] = responseCode.code === 200;
// tests["Status code is 200"]中的tests是一个内置对象,
/*tests["Status code is 200"]是指为这个断言起个名称叫”Status code is 200”,这个名称可以自行修改。
responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200.综合起来,这句代码的意思是:名称为”Status code is 200”的断言中,判断responseCode对象的code属性值(HTTP状态码)是否为200。*/5./*检查response的body中是否包含字符串 */
tests["Body matches string"] = responseBody.has("type");
// tests["Body matches string"]中的tests是一个内置对象,
/*tests["Body matches string"]是指为这个断言起个名称叫”Body matches string”,这个名称可以自行修改。
这句代码的意思是:名称为”Body matches string”的断言中判断响应正文中是否包含:type这个字段。type无论是key或者value,只要匹配就可以。多个类型可用“,”分割。*/6./*检查response的body中是否包含字符串 */
检查Response Body是否等于字符串 tests["测试点"] = responseBody === "Response Body返回的内容";//这个可以用在接口返回内容为纯字符串时,直接检查整个返回结果的正确性7./*检查Response time 是否小于200ms */tests["Response time 小于200毫秒"] = responseTime < 200;8./*检查Response time 是否大于200ms */tests["Response time 大于200毫秒"] = responseTime > 200;9./*检查response的body中是否包含字符串 */
postman.setNextRequest('Request 4')
// postman.setNextRequest()是一个带有一个参数的函数,它是接下来要运行的请求的名称或ID。往往用来跳转至某个接口,只在运行该集合时有用,单独运行无效10./*转换XML body为JSON对象 */var jsonObject = xml2Json(responseBody);11./*设置一个随机数变量 */pm.globals.set("type",parseInt(4*Math.random())+1);
//针对不同类型的课程类型,设置一个1到4的随机整数,字段名是type,parselnt 是强制转换为整数12./*校验接口返回是否有数据 */tests["获取第一个结果"] = xxx.content.jieguo[0];//程序设置的是如果当前没有数据,则只返回content[],所以这句断言可以校验,如果content里还有数据,则视为返回不为空

5 使用postman进行接口自动化测试

首先,既然是自动化测试,那么我们肯定需要工具 (Postman) 或者代码能帮我们直接判断结果是否符合预期。那么在接口测试上,大体就两个思路:

  1. 判断请求返回的 code 是否符合预期

  2. 判断请求返回的内容中是否包含预期的内容(关键字)

接下来我们看看如何利用 Postman 来解决上述的问题:

step1. 这是两个模拟天气的接口集合,点击扩展按钮,找到RUN,进入
在这里插入图片描述
在这里插入图片描述
step2. 先简单运行一次:
在这里插入图片描述
运行成功!


6 附录

在此推荐一款很好的谷歌浏览器插件Talend API Teste

直接通过谷歌网上商店搜索安装即可!
在这里插入图片描述
在这里插入图片描述
安装完毕就可以进行接口测试啦!如下图:
在这里插入图片描述
操作与Postman大同小异,赶快试试吧!

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

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

相关文章

W玻色子质量实验与理论矛盾,或是十年来最重要的进展

来源&#xff1a;科学大院就在昨天&#xff0c;美国费米实验室的CDF项目在《Science》上发了篇文章&#xff0c;W玻色子质量的测量结果和标准模型预测的结果有明显差距。消息一出&#xff0c;粒子物理界炸了窝。因为这或许是十年来最重要的粒子物理进展&#xff01;这个结果意味…

Git理论教程

文章目录1 什么是Git1.1 什么是版本控制系统1.2 为什么需要版本控制系统1.3 常见的版本控制工具1.4 版本控制分类1.4.1 集中版本控制 SVN1.4.2 分布式版本控制 Git1.4.3 Git与SVN的主要区别2 Git环境配置3 Git基本理论3.1 Git三个区域3.2 Git工作流程3.3 Git项目搭建3.3.1 本地…

Science | 再创生命奇迹!日本科学家造出了不需要“父亲”的大鼠及小鼠

来源&#xff1a;【iNature】iNature从多能干细胞 (PSC) 体外生成生殖细胞可以对未来的生殖医学和动物育种产生重大影响。十年前&#xff0c;在小鼠中建立了体外配子发生。然而&#xff0c;在任何其他物种中尚未实现诱导原始生殖细胞样细胞&#xff08;PGCLCs&#xff09;产生配…

总结Vue中index.html、main.js、App.vue、index.js之间关系以及Vue项目加载流程

总结Vue中index.html、main.js、App.vue、index.js之间关系以及Vue项目加载流程 文章目录总结Vue中index.html、main.js、App.vue、index.js之间关系以及Vue项目加载流程1 vue中index.html、main.js、App.vue、index.js关系简介1.1 项目的运行入口index.html1.2 入口文件main.j…

ACM 杰出会员姬水旺:量子化学和物理的深度学习

整理&#xff1a;汪浩文校对&#xff1a;维克多量子技术和人工智能都是当前最先进的科学技术&#xff0c;前者被寄希望于拥有超强的计算能力&#xff0c;后者已经在各行各业“大杀四方”。当两者相遇会碰撞出什么样的火花&#xff1f;人工智能又能在哪些方面助力量子技术&#…

1 操作系统第一章 操作系统概念、功能、四大特征、操作系统发展与分类

文章目录1.1 操作系统概念1.2 操作系统功能1.3 操作系统四大特征1.3.1 并发1.3.2 共享1.3.3 并发性和共享区别及对应关系&#xff1a;1.3.4 虚拟1.3.5 异步1.4 操作系统的发展与分类1.4.1 手工操作阶段1.4.2 批处理阶段——单道批处理系统1.4.3 批处理阶段——多道批处理系统1.…

不能头脑一热,就布局颠覆性技术、上马未来产业

来源&#xff1a;财经国家周刊作者&#xff1a;曹方 何颖 姬少宇 张鹏近年来&#xff0c;布局、规划及培育人工智能与机器人、先进材料、新能源、生命科学、云计算和量子计算、混合现实等颠覆性技术、未来产业&#xff0c;成为不少地方政府推动当地产业结构调整、助力经济高质量…

2 操作系统第一章 操作系统体系结构、中断和异常、系统调用

文章目录1.1 指令概念及其分类1.2 操作系统体系结构&#xff1a;1.2.1操作系统内核概念1.3 中断和异常1.3.1 中断的诞生1.3.2 中断分类1.3.3 外中断的处理过程1.3.4 中断小结1.4 系统调用1.4.1 系统调用介绍1.4.2 系统调用功能1.4.3 系统调用小结1.1 指令概念及其分类 指令就是…

百年诺奖的那些争议与放弃

来源&#xff1a;数学与通识自1901年首届诺贝尔奖颁发以来&#xff0c;它已成为人们心中最崇高、最向往的奖项之一。可能没有人想要去拒绝它&#xff0c;因为它不仅仅是奖金的问题&#xff0c;还是莫大的荣誉和骄傲&#xff0c;其追求真理、造福社会、为人类文明创造价值的初心…

3 操作系统第二章 进程管理 进程定义、特征、组织、状态与转换

文章目录1 进程的定义和特征2 进程的组织3 进程的状态与转换3.1 进程的状态3.2 进程状态转换1 进程的定义和特征 引入进程的原因 为了使程序能够并发执行&#xff0c;并且可以对并发执行的程序加以描述和控制 进程定义 进程是进程实体的运行过程&#xff0c;是系统进行资源分配…

数学家、中科院院士张景中:数学实力影响国家实力是近代以来的共识

本文转自&#xff1a;长江日报-长江网转载自公众号 和乐数学长江日报-长江网讯(记者周劼)最近一段时间&#xff0c;关于“数学”的热点新闻接连不断&#xff0c;从华为爆料有700名数学家&#xff0c;到中国重夺国际奥数冠军&#xff0c;从丘成桐区别数学家和数学工程师&#xf…

4 操作系统第二章 进程管理 进程控制、通信

文章目录1 进程控制1.1 进程控制1.2 进程控制实现1.3 进程创建1.4 进程终止1.5 进程阻塞与唤醒1.6 进程切换1.7 进程控制小结2 进程通信2.1 共享通信2.2 管道通信2.3 消息传递2.4 进程通信小结1 进程控制 1.1 进程控制 进程控制的主要功能是对系统中的所有进程实施有效的管理&…

《Science》日本科学家利用干细胞诱导成功了大鼠生殖细胞

来源&#xff1a;生物通日本科学家利用干细胞来诱导生殖细胞&#xff0c;从而产生健康且可生育的后代。不久前&#xff0c;日本京都大学(Kyoto University)的研究人员在《细胞干细胞》(Cell Stem Cell)杂志上发表了一篇研究论文&#xff0c;称他们利用小鼠多能干细胞在试管中逐…

5 操作系统第二章 进程管理 线程介绍

文章目录1 什么是线程1.1 为什么要引入线程&#xff1a;1.2 线程定义1.3 线程与进程的比较1.4 线程的属性1.5 线程实现方式1.5.1 用户级线程&#xff08;ULT&#xff09;1.5.2 内核级线程&#xff08;KLT,又称“内核支持的线程”&#xff09;1.5.2 用户级线程、内核级线程二者组…

6 操作系统第二章 进程管理 处理机调度

文章目录1 处理机调度1.1 处理机调度概念1.2 处理机调度三大层次1.3 处理机三层调度的联系、对比1.4 处理机调度小结2 进程调度2.1 进程调度、进程切换时机2.2 进程调度方式2.3 进程的切换与过程2.4 进程切换与调度小结3 典型的调度算法3.1 先来先服务 FCFS3.2 短作业优先 SJF3…

如何通向“广义人工智能”?LSTM 提出者之一Sepp Hochreiter:将符号 AI 与神经 AI 相结合...

来源&#xff1a;AI科技评论作者&#xff1a;Sepp Hochreiter解读&#xff1a;Antonio编辑&#xff1a;陈彩娴人类包含意识、认知、决策等等在内的智慧能力&#xff0c;似乎从人类有记录的那一刻起&#xff0c;就吸引着无数哲学家的思索。与之类似&#xff0c;从AI诞生的那一刻…

德勤预判:2022技术七大趋势

来源&#xff1a;综合德勤公开平台公开发布信息整理编辑&#xff1a;邱峰、罗兵&#xff0c;张钦煜审核&#xff1a;张祥、吴斌、数字理政研究院、中通协大数据分会1、数据跨界共享更便捷&#xff1a;诸多新技术致力于在保护隐私的同时&#xff0c;简化组织内和组织间的数据共享…

7 操作系统第二章 进程管理 进程同步与互斥

文章目录1 进程同步与互斥1.1 进程同步1.2 进程互斥1.3 进程同步机制遵循的原则1.3 进程同步、互斥小结2 进程互斥实现方法2.1 互斥的软件实现方法2.1.1 单标志法2.1.2 双标志法先检查2.1.3 双标志法后检查2.1.4 Peterson算法2.1.5 互斥的软件实现方法小结2.2 互斥的硬件实现方…

8 操作系统第二章 进程管理 信号量 PV操作 用信号量机制实现 进程互斥、同 步、前驱关系

文章目录1 信号量机制1.1 整形信号量1.2 记录形信号量1.3 信号量机制小结2 用信号量机制实现进程互斥、同 步、前驱关系2.1 信号量机制实现进程互斥2.2 信号量机制实现进程同步2.3 信号量机制实现前驱关系2.4 信号量机制实现进程互斥、同 步、前驱关系小结1 信号量机制 用户进程…

一文掌握深度学习、神经网络和学习过程的历史

来源&#xff1a;算法与数学之美本质上&#xff0c;深度学习是一个新兴的时髦名称&#xff0c;衍生于一个已经存在了相当长一段时间的主题——神经网络。从20世纪40年代开始&#xff0c;深度学习发展迅速&#xff0c;直到现在。该领域取得了巨大的成功&#xff0c;深度学习广泛…