Postman使用总结

Collection集合

  • 在Postman里,所有的request请求都只能存放在collection集合目录或者集合目录下的子文件夹中

  • 可以把一个collection当做一个项目工程

  • 同一个项目的接口测试请求全部放在一起

  • 批量执行接口请求(测试)的触发单位就是collection

  • 导出功能只支持导出整个collection,无法导出单个请求或者一整个子文件夹的请求

  • 导出: JSON格式的文件的好处就是可以跨平台,任何操作系统都支持和识别。我们在工作中,经常会遇到需要在不同的电脑或者操作系统上做接口测试,所以collection项目工程是需要迁移的,所以需要使用导出和导入功能。

  • 导入:

Folder接口模块化管理

  • 设计普通的功能测试用例的时候,我们也是基于模块化划分的方式去管理测试用例的

  • 利用Postman具有在Collection下创建Folder文件夹的特性来搭建和管理一套基于模块化划分的接口测试框架

Request接口请求

手工接口测试

在请求区域(上半区)选择Params(默认),依次填写KEY和VALUE,DESCRIPTION可以选填

  • KEY:接口的参数名称
  • VALUE:入参的值
  • DESCRIPTION:参数的说明,有时候参数很多,而且参数名是英文的,可以在输入框中填写中文说明

在Postman工具中,我们并不一定需要在Params区域里填写参数,可以直接利用GET请求的原理,直接在接口URL路径上拼接参数

根据接口的业务要求,由于只有管理员账号才可以获取成员列表,所以我们需要在请求头信息中设置Authorization参数,参数的值填写管理员账号登录后(通过接口调用的方式)的登录授权码(行业内也喜欢叫token令牌号)

处理上下游接口依赖

比如上一个例子,获取成员列表信息需要在请求头中设置变量Authorization这是人工直接复制过来的,如果后期该值发生改变那么需要重写修改很麻烦。

上游接口的返回结果的某些想要使用的值提取出来,然后存放在一个公共的区域,待下游接口需要用到的时候,直接去公共区域拿就可以了,这个在接口测试的领域里也有另一个专业术语,叫做“数据传递”。

编辑公共环境变量

  1. 点击“眼睛”图标,打开Postman环境变量总窗口
  2. 点击窗口下半部Globals区域的最右边的【Edit】按钮后,打开一个Globals标签页
  3. 填写VARIABLE (变量名称):可以任意取名,但一般最好是和实际业务相关的,比如:ipAddress
  4. 不用管INITIAL VALUE (初始值),这个值比较鸡肋
  5. 填写CURRENT VALUE (当前值):http://localhost:6088
  6. 填写完毕后,快捷键Ctrl+S保存当前标签页就可以生效了
  7. 关闭标签页,重新点开“眼睛”按钮,可以看到一个新变量已经添加完毕

公共环境的变量引用

  • 在Postman里,变量引用的方式是两对大括号中间加上变量名称,例如:{{ipAddress}}

不同接口间的数据传递

  • 接口与接口之间往往都有业务上的联系,比如:登录与获取成员列表,如果你不登录,无法获取成员列表,所以这个时候,我们称“登录”为上游接口,而“获取成员列表”为下游接口。
  • 一个上游接口往往可以为多个下游接口服务,一个下游接口也往往需要多个上游接口提供“前置服务”,上游接口很像我们写测试用例时前置条件的感觉。
  • 这种上游接口把数据传递到下游接口的行为,我们叫做“数据传递”、“传参”等

提取接口响应内容里的参数

  • 使用编码技术来完成接口的数据参数传递的工作,在上下游接口请求的Tests里编写Java Script代码(莫慌,大多数代码可自动生成)来实现:

    上游接口:

    (1) 提取接口服务返回的响应内容里的参数的值

    (2) 把提取到的值赋值给一个自定义的变量名称

    (3) 把自定义的变量名称传递给公共环境或指定的私有环境

    下游接口:

    (4) 在参数填写或者在写JSON字符串时,引用变量名称

  • 我们要写的第一句代码是“发送接口请求后,获取所有服务器返回的响应体内容(包含headers头部内容或者body身体内容)”,但是预置代码里没有非常合适的,所以我们只能人工写

    // 获取响应体的所有body内容,赋值给变量jsonData
    // var是Javascript语言中声明变量的语法关键字
    // JSON是保留类,类里有一些方法是专门处理JSON字符串的
    // responseBody是Postman的保留字,它就是响应报文里的所有body内容
    // Javascript语言推荐每行代码结束后要加英文的";"分号
    var jsonData = JSON.parse(responseBody); // 获取响应体的Headers头信息中的内容,赋值给变量adminAuth,
    // 关于变量名称,一般业务含义是什么,变量名称就取什么名字,
    // 这里要提取的是头信息中的Authorization登录授权码
    // postman是Postman的保留字,可以点出一些方法,但Postman工具内嵌的JS语言编译环境并不完善,
    // 所以无法点出所有方法,有些被隐藏了,只能硬背或询问度娘
    // getResponseHeader方法可以拿到所有的响应报文的headers头信息,
    // 然后在方法名称后的括号中以字符串的形式填写指定的头信息里的参数,比如这里的Authorization
    var adminAuth = postman.getResponseHeader("Authorization")
    
  • 然后把adminAuth放到Postman的公共环境中,这个很方便,直接使用代码生成器即可,选择右侧的预置代码Set a global variable,然后改一下参数即可

  • Postman的原理是发送接口请求后,服务器会返回响应内容(显示在下半区Response中),然后会执行Tests脚本;所以通过上述的代码,我们实现了提取头信息的参数和其值,然后把值存放在公共环境中以变量进行管理,无论是公共环境还是私有环境,其实就是一个“数据的中转站”。

下游接口的数据使用

Postman使用总结相关推荐

  1. Postman使用Date数据类型,Postman发送Date类型数据,Postman模拟前端调用

    Postman使用Date数据类型: 在form-data数据类型下,使用 2021/7/7 11:11:00 (yyyy/MM/dd HH:mm:ss) 的数据格式即可 如下: 在json数据格式中 ...

  2. 妙用postman系列——postman建组、分享

    妙用postman系列--postman建组.分享 添加新的组和请求. 3.生成分享链接 4.导入分享链接

  3. [JAVAEE] 使用Postman测试接口

    使用Postman测试接口 HelloController.java package com.example.demo.controller;import org.springframework.we ...

  4. 如何使用postman测试流文件_干货|如何用Postman做集成测试

    友情提示:本文适合已经掌握Postman基本用法的读者,即对接口相关概念有一定了解.已经会使用Postman进行模拟请求等基本操作. 使用Postman进行接口测试,一个重要方面是:我们需要考虑与其他 ...

  5. 接口测试(postman jmeter)

    接口:把client(前端)和server(后端)联系起来的就是接口,接口测试就是功能测试,进行接口测试首先得需要接口文档. json是一种通用的数据格式,接口返回的数据都是json,json是key ...

  6. 使用postman修改SAP Marketing Cloud contact主数据

    Marketing Cloud里的contact主数据,创建成功后也不是所有字段都能够被修改.在Personal data区域的字段是可以被修改的. 比如我在"客户属性"字段里维护 ...

  7. 【Postman】6 Postman 发送post请求-Json格式

    一.post请求说明 使用postman发送一个post请求,在上文中测试流程中提到的4个要素:URL.请求方式.请求头部信息及body数据. body中设置的请求参数,常见的有如下三种: 1.x-w ...

  8. 1-2 postman工具简介

    postman提供了一个多窗口和多选项卡页面用于发送和接受请求,postman努力保持整洁和灵活,提供更多的空间,满足用户的需要.他很简单,能满足大部分接口的测试,性价比特别高.如图所示:  1.侧边 ...

  9. postman发送post请求,用request.getParameter()获取请求参数

    1.接口代码 @RequestMapping("notifyUrl")   public void notifyUrl(HttpServletRequest request, Ht ...

  10. 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!

    欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...

最新文章

  1. Fragment系列总结(一)Fragment概念与生命周期
  2. Java7里try-with-resources分析--转
  3. OpenCV图像操作的实例(附完整代码)
  4. Android数据存储之SQLite
  5. 你周围需要这6种人(文摘)
  6. docker 搭建mysql 连接不上_docker搭建MySQL主从集群
  7. 【c++】笔记:输入带空格的字符串
  8. 生产系统仿真软件,实现数字化工厂的利器!
  9. php redis 实时聊天,php+redis聊天室
  10. Unity场景打包AssetBundle并加载
  11. 阿里云物联网平台使用笔记(一)——利用云产品流转关联两个设备的数据
  12. git冲突解决和放弃本地操作
  13. Word各级标题格式设置和自动排序(标题序号)设置
  14. HihoCoder - 1829 Tomb Raider (暴力+最长上升子序列)
  15. 常用计量单位及其换算
  16. vue的介绍-基本语法
  17. win10html网页运行空白,win10系统Ie浏览器无法打开HTML格式的网页文件的处理秒方...
  18. Unity资源清理工具
  19. Linux下TCP网络编程-创建服务器与客户端
  20. PLC无线通讯方案,支持西门子,三菱,欧姆龙,台达等各品牌PLC

热门文章

  1. 认识LoRa以及LoRaWAN
  2. kuka机器人焊接编程入门教程_【行业干货】KUKA机器人的操作与基本运动编程
  3. eds能谱图分析实例_【材料学堂】X射线光电子能谱(XPS)谱图分析
  4. 阅读感受-致命的自负1
  5. matlab 幅值相角裕度,伯德图分析-稳定性-及幅值和相角裕度.ppt
  6. matlab频率和幅值图,请教!傅里叶变换频率和幅值对不上!
  7. EXTJS4 页面关闭问题
  8. 信息增益以及增益率划分属性
  9. Python中numpy的综合练习
  10. linux mount详解