postman做接口测试时一些实用的操作

2023-11-17

Postman 之前是作为Chrome 的一个插件,现在要下载应用才能使用。

以下是postman 的界面:

各个功能区的使用如下:

  • 快捷区: 快捷区提供常用的操作入口,包括运行收藏夹的一组测试数据,导入别人共享的收藏夹测试数据(Import from file, Import from folder, Import from link等),或新建请求、收藏夹、环境变量等。
  • 侧边栏: 包括搜索栏, Request 请求的历史记录和收藏夹管理。
  • 功能区: Request 请求设置,查看 Response 响应结果和测试结果,可以将请求保存到收藏夹。
  • 设置区:设置和管理环境变量和全局变量。

一、环境变量和全局变量的设置:

a. 环境变量的设置方法如下图。点击设置一个环境变量,名为"user_pwd", 里面设置username 和passwd的值,然后在请求中应用这个环境变量"user_pwd"即可。

环境变量可以使用在以下地方

  • URL
  • URL params
  • Header values
  • form-data/url-encoded values
  • Raw body content
  • Helper fields

注意:在你要使用的变量名上附上双花括号,一个请求只能应用一个环境变量。

下图"username" 和"passwd" 的value值应用了环境变量"user_pwd",所以在body 中,只需在key对应的value那写上变量{{username}}, {{passwd}}

注意:一个项目需要测试好几个环境的情况,就可以对不同的环境设置一个环境变量,比如对“test environment”设置一个环境变量,对“stage environment”设置一个环境变量,对“production 环境”设置一个环境变量。

 b. 全局变量的设置方法类似,如下图,点击"Globals" 后就会出现添加环境变量类似的页面,进行变量和值的设置。

注意:全局变量设置就应用于整个收藏夹(Collection)中的请求,不用像环境变量一样需要选取。

二、用Postman做接口测试的实例

**接口测试中常用的请求为GET 和POST,以下均以这两种请求为例。

GET 和POST 的区别:

  • GET 使用URL 或Cookie 传参,而POST将数据放在Body 中。
  • GET的URL 在长度上会有限制,而POST没有。
  • POST比GET相对安全,因为在地址栏不可见。
  • 一般POST请求用来获取数据,POST请求用来发送数据。

**对于上面的区别,其实第一点POST也可以将数据放在URL里,GET请求其实也没有长度限制,POST请求看起来是隐式的,但是可以通过抓包拿到参数。

1. GET 请求:

平常我们拿一个url 访问页面,就是所谓的get 请求。

例1.(stu_info 接口:获取名字为xx 的信息)

将请求方式设为GET, 同时输入完整的url, 跟访问浏览器一样, 或者输入接口url, 点击"Params" 输入需要的key 以及value, 点击"Send", 即可在"Response" 中查看返回的结果。

注意: get 请求的内容不能放在body里,并且长度有限制。由于对domain 设置了全局变量,所以,url 中用变量{{domain}} 做了替换,以下的请求中都应用了这个全局变量。

例2. (all_stu 接口:获取所有用户的信息)

除了例1这种GET请求,还有些接口发送GET请求时除了发送key-value, 还要将Headers的信息也一起发送过去,这样就可以借助Postman来实现。以下图为例,需要在Headers 里添加"Referer"信息,以获取所有用户的信息。

2. POST请求:

POST 请求不能像GET一样直接在浏览器输入就可以请求,需要借助工具来完成。

 使用方法:选择请求方式为post,输入请求的url,以及输入必要的"Authorization" , "header" 和"Body" 数据。post请求可以发送key-value, json格式,file等。

对于"Authorization"的使用,遇到比较多的是Type 为"Basic Auth", 然后设置对应的Username 和Password

这里的username, password的值可以通过设置环境变量的方式取得。

a. 用Postman 发送key-value 的请求:

以login 接口为例,在Body 中选取"form-data" 格式,输入所需的key-value, 选取对应的环境变量。

b. 用Postman 发送json格式的请求:

以add user 接口为例,在Body 中选取"raw" 格式,根据接口文档输入json 数据, 有需要应用环境变量的选取环境变量。

c. 用Postman 发送文件的请求:

以file upload 接口为例,在Body 中选取"form-data" 格式,在key 里输入"file",在右边的下拉里选取类型为"File",点击"Choose Files" 就可以上传本地文件了。

 三、Pre-requestScript 的使用

 对于环境变量和全局变量的使用,除了上面所讲的方法外,也可以用Pre-requestScript 方法。

以login接口为例,在"Pre-requestScript"中设置环境变量 "username", "passwd",在Body 中选取"form-data" 格式,输入所需的key-value, value即为变量{{username}}, {{passwd}}

postman. setEnvironmentVariable (“key”, “value”);

postman. setGlobalVariable (“key”, “value”);

getEnvironmentVariable ("key");//获取key的环境变量

getGlobalVariable(“key”);//获取key的全局变量

 四、Tests 的使用

1. Tests 作为测试用例的应用

Tests 主要用来设计用例,比如要测试返回结果是否含有某一字符串,就可以用到 Tests。以gold_add 接口为例,来编写测试用例,分别测试返回的结果是否含有,如下所示:

响应成功返回PASS, 失败返回FAIL。

 常用tests如下:

1.检查response body中是否包含某个string
tests["Body matches string"] = responseBody.has("string_you_want_to_search");

注意:"Body matches string" 需唯一。

2.检测JSON中的某个值是否等于预期的值

var data = JSON.parse(responseBody);

tests["Your test name"] = data.value === 100;

JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 

如:检查json中某个数组元素的个数(这里检测programs的长度)

var data = JSON.parse(responseBody);

tests["program's lenght"] = data.programs.length === 5;

3.检查response body是否与某个string相等
4.转换XML body为JSON对象
var jsonObject = xml2Json(responseBody);

tests["Body is correct"] = responseBody === "response_body_string";

5.测试response Headers中的某个元素是否存在(如:Content-Type)

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 

//getResponseHeader()方法会返回header的值,如果该值存在

或者: 

tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
上面的方法,不区分大小写。下面的方法,要区分大小写。 

6.验证Status code的值

tests["Status code is 200"] = responseCode.code === 200;

7.验证Response time是否小于某个值
tests["Response time is less than 200ms"] = responseTime < 200;

8.name是否包含某个值
tests["Status code name has string"] = responseCode.name.has("Created");

9.POST 请求的状态响应码是否是某个值
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

10.很小的JSON数据验证器

var schema = {

"items": {

"type": "boolean"

}

};

var data1 = [true, false];

var data2 = [true, 123];

console.log(tv4.error);

tests["Valid Data1"] = tv4.validate(data1, schema);

tests["Valid Data2"] = tv4.validate(data2, schema);

2. 设置环境变量,建立多个接口间的关联

以gold_add 接口为例,由于该接口有权限验证,需要admin用户才可以做操作,需要添加cookie,所以需要将login 接口关联起来使用。

在login 请求中, 在"Tests"中加入

var jsonData =JSON.parse(responseBody);//获取body中返回的所有参数
postman.setEnvironmentVariable("sign",jsonData.login_info.sign);//把返回参数中的sign设置为环境变量

这样sign 就可以作为环境变量,应用于gold_add接口。

在gold_add 接口中,{{username}} 由于在环境变量"user_pwd" 中已经设置,可以直接输入变量名, {{sign}} 动态取得login接口中 Response 的 "sign" 值,{{sign}}已在上面login 请求的"Tests" 中定义。

以上就是postman接口测试基本使用方法总结。

B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

postman做接口测试时一些实用的操作 的相关文章

随机推荐

  • 【Python】植物大战僵尸-基于pygame模块-part2

    文章目录 版本介绍 一 种子栏类 SeedBank py 1 成员变量 2 方法 展示种子栏 二 主游戏类 MainGame py 1 成员变量 2 加载项 3 主事件项 三 最终效果 版本介绍 继上篇内容开发 该版本为ver1 1 后续版
  • go 进阶 请求代理相关: 二. ReverseProxy 基础讲解

    目录 一 ReverseProxy 基础 ReverseProxy 中提供了哪些功能 ReverseProxy 结构详解 ReverseProxy实现代理的简单示例 1 NewSingleHostReverseProxy 函数源码解释 2
  • 元宇宙大投资 & 元宇宙通证

    元宇宙大投资 元宇宙大投资 1 备战元宇宙大浪潮 元宇宙大投资 2 抓紧元宇宙本质 元宇宙大投资 3 决胜元宇宙投资 元宇宙大投资 4 元宇宙的终局 生物与数字的融合 元宇宙大投资 6 元宇宙中国之崛起 元宇宙大投资 7 全球投资脉络下的元
  • Linux 下搭建 Kafka 环境

    安装步骤 准备软件目录 mkdir datalake 上传之前下载好的安装包到 datalake 目录下 jdk 8u181 linux x64 gz kafka 2 11 2 1 0 tgz zookeeper 3 4 5 tar gz
  • Openwrt按键检测分析-窥探Linux内核与用户空间通讯机制netlink使用

    首先看一下Openwrt系统中关于按键功能的使用和修改 以18 06版本为例 按键功能实现在脚本中 比如18 06 package base files files etc rc button reset bin sh lib functi
  • 【闲趣】软链接:拯救你的C盘

    转载 本文主要解决电脑系统盘空间问题 虽然有一些软件我们修改了安装路径 但是无可避免的是还是有一些文件装在了C盘里 有没有什么办法可以把它们全部放到非系统盘呢 自从上次重装系统之后 电脑上的3dsmax也用不了了 今天想重新下载回来 但是之
  • Unity Frame Debugger和Profiler连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题 当前场景最大的性能瓶颈是渲染时 或者自己写的Shader要调试时 都可以用Frame Debugger进行调试 按下列步骤设置打包 既可以用Profiler又可以用Frame Debugge
  • 【转载】爬虫篇——urllib3的基础知识(总结)

    一 快速入门 1 提出请求 导入urllib3模块 import urllib3 创建一个PoolManager对象 用于处理连接池和线程安全的所有详细信息 http urllib3 PoolManager 提出请求 请使用request
  • 7.27作业

    实现一个对数组求和的函数 数组通过实参传递给函数 bin bash read p 请输入数组 a arr sum 0 function fun for i in arr do sum i done fun echo sum
  • 浅谈矩阵分解在推荐系统中的应用

    推荐系统是当下越来越热的一个研究问题 无论在学术界还是在工业界都有很多优秀的人才参与其中 近几年举办的推荐系统比赛更是一次又一次地把推荐系统的研究推向了高潮 比如几年前的Neflix百万大奖赛 KDD CUP 2011的音乐推荐比赛 去年的
  • LeetCode 27. Remove Element(删除元素)

    原题网址 https leetcode com problems remove element Given an array and a value remove all instances of that value in place a
  • spring quartz 1.6配置方法

    该配置文件针对quartz 1 6 0 jar 较为常见 配置文件如下 启动时引入加载即可
  • 查看java编程环境是否配置成功

    验证Java编程环境是否配置成功 点击键盘Windows r键 打开运行提示框输入cmd按回车键打开命令框 输入javac 点击回车 查看java编译环境是否正常 输入 java 点击回车 查看java运行环境是否正常 输入java ver
  • 一起聊聊等保测评

    现在好多企业里面好像都在搞这个等保测评 这个等保测评终究是个什么东西呢 那企业为什么要做这个等保测评呢 做完之后对企业又有什么帮助呢 然后就是哪些企业需要做等保测呢 甚至很多企业做了很多次等保测评最后都不太了解这个等保测评 那今天就让我们一
  • QFramelessWidget 中多个组件添加滚动条

    QFramelessWidget 无边框窗口 QFramelessWidget是一个无框架的窗口小部件 它提供了一种在主窗口外绘制自定义窗口小部件的方法 在QFramelessWidget中添加多个组件时 有时候需要在这些组件中添加滚动条
  • echarts仪表盘进度条、指针动态渐变色显示

    1 echarts仪表盘实现效果如下 2 配置项代码 const option 鼠标悬浮的提示 tooltip formatter b c series type gauge min 0 最大值 max 100 最小值 startAngle
  • shiro简介以及基本框架搭建

    Shiro框架是一个基于java实现认证登录的安全框架 它是由Apache推出的 目前最新的版本是1 3 2版本 Shiro主要的功能有 Authentication 身份认证 登录 Authorization 授权 Session Man
  • ftp虚拟服务器登录,ftp虚拟服务器登录

    ftp虚拟服务器登录 内容精选 换一换 默认部署在VPC下的应用可以调用API 如果域名解析失败 则参考配置内网DNS 在当前终端节点上配置DNS服务器 配置完成后 部署在VPC下的应用可以调用API 配置DNS需要配置 etc 目录下的r
  • c++---优先队列(priority_queue)

    C 中的优先队列是STL中的派生容器 它仅考虑最高优先级元素 队列遵循FIFO策略 而优先队列根据优先级弹出元素 即 优先级最高的元素首先弹出 与普通队列区别 在优先队列中 队列中的每个元素都与某个优先级相关联 但是优先级在队列数据结构中不
  • postman做接口测试时一些实用的操作

    Postman 之前是作为Chrome 的一个插件 现在要下载应用才能使用 以下是postman 的界面 各个功能区的使用如下 快捷区 快捷区提供常用的操作入口 包括运行收藏夹的一组测试数据 导入别人共享的收藏夹测试数据 Import fr