利用 Postman 中 Tests 断言校验返回结果

# 前言  
Postman目前是一款很火的接口测试工具,它有着非常强大结果判断能力。  
为什么说强大呢,因为Postman有自带的校验脚本,根本不需要我们去学习JS脚本语言,对于代码能力为0的各位测试小伙伴来说,特别的友好。  
![](/uploads/photo/2019/4cfd7a5e-86f9-469c-bca0-373c4b4ae68d.png!large)
通过Tests的代码校验,可以很快的得到结果判断。如果校验通过,则断言为PASS,如果校验失败,则断言为FAIL

#### Response body:Contains string (校验返回结果中是否包含某个字符串)
代码如下:  
pm.test("Body matches string", function () {  
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");  
});  
![](/uploads/photo/2019/57d32bef-2e0c-4abc-9cee-f82ab713a9bb.png!large)  
***例子***:  
![](/uploads/photo/2019/f6cd2f09-eb38-4bd8-b723-2d0509c9c0c0.png!large)
***结果***:  
![](/uploads/photo/2019/41c988a3-fb78-4419-bfaf-bc58990c9dfe.png!large)

#### Response body:Is equal to a string (校验返回结果是否等于该字符串)  
***注意***:
这个校验,必须是接口的返回结果与字符串要一模一样。  
代码如下:  
pm.test("Body is correct", function () {  
    pm.response.to.have.body("response_body_string");  
});  
![](/uploads/photo/2019/c75639e8-aa42-4afe-afef-3e065ad69e5a.png!large)
***例子***:  
![](/uploads/photo/2019/46e0a316-d122-4953-8529-6e46b752eae5.png!large)
***结果***:
![](/uploads/photo/2019/6ab77c8f-69a7-4a30-82ac-346ddf2c5587.png!large)

####  Response body:JSON value check(校验返回结果中某个字段值是否等于某个值)
代码如下:  
pm.test("Your test name", function () {  
//设置jsonData变量用来接收postman的json格式的返回数据  
var jsonData = pm.response.json();  
//判断返回数据中,msg字段是结果是否为OK  
//此处与需要注意一下json格式,jsonData为整个接口的返回数据,jsonData.msg是第一层级字段  
pm.expect(jsonData.value).to.eql(100);  
});  
***例子***:
![](/uploads/photo/2019/1bcf0c59-c6ef-4d26-92ac-8f50ee8165f0.png!large)
***结果***:
![](/uploads/photo/2019/9dec2ee5-81b8-4228-a7f0-c6bc562686b4.png!large)

####  Response header:Content-type header check(校验响应头是否包含某个值)
代码如下:  
pm.test("Content-Type is present", function () {  
    pm.response.to.have.header("Content-Type");  
});  
![](/uploads/photo/2019/470346f6-89c7-4ece-bf8f-893a28972979.png!large)

***例子***:
![](/uploads/photo/2019/39c00bf5-b812-4307-8d2d-b0c4ec8c92f5.png!large)
***结果***:
![](/uploads/photo/2019/dc466e6c-190f-4027-9bbb-c970ed53d81e.png!large)

####  Response time is less than 200ms(校验响应时间是否少于200ms(毫秒))
代码如下:  
pm.test("Response time is less than 200ms", function () {  
    pm.expect(pm.response.responseTime).to.be.below(200);  
});  
![](/uploads/photo/2019/470346f6-89c7-4ece-bf8f-893a28972979.png!large)

***例子PASS***:
![](/uploads/photo/2019/63068515-32aa-4ba5-b6e7-569d99e67b1b.png!large)
***例子FAIL***:
![](/uploads/photo/2019/e287088a-2fdc-4c3b-ae59-0da25c6f3e97.png!large)

####  Status code:Code is 200(校验响应头是否包含某个值)
代码如下:  
pm.test("Status code is 200", function () {  
    pm.response.to.have.status(200);  
});
![](/uploads/photo/2019/a98e3828-5108-4336-95c5-5a47d87a4dd3.png!large)

***例子PASS***:
![](/uploads/photo/2019/81e9dc67-fb37-4a9a-a89e-9c7019eb2a91.png!large)
***例子FAIL***:
![](/uploads/photo/2019/e4acd702-c76a-4ebd-88e3-964da69da989.png!large)

## 至此,Postman断言的多种方式已经学习完毕。加油!!

原文地址:https://www.cnblogs.com/zymnstlm/p/11761573.html

时间: 2024-11-09 06:13:18

利用 Postman 中 Tests 断言校验返回结果的相关文章

jQuery表单验证插件----利用jquery.metadata.js将校验规则写到控件中

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面. 三.需要改写触发校验的方式. $("#commentForm").validate({meta: "validate"}); 四.详细代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

Postman中get

一:接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性. 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保障产品质量,同时越早的发现底层问题,修改和维护的代价也越小. 怎样做接口测试:接口测试时主要通过工具或代码模拟http请求的发送与接收.工具如:postman.jemter.java+httpclient等.也可以用接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断. 接口

利用LoadRunner判断HTTP服务器的返回状态

利用LoadRunner判断HTTP服务器的返回状态第一种方法:是利用LR的内置函数web_get_int_property.举例:#include "web_api.h"Action(){int HttpRetCode;web_url("网易",       "URL=http://www.163.com",       "TargetFrame=_TOP",       LAST);HttpRetCode = web_ge

Struts2中动态的指定返回的结果集

1.在Struts2中,可以在struts.xml配置文件中动态的指定返回的结果集.用${属性名}的方式取得Action类中的属性,在服务端判断好相应的跳转路径,然后存到变量里,然后再在struts.xml配置文件中用ognl表达式 ${属性名} 这种方式取出来,可以极大的增加配置文件的灵活性.接下来用一个例子来介绍如何动态的指定返回的结果集. 注:其中一定要为动态结果的保存值设置set和get方法. 2.首先,新建一个Struts2项目,项目名为RegisterResult,项目结构如下图所示

转:C++中临时对象及返回值优化

http://www.cnblogs.com/xkfz007/articles/2506022.html 什么是临时对象? C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象. 通常出现在以下两种情况: (1)为了使函数调用成功而进行隐式类型转换的时候. 传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象,当函数返回时临时对象即自动销毁.如下例: //计算字符ch

利用C#中的反射机制来实现关机插件

插件编程技术 插件是指遵循一定的接口规范.可以动态加载和运行的程序模块.利用反射的动态加载代码能力,可以很容易的实现插件, 插件编程的要点是使用接口来定义插件的功能特征.插件的宿主程序通过接口来确认.装载和执行插件的功能,实现插件功能的所有类都必须实现定义插件的接口. 1.首先定义一个关机的接口 IShut,生成程序集,并在UI层(Winform窗体)来添加引用 public interface IShut { string Name { get; } void ShutDownCPU(int

利用Linux中的计划任务+PHP网页程序(转)

利用Linux中的计划任务+PHP网页程序,实现对web服务器运行状况的监测[每5分钟监测一次,并邮件提醒]一.我的监测服务器环境:rhel5.5+apache2.2+php5二.功能描述:写一个PHP页面,实现如下功能:请求要监控的WEB服务器的某一个页面的内容,如果返回不到数据,或者返回的数据里没有包含我期望的代码[用于自定义错误页面时的情况],那我就认为WEB服务出问题了[宕机或者遭到内容改写攻击],然后就发送一个邮件出来,这个邮件可以和手机进行绑定[139邮箱可以做到]而我在计划任务里去

[转] C++中临时对象及返回值优化

http://www.cnblogs.com/xkfz007/articles/2506022.html 什么是临时对象? C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象. 通常出现在以下两种情况: (1)为了使函数调用成功而进行隐式类型转换的时候. 传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象,当函数返回时临时对象即自动销毁.如下例: //计算字符ch

MySQL 整型字段中查询字符串,返回了所有为0的结果

在MySQL中,在整型字段中查询字符串,返回了所有为0的结果,应该返回null或空. 例如表结构信息: CREATE TABLE `t` (   `name` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,   `id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 表中数据: mysql> select id from t