Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >快速上手postman测试

快速上手postman测试

作者头像
跑马溜溜的球
发布于 2020-12-07 06:50:34
发布于 2020-12-07 06:50:34
62503
代码可运行
举报
文章被收录于专栏:日积月累1024日积月累1024
运行总次数:3
代码可运行

0. test的构成

一个标准test的写法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("test name", function () {
    //测试逻辑
});

它由两部分构成:

  1. test name. 这个name会出现在你的测试报告中
  2. function. 这部分包含你的居体测试逻辑(解析数据,断言等等)

一个具体的例子如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("http code is 200", function () {
    //判断http返回码
    pm.response.to.have.status(200);
});

pm.test("response data is right", function () {
    //解析返回值
    var response = JSON.parse(responseBody);
        
    //通过断言判断返回值的正确性
    pm.expect(response.msg).to.eql("ok");
    pm.expect(response.code).to.eql(0);
});

1. 如何运行/查看一个test

1. 单个test
  • 在Tests窗口写测试
  • 点击send发送请求
  • 在Test Results窗口查看结果
2. 批量test

如下图所示,可以整体运行一个集合的中的全部测试

运行后可看到类似下图的测试结果

2. 一些常用的变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//响应的http code
pm.response.code

//请求响应时间, 单位ms
pm.response.responseTime,

//返回回数据的大小,包含header    
pm.response.responseSize,
    
//响应头,一个object
responseHeaders
//取Content-Type
responseHeaders['Content-Type']

//响应体,字串。如果服务端返回的是json,需要JSON.parse后才能得到对应的json对象
responseBody

//获取相应cookie值
pm.cookies.get(cookieName:String)

3. 常用断言

3.1 pm.expect

1. pm.expect(a).to.equal(b)

a,b严格相等,例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("response data is right", function () {
    var response = JSON.parse(responseBody);
    //response.code === 0
    pm.expect(response.code).to.eql(0);
});
2. pm.expect(a).to.deep.equal(b)

a,b为多层结构时,判断a,b相等。例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("deep equal", function(){
    var a = {
        num1:[1,1,1], 
        num2:[2,2,2]
    };
    var b = {
        num1:[1,1,1], 
        num2:[2,2,2]
    };
    
    pm.expect(a).to.deep.equal(b);   
});
3. pm.expect(object).to.have.property(key)

object中有属性key。例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("have property", function(){
    var object = {
        name:"ball",
        money:0,
        age:100
    }
    
    pm.expect(object).to.have.property('age'); 
});
4. pm.expect(a).to.include(‘b’)

a中包含b

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("include", function(){
    //a可以是字串
    var str = "this is a test";
    pm.expect(str).to.include('this');
    
    //a可以是数组,此时b只能是简单值,不能是array。若希望b为array,需要用members方法做断言。
    var ary = [1,2,3,4];
    pm.expect(ary).to.include(2);
    
    //a可以是是object
    var obj = {
        name:"ball",
        money:0,
        age:100
    };
    pm.expect(obj).to.include({age:100, name:"ball"});
});
5. pm.expect(a).to.be.below(b)

a小于b。例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//响应时间小于200ms
pm.expect(pm.response.responseTime).to.be.below(200);
6. expect(a).to.be.above(b)

a大于b。

更多断言,参见

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://learning.postman.com/docs/postman/scripts/test-examples/#assertion-library-examples
https://www.chaijs.com/api/bdd/

3.2 pm.response

1. pm.response.to.have.status(code:Number)

判断http返回码。例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//http code 200
pm.response.to.have.status(200);

2. pm.response.to.have.header(key:String, optionalValue:String)

判断响应头字段。例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//响应头中有Cache-Control,其值为no-cache
pm.response.to.have.header('Cache-Control', 'no-cache');  

更多使用参见

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://learning.postman.com/docs/postman/scripts/postman-sandbox-api-reference/#response-assertion-api-available-in-the-test-scripts

4. 引用沙箱中的js库

postman的测试中可以使用很多js库。具体参见

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://learning.postman.com/docs/postman/scripts/postman-sandbox-api-reference/

一个使用crypto-js做AES加密的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var crypto = require('crypto-js');
var uid = "999@qq.com";
var key = crypto.enc.Utf8.parse("112233");

var opt = {
    mode:crypto.mode.ECB, 
    padding:crypto.pad.Pkcs7
}

var userid = crypto.AES.encrypt(uid, key, opt);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
postman日记之断言篇
上帝:我记得有个故事,讲的是一个邮递员杀人的事情I remembered a particular story about a postman who was a murderer
测试小兵
2019/07/24
1.4K0
postman日记之断言篇
Postman系列之Tests断言
以下,主要介绍如何用Postman的Tests这个模块进行断言,包括Tests断言原理介绍、常用断言方法以及Tests断言实例。
可可的测试小栈
2020/03/31
1.1K0
Postman系列之Tests断言
接口测试工具简介!
接口文档定义:Apifox 遵循 OpenApi 3.0 (原Swagger)、JSON Schema 规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。
物立
2022/05/16
9130
快速掌握接口测试利器Postman
Postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何类型的http请求,支持GET/PUT/POST/DELETE等方法。Postman非常简单易用,可以直接填写URL,header,body等就可以发送一个请求,用来测试api接口非常方便。
吾非同
2020/10/23
1K0
Postman API测试工具 - 断言 基本使用(二)
PostMan工具断言 断言:诊断语言,检查点。检查返回的结果是否是正确。 怎么用利用Postman工具添加断言 常见的验证: 验证返回码必须是200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); 响应时间验证: pm.test("Response time is less than 200ms", function () { pm.expect(pm.respo
EXI-小洲
2022/12/19
5910
Postman API测试工具 - 断言 基本使用(二)
Postman使用完全指南
可以看到我的请求url中有个{{domain}},这是什么东西呢?这其实是环境变量,我们可以在如下设置环境变量
诺浅
2020/08/20
1.3K0
postman接口测试
postman提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE...),并且能附带任何数量的参数和 Headers.不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的Post Cloud用户还能够创建自己的Team Library用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队.
测试加
2022/03/24
1.1K0
postman接口测试
Postman教程-Pre-request Script和Tests脚本进阶
等价于response.text,表示接口请求的响应体,类型为string,如果返回的字符串是json格式的,可以使用JSON.parse()进行解析。
小博测试成长之路
2021/04/29
1.6K0
Postman教程-Pre-request Script和Tests脚本进阶
Postman接口测试工具详解
Postman可以在官方页面下载,支持Windows、macOS和Linux系统。下载并安装后,注册并登录Postman账号以便使用云端功能。
洛秋_
2024/07/11
4450
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
5.Content-Type是否为application/json(数据格式正确)
顾翔
2025/06/06
2590
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
postman使用教程8-设置断言(Tests脚本编写)
当一个接口发送请求有返回结果后,如何知道返回的结果符合预期?可以在 postman 里面的 Tests 写脚本断言符合结果符合预期。 Tests 是接口返回 response 之后的脚本操作,可以使用 JavaScript 为 Postman API 请求编写 Tests 脚本。
上海-悠悠
2021/05/17
1.6K0
postman使用教程8-设置断言(Tests脚本编写)
接口02_精通Postman接口测试
一、接口关联,接口依赖 下一个接口的参数是使用的上一个接口的返回值? 接口测试,接口自动化。 1.JSON提取器。(都是从返回值里面提取) 1 //javascript脚本,var定义变量 2 //打印responseBody返回值 3 console.log(responseBody) 4 //使用json提取器把responseBody返回值转化成一个字典。 5 var jd = JSON.parse(responseBody) 6 //提取access_token,并且设置为全局变量(就是在任何接口
测试小能手
2022/11/07
1.1K0
postman使用(三)
Postman 提供一个测试沙箱(Postman Sandbox) 测试沙箱是一个 JavaScript 执行环境,可以通过 JS 脚本来编 写 pre-request Script 和 test Script。
FunTester
2021/09/14
7750
浅谈接口测试—初步认识postman
 我们如果在命令行发送post请求,会很麻烦,效率不高。同时也不方便接口的管理,所以一些优秀的接口测试工具应运而出,postman就是绕不开的话题之一
顾翔
2020/11/03
5710
浅谈接口测试—初步认识postman
Postman教程-Pre-request Script和Tests脚本的介绍
前面章节解决了“请求本身”的问题,但“请求前后的动作”是怎样处理的呢?比如在发送一个请求前,需要获取当前时间戳,这就需要用到Pre-request Script的知识了。另外,似乎还忽略了一个非常重要的知识点,请求返回响应后,如何自动判断响应是否正确呢?这就需要用到Tests的知识。本章将重点介绍Pre-request Script和Tests的相关知识。
小博测试成长之路
2021/04/29
1K0
Postman教程-Pre-request Script和Tests脚本的介绍
接口测试|Postman设置断言
作为一款接口测试工 具,postman需要对发送请求后返回的结果是否正确做验证,在postman中通过 tests页签做请求的验证,也称为断言。
霍格沃兹测试开发Muller老师
2023/01/31
1.2K0
Postman变量与断言
在这么情况下,按照常规思路要么你需要维护两套环境的API,要么每次都手动一个个去修改URL,不管哪种选择都比较麻烦且低效,那么有没有比较的好的方法来解决这个问题呢?
清风穆云
2021/08/09
9490
一文学会postman
postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。
Meccer
2021/10/08
8300
最全的 postman 工具使用教程!收藏了
postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。
开发者技术前线
2021/09/14
37.6K0
接口调试神器:Postman 从入门到进阶教程(万字长文)!
松哥最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦。 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 来源:www.toutiao.com/i6913538714060800515 postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。 无论是开发人员进行接口调试,还是测试人员做接口测试,po
江南一点雨
2022/06/13
7K1
接口调试神器:Postman 从入门到进阶教程(万字长文)!
相关推荐
postman日记之断言篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档