【Postman入门指南】

前言

Postman 提供了测试 API 的友好界面和功能,使用简单便捷,安全可靠。

目录

前言

一、Postman安装

二、Postman的基础功能

三、Postman的进阶功能


一、Postman安装

1、Postman安装

Postman在2018年之后不再支持浏览器版本,下载客户端,安装即可使用。

下载网址:Download Postman | Get Started for Free

2、界面导航常用功能说明

二、Postman的基础功能

1、发起一个接口请求

如果你是第一次使用Postman发送请求,下面这个例子可以作为一个最基本的入门,可以帮我们建立一个初始印象 。

a. 打开Postman,点击“➕”打开一个新的请求页。

b. 在请求的URL处输入请求地址:http(s)://域名/端口/地址。

c. 选择接口请求方式(常用的:get、post、put、delete、head这几种请求)

接口请求的类型:get、post、put、patch、delete、copy、head、options、link、unlink、purge、lock、unlock、propfind、view。

d. 点击Send按钮,成功完成一个接口请求流程。

e. 请求完成,Response窗口会返回响应信息,一般默认为json数据类型,可手动切换数据类型。

 (示例:请求一个接口)

2、返回数据格式解析及返回值传递

  • 接口请求一般返回的数据格式为string或json,以json格式为示例:
{
    "code": xxx,     #响应状态码 1xx-信息提示 2xx-成功 3xx-重定向 4xx-客户端错误 5xx-服务器错误
    "msg": "ok/这是一个接口返回信息",     #返回的信息
    "result": {
        "test": xxx,    #数据
    }
}

状态码总结参考:响应状态码大全https://pulledup.blog.csdn.net/article/details/112306593?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-112306593-blog-105916282.235%5Ev27%5Epc_relevant_t0_download&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-112306593-blog-105916282.235%5Ev27%5Epc_relevant_t0_download&utm_relevant_index=2

  • 如何提取接口返回值,并作为全局变量
//将数据解析成json格式
var data=JSON.parse(responseBody);
//获取result中的"test"的值
var value =data.result.test;
//设置A成全局变量
pm.globals.set("A", value);

 
//或者使用这种方式
var jsondata = pm.response.json();
var value =jsondata.result.test;
pm.globals.set("A", value);

//使用时直接使用{{变量名}},即:{{A}}

  • Postman从响应数据中提取值的方法
#从json中提取
var jsonData =JSON.parse(responseBody);
#从html的body中提取
var jsonObject = xml2Json(responseBody);
#从html的Header中提取
var value = postman.getResponseHeader("KeyName");
pm.environment.set("A",value);

  • 下一个接口中使用'{{}}'引用

3、Postman中如何设置参数化

当某一接口需要验证大量的测试数据,使用参数化批量处理是比较高效、可塑性强的方式。Postman中参数化的形式主要有三种:

  • 内置变量实现:内建变量为postman自带的系统变量,但是不能进行精确化的对比。

更多内置变量参考:Postman内置变量详解 内建变量一般放在request里。

示例:当需要验证多个用户给用户A发送批量消息后,用户A接收后查看消息内容或app性能是否有异常。

这个需求中,发送用户可以是随机的,且华语服测试服的uid区间刚好涵盖了内置函数$randomint (0-1000)的区间,即可以之间使用内置函数$randomint进行参数化。如果担心区间内存在uid不存在的情况,可以简单加个状态码断言打印下执行日志。

 (ps:内置函数可能会随机取到相同值或者取到的值不符合预期,需要提前评估考虑下)

  • 预前置脚本/预请求(pre- request Script)使用代码实现

单接口执行顺序:Pre-request Script → request → response → Tests。

接口测试请求前,会先执行pre- request Script的代码,然后发送请求,再断言。pre- request Script的代码与接口不绑定,可以设置为全局变量给其他接口复用,提高了可塑性。

示例:Pre-request Script先定义手机账号并生成获取,把生成手机账号设置为全局变量后传入请求参数中,然后在Tests中进行断言。

(区域内随机生成手机账号)

(执行脚本,获取动态变量值)

  • 引用外部文件测试数据的方式

postman支持从外部文件读取测试数据参数化,支持csv 、 json 格式。

示例:

curl --location 'https://{{域名}}/dolls_lottery/draw_lottery' \
--form 'uid="{{uid}}"' \ 
--form 'coin="{{coin}}"' \
--form 'num="{{num}}"' \
--form 'mode="{{mode}}"'

参数化数据:

//json格式
[
  {
  "uid":"365",
  "coin":"2000",
  "num":"10",
  "mode":"1"
},
{"uid":"3654","coin":"200","num":"1","mode":"1"}
]

//CSV格式
uid,coin,num,mode
365,2000,10,1
3654,200,1,1

三、Postman的进阶功能

1、批量执行接口

Postman中接口的批量执行是以串行的方式执行,并不是并发执行。批量执行需要使用用例集(Collection)来管理和维护。

操作步骤:

    • 单接口调试:参数和响应体对应关系
    • 批量数据准备:csv或json格式
    • Collection中创建接口(集),设置变量参数化 {{xxx}}
    • 设置Collection执行参数,并执行用例集
    • 查看运行结果:Run results和Console
    • 导出测试用例集
    • 生成测试报告:操作命令:“newman run 用例集名称.json -d 数据文件名.csv/.json -r html --reporter-html-export 报告名称.html”

2、性能测试

Postman不是专业的性能测试工具,但可以简单的进行接口压力测试和API测试。

  • 接口压力测试方式

利用批量执行功能,我们可以修改Collection的执行参数:lterations、delay,并通过Tests断言判断接口性能指标:Response time、Response size。

 //断言响应时间200ms

pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });

  • API测试:将测试接口建立到一个Collection分组,通过Tests断言API执行结果,验证API的响应。
//断言状态码
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

//断言响应数据中:“xxx”是否为“指定内容”
var jsonData = Json.parse(responseBody);
tests["Checking xx parameter from Json data"] = jsonData.xxx === "指定内容"

3、接口自动化功能

接口数量越来越多,且接口之间互相依赖时,接口测试流程就会变得十分繁琐,且容易出错;我们可以使用postman进行接口自动化测试。

操作步骤:

  • 项目配置:完整的系统往往拥有许多模块和接口,因此推荐建议一个集合(Collection)来方便管理。
  • 环境配置:准备配置环境变量和全局变量。
  • 接口配置:配置接口请求(Request)。
  • 测试脚本:配置请求脚本(Pre-request Script)和测试脚本(Tests Script)。

测试脚本的执行顺序为:

  1. 集合的请求脚本(Pre-request Script)
  2. 文件夹的请求脚本(Pre-request Script)
  3. 请求的请求脚本(Pre-request Script)
  4. 执行请求
  5. 集合的测试脚本(Tests Script)
  6. 文件夹的测试脚本(Tests Script)
  7. 请求的测试脚本(Tests Script)
  • 全流程测试(Runner):梳理业务流程-调整接口调用顺序。
  • 设置Monitor定时任务:以指定的时间间隔自动化运行 Collection 里的测试脚本。

  • 生成测试结果:可以下载命令行工具Newman搭配jenkins、Travis CI等自动化集成工具使用。

需先安装 Node.js,查看命令:node -v

Newman安装命令:npm install -g newman

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值