Postman接口测试工具的应用指南

一、Postman简介

Postman是一个接口测试和http请求的工具,它主要针对的是http请求。模拟浏览器发送请求,接收响应。使用Postman可以模拟任何浏览器发出的请求,可以构造地址,请求方法,请求内容,Cookies等。Postman的响应内容包括完整的响应头,响应时间,响应大小,cookie等内容

二、Postman入门

从官网下载Posman,安装完成后,开始使用,下方是Postman的基本界面
在这里插入图片描述

1.使用Postman发送请求

1.1新建集合 Collection

  • 启动Postman后,点击file-new,选择Collection,输入集合名字
    在这里插入图片描述

  • 集合Collection中还可以创建不定层级的Folder在这里插入图片描述

1.2 新建请求

  • 选择一个Folder, 右键,点击Add Request,给Request命名
    在这里插入图片描述

1.3 查看响应结果

  • 在Requset界面中,输入请求地址url,点击Send按钮,就可以看到接口的返回值,结果图如下:
    响应结果

1.4 易错点:请求时key值出错,原因及解决方法

  • 在发送Request请求时,请求key的值正确,但是key单词不是小写,Response中返回的结果为请求key错误。
    易错
  • 解决方法:key单词严格按照接口文档中的格式,小写,报错问题解决

Postman工作原理

(1)输入请求,并单击Send按钮
(2)该请求由API服务器收,并返回响应
(3)响应由Postman接收,接口响应内容在工具中可视化
在这里插入图片描述

2. 执行请求前和响应后代码

Postman中,预请求脚本(Pre-request Script)是一种在发送请求之前执行的脚本。它可以用于设置请求头、修改请求参数或执行其他操作。
测试(test)是一种在发送请求之前执行的脚本。

3. 查看控制台日志

Postman界面有控制台console,可以帮助用户了解系统后台发生了什么
在这里插入图片描述

三、Postman基本操作

1.GET请求

HTTP GET请求方法是从服务器检索数据。数据可以在URL地址中展示出来,GET请求将参数拼接在URL后面并传递给服务器(参数的Key与Value之间由“=”号,Value不需要引号包裹,多个参数之间用“&”符号连接)
1.1构建请求
param1param 2表示发送的参数
**?**后面接参数
**&**连接多个参数

参数编辑:

  • 点击Params按钮,Postman可以自动帮助我们解析出对应出对应参数。
  • 如果想要暂时不传参数,可以方便的通过不勾选的方式去实现
  • 如果想要批量的编辑参数,可以点击右上角的Bulk Edit,去实现批量编辑
2. POST请求
3. PUT请求
4. DELETE请求

返回的是“:”而不是“=

5. PATCH请求

Postman测试项目登录界面

无接口文档时,用Fiddler抓包接口,自己写接口文档,再在Postman中测试

四、Postman中的变量

1.变量类型

临时变量(Data Variable)普通变量:在某个代码段中使用。

集合变量(Local Variable)项目变量:只在某个集合下使用

环境变量(Environment Variable):在某个环境下使用

全局变量(Global Variable):整个postman中的请求都可以使用

2.临时变量Data Variable

1.设置一个临时变量,var 变量名=变量值
2.console.log(变量名),验证变量是否定义成功,结果如下:
在这里插入图片描述

3.集合变量 Local Variable

1.在Postman界面,选中集合,Variables选项中定义集合变量c_var,赋值
在这里插入图片描述

2.代码Set a collection variable定义集合变量Collection Variables,ps:定义完成需要Get a collection variable,声明一下,请求并验证
在这里插入图片描述

3.发送请求,集合变量获取成功

4.环境变量Environment Variable

1.图形化界面定义变量
(1)点击右上角“眼睛”按钮,新建环境变量
在这里插入图片描述
(2)输入环境名,并设置环境变量名和环境变量值,Ctrl+S保存,可以再次点击眼睛按钮查看定义的环境变量
在这里插入图片描述

(3)选择一个请求Request,点击Tests,右方侧边栏点击Get a environment variable,获取一个环境变量并赋值给e_var1,console.log打印,Ctrll+S保存。代码如下:

// 获取一个环境变量
 e_var1=pm.environment.get("e_var");
// 打印,查看e_var的值
 console.log(e_var1)

(4)点击Send,发送请求,环境变量值在Console中打印成功。
在这里插入图片描述
2.JS代码定义环境变量

(1)选择请求Request,侧边栏点击Set an environment variable,设置环境变量名variable_keye_var2,环境变量值variable_valuefffffffff
(2)侧边栏点击Get a environment variable,获取环境变量并赋值给e2,console.log(e2)打印e2的值
(3)Ctrl+S保存,点击Send,发送请求,验证环境变量是否定义成功,代码如下:

// 定义环境变量e_var2,值为fffffffff
pm.environment.set("e_var2", "fffffffff");
// 获取环境变量
e2=pm.environment.get("e_var2");
// 查看环境变量
console.log(e2);

(4)全局面变量在Console控制台上打印成功,结果如下:
在这里插入图片描述
3.引用环境变量
引用环境变量

4.删除环境变量
环境变量用JS代码删除,侧边栏中单击Clean an environment variable,输入要删除的环境变量名即可。代码如下:

pm.environment.unset("variable_key");// variable_key 就是要删除的环境变量名

5.全局变量Global Variable

1.图形化界面设置全局变量
(1)点击右上角“眼睛”按钮,新建全局变量
在这里插入图片描述
(2)进入Globals界面,设置全局变量名和全局变量值,Ctrl+S保存
在这里插入图片描述
(4)再次点击眼睛按钮,查看定义的全局变量
在这里插入图片描述
(5)选择一个Request,进入Tests,侧边栏选择Get a global variable,赋值给g1并打印,代码如下:

// 获取一个全局变量
g1=pm.globals.get("g_var");
// 打印,查看g_var的值
console.log(g1);

(6)Ctrl+S保存,点击Send发送请求,全局变量的值在console中打印成功
在这里插入图片描述

5.引用变量的方法:{{参数名}}

五、添加断言Assertion

1.简介

对预先测试结果进行校验

2.在Postman中设置断言

2.1对响应体设置断言

(1)断言设置的位置:选择一个Request,单击Tests
(2)侧边栏找到Response Body:Contains string,单击
(3)设置,返回结果中如果包含to.include后的字符串时,pm.test后设置断言
(4)响应结果Responce —>Test Results ,查看断言结果,为PASS还是FAIL
代码如下:

// 判断响应体中是否包含预期的结果
pm.test("断言内容", function () {
    pm.expect(pm.response.text()).to.include("断言需要的条件");// 预期结果
});

2.2对状态码设置断言

代码如下:

// 判断状态码是否为与其状态码,对响应状态码进行断言设置
pm.test("状态码是200", function () {
    pm.response.to.have.status(200);
});

2.3对响应时间设置断言

代码如下:

// 判断响应时间是都为预期时间,对响应时间进行断言设置
pm.test("响应时间少于200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

2.4转换xml返回数据为json设置断言

在这里插入图片描述

2.5对响应码设置断言

在这里插入图片描述

断言测试报错的原因

1.设置参数的参数名和cvs数据中的参数名不一样
2.设置断言的参数,大小写没有匹配成功

4.Postman中cookie的应用

以招聘系统为例,如果新增商务需求列表接口正确,请求体数据正确,但是Postman发送Send请求后,数据库中表数据不增加,因为cookie不正确,要先从登陆接口中拿到cookie,

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

3.在Postman中设设置参数传递(Token)

依赖登录状态的接口,在请求时,要携带服务端返回的cookie,或token,服务器验证身份后,才能进行对应操作

4.批量运行接口Run Collection

设置断言,批量运行接口,得到的pass或者fail结果可以告诉我们接口的情况,根据断言设置

六、加密接口

原理

加密时前端加的密,后端之所以能解开,是因为前后端商量好了使用哪种算法,前后端都遵循了同一种算法,就可逆,所以后端可以解开,如果别人拦截了密文,不知道加密规则,也很难解开

比如登陆禅道,在页面中输入的密码123456,在程序中使用md5加密了,Pre-request Script作用于集合cllection下的每一个请求,在每一个请求request执行之前,执行Pre-request Script脚本 。
以禅道登录为例,验证加密接口的应用
1.根据API文档,获取接口地址和入参,其中的密码应该是不加密的。如果没有API接口,用Fiddler抓取接口信息。

加密接口,password前端加密后传送后端,不记得密文,只记得明文,诉求:先加密,再发送给接口——预请求脚本Pre-request Script可以完成
明文密码变密文
将环境变量传递给登录请求的参数,Send发送请求
发送登录请求

  • 注:Fiddler抓取禅道账号登录响应内容时空白,Postman中的响应内容也是空白,换账号登录,也是空白,这是开发的问题
    查看禅道登录日志,可见,Postman使用加密接口登录成功
    禅道登录

电商项目

1.登录接口测试

因为手机号注册后,再次测试接口,就会提示已经注册,因此,生成随机数,

  • 通过随机数和取整获取2位整数
  • 取随机数前两位
  • 把这个获取的变量设置为集合变量{{phone}}
  • 和手机号进行拼接 固定的9位+获取的变量
    在这里插入图片描述
需要注意:round对随机数random()*100取整,可能只有一位

七、构建工作流

在使用“Collection Runner“的时候,集合的请求执行顺序就是请求在Collection中显示的排列顺序:

  • 依次在集合Collection中新建 “baidu”、“jd”、“B站”三个请求,请求url就是对应的网页地址。
    工作流
  • 选择集合,单击三个点按钮,点击Run Collection ,批量向接口发送执行请求,构建工作流。
    运行界面
  • 由实际运行结果可知,请求在Collection中显示的排列顺序,确实是集合的请求执行顺序:
    运行结果

但是,有时候我们不希望请求按照这样的方式去执行,可能是执行完第一个请求,再去执行第五个请求,然后再去执行第二个请求:那么在“Collection Runner”中该如何去构建不同的执行顺序呢?

在Postman中使用if else语句编写JS代码,可以改变集合顺序执行的速度,还以集合中baidu,jd,B站这三个接口为例,更改集合执行请求的顺序:

1.在集合中执行“jd”(京东)请求后,不再线性执行B站请求:在jd请求中的Tests中,输入以下代码

postman.setNextRequest(null);

JS代码更改请求顺序
2.选择集合,Run Collection,集合执行请求的顺序为:“baidu” —>“jd”,不再执行“B站请求”
批量执行请求结果的顺序

将字符串转为JSON格式

JSON.parse内置方法,将字符串转为json格式,以字符串{"name":"tom"}为例

var aaa='{"name":"tom"}';
// 直接取出字符串
console.log(aaa);
// JSON.parse内置方法,将字符串转为json格式,支持通过.获取value值
console.log((JSON.parse(aaa)).name);

在这里插入图片描述

八、授权Auth

Basic auth(基本认证)

API Key(API密钥)

Token Bearer(基于令牌的认证)

Basic auth(基本认证)

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值