接口测试工具 postman

postman 简介

在我们日常的测试工作中,接口测试其实很普遍,无论你是做什么测试,功能、自动化亦或是性能测试,都会或多或少接触到接口。在测试过程中,很多场景都需要测试人员针对某个接口进行测试,并针对不同类型的接口设计不同的测试方案,这时如果有一款功能强大的接口测试工具,就快速完成繁琐工作,大幅提升工作效率。

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。

用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。postman 网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。

postman 亮点

1.门槛低,上手快,脚本语言是 JS

2.自带各种代码模块、跨平台

3.免费版就已经非常强大了,支持 http,https 协议

4.有命令行版本 newman,方便放在服务器上运行

5.支持抓包,保存历史记录,多终端同步用例

6.支持读取数据文件 json,csv,支持 json Schema 校验

下载 postman

1> 、postman下载地址:

1.Postman for MAC

2.Postman for windows X64

3.Postman for windows X86

4.Postman for linux X64

5.Postman for Linux X86


2>. Postman官网下载地址:
https://www.getpostman.com/apps

安装 postman

注册用户

启动postman之后,提示要注册和登录

主界面 1

主界面

 

 知识点
    1、全局变量 & 环境变量
    2、接口关联:上一个接口的返回值作为下一个接口的参数 JSON.parse(responseBody)
    3、requesttest & test(response)断言
    4、列表嵌套字典
    5、列表转换成字符串 stringify(),字符串切割 split()
    6、时间戳生成 (new Date()).getTime()
    7、鉴权token登录  bearer[空格]tokenXXXXXXXXXXXXXXXXXXXXXXXX
    8、postman 控制台日志 console.log()
   

使用

1、创建一个文件夹 collections,将本次的接口全部保存到文件夹中

创建环境变量生产环境,用来存储url,username,password等参数,后续参数变化可直接修改环境变量即可,不需要到登录接口修改参数
如果有测试环境和生产环境的小伙伴,可直接创建2个环境变量,到时候直接切换就可以更改环境了。

如下图,点击设置icon添加环境或者全局变量,点击add/update

    全局变量:整个postman生效
    环境变量:当前文件夹生效
    作用范围全局>环境,使用方式{{变量名称}}
   

 

Postman执行接口测试

请求页签
  Params : get请求传参

authorization: 鉴权

headers: 请求头

Body: post 请求传参
        form-data : 既可以传键值对参数也可以传文件。

x-www-from-urlencoded: 只能够传键值对参数

raw : json , text , xml , html, javascript

binary : 把文件以二进制的方式传参。

pre-request-script: 请求之前的脚本。支持JavaScript语法。
tests: 请求之后的断言。支持JavaScript语法。
cookies : 用于管理cookie信息。

响应页签:
       Body: 接口返回的数据。
                Pretty : 以Json , html,XML....不同的格式查看返回的数据。

Raw: 以文本的方式查看返回的数据。
PreView. 以网页的方式查看返回的数据。

cookies: 响应的Cookie信息
Headers: 响应头
Test Results  断言的结果。

200 状态码
OK 状态信息
681MS 响应的时间


接口关联

pm.test("获取task_id", function () {
     var jsonData = pm.response.json();
     pm.globals.set("task_id", jsonData.task_id);

});
var data = JSON.parse(responseBody);
pm.environment.set("token", data.token);

 

内置动态参数以及自定义的动态参数

常用内置动态参数

变量名称描述例子
$guid 一个uuid-v4风格GUID "611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4"
    "3a721b7f-7dc9-4c45-9777-516942b98e0d"
    "22eca807-006b-47df-9511-e92e37f5071a"
$timestamp 当前UNIX时间戳(以秒为单位) 156275710715627571081562757109
$isoTimestamp 当前ISO时间戳(UTC为零) 2020-06-09T21:10:36.177Z
    2019-10-21T06:05:50.000Z
    2019-07-29T18:29:00.000Z
$randomUUID 随机的36个字符的UUID "6929bb52-3ab2-448a-9796-d6480ecad36b"
    "53151b27-034f-45a0-9f0a-d7b6075b67d0"
    "727131a2-2717-44ad-ab02-006587e947dc"



REF

https://blog.csdn.net/fxbin123/article/details/80428216

http://www.51testing.com/zhuanti/postman.htm

https://segmentfault.com/a/1190000019053034

https://blog.csdn.net/gozhuyinglong/article/details/109488295 (内置动态参数)

https://www.jianshu.com/p/46d44c09d94c

https://www.jianshu.com/p/97ba64888894

视频:

https://www.bilibili.com/video/BV11K4y1J7sh?p=13&spm_id_from=pageDriver

原文地址:https://www.cnblogs.com/emanlee/p/15768311.html