pm的脚本断言库默认似乎是集成chaijs的。所以重点也要掌握chaijs的用法,其实和其他断言库类似。玩着玩着就会了。推荐看看 简书 chaijs 中文文档

传送门:

# pm 脚本的教程
https://learning.getpostman.com/docs/postman/scripts/test_scripts/ # pm 沙盒环境的一些 api
https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/ # chaijs 官方 github
https://github.com/chaijs/chai # 简书 chaijs 中文文档
https://www.jianshu.com/p/f200a75a15d2 # chaijs 官方文档
https://www.chaijs.com/api/ # qq 邮箱设置白名单
noreply@notifications.getpostman.com
# 可以呼出chrome dev tool,所以test脚本中可以使用console.log
ctrl + shift + i

判断数组长度

pm.test("返回数组长度必须大于0", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.length.above(0);
});

判断是否拥有属性

pm.test("对象应该拥有指定7个属性", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property("attitude");
pm.expect(jsonData).to.have.property("inefficient");
pm.expect(jsonData).to.have.property("plug");
pm.expect(jsonData).to.have.property("notOpen");
pm.expect(jsonData).to.have.property("window");
pm.expect(jsonData).to.have.property("hardware");
pm.expect(jsonData).to.have.property("inconvenient");
pm.expect(jsonData).to.have.property("other");
});

但这种写法太冗余了,可以更灵活的书写

// have.all.keys:目标对象必须且仅能拥有全部传入的属性名(不能多,不能少)
// contains.all.keys:目标对象必须至少拥有全部传入的属性名,但是它也可以拥有其它属性名(只能多,不能少)
// have.any.keys:目标必须至少存在一个传入的属性名才能通过测试(至少一个)
pm.test("对象应该拥有指定7个属性", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.all.keys("attitude", "inefficient", "plug", "notOpen", "window", "hardware", "inconvenient", "other");
});

postman 脚本学习的更多相关文章

  1. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  2. 06- Shell脚本学习--其它

    Shell输入输出重定向 Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 输出 ...

  3. 05- Shell脚本学习--函数

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. 函数定义 Shell 函数的定义格式 ...

  4. 04- Shell脚本学习--条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  5. 03- Shell脚本学习--字符串和数组

    字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似: 单双引号的区别: 双 ...

  6. 02- Shell脚本学习--运算符

    Shell运算符 Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 算术运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 aw ...

  7. 01- Shell脚本学习--入门

    简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少 ...

  8. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  9. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

随机推荐

  1. VMware虛擬化技術實作問答

    http://www.netadmin.com.tw/article_content.aspx?sn=1202130002&ns=1203280001&jump=3 Q4:啟用VMwa ...

  2. QtWebkit包含的类简介

    前言 WebKit从Qt 4.4开始被作为一个Module被集成到Qt中.简单的说,Qt webkit就是Qt对Apple公司webkit的支持而开发的库,主要包括以下几个类: QWebDatabas ...

  3. Hive表的建立和导入导出数据

    Hive是Hadoop的常用工具之一,Hive查询语言(HiveQL)的语法和SQL类似,基本实现了SQL-92标准. 1. 表的建立 编写以下的文件: USE test; DROP TABLE IF ...

  4. time series review

    https://pdfs.semanticscholar.org/fc9c/1a94a15dd44c8c61b3e4841ecb9505f8cd37.pdf https://edoc.hu-berli ...

  5. ReactNative踩坑日志——页面跳转之——Undefined is not an Object(evaluating this2.props.navigation.navigate)

    页面跳转时,报  Undefined is not an Object(evaluating this2.props.navigation.navigate) 出错原因:在一个页面组件中调用了另一个组 ...

  6. Shell编程初步

      一:Hello World 新建一个文件,命名时以 .sh 为后缀.每个bash文件开头第一行表名文件类型: #!/bin/bash 然后在下面输入代码. 比如输出hello world: #!/ ...

  7. OpenCV实现任意大小图片的合并(转)

    OpenCV实现图像合并主要有两种方法 方法一:使用Mat.push_back方法将列数相同的图像加到最后一行 方法二: 主要思路是将图像拷贝到待合并图像的感兴趣区域 (1)新建一个要合并的图像(容器 ...

  8. iOS变量定义在 .h 还是 .m 中

    前言 曾经我定义变量一直都是定义在.h文件里.后来看别人的代码,发现非常多人都把一些变量定 义在.m文件里. 后来我自己试了一把,发现变量既能够定义在.h文件里也能够定义在.m文 件中,尽管这是个非常 ...

  9. log4j2的xml的配置样例

    log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status ...

  10. Spring+Quartz实现动态添加定时任务

    发布时间:2018-12-03   技术:spring4.0.2+quartz2.2.1   概述 在最近工作中,由于涉及到定时任务特别多,而这些工作又是由下属去完成的,在生成环境中经常会出现业务逻辑 ...