postman使用--断言
前戏
在我们测接口的时候,没有断言的接口都是耍流氓,因为做自动化的时候,不加断言我们不知道这个接口是执行成功了还是执行失败了,所以断言是做接口自动化必须的
断言
断言就是我们预期值和接口返回值是否一样,就和我们写功能测试用例时的预期结果一个意思
pre-request Script(预置脚本)可以用来修改一些默认参数,在请求发送之前执行
test Scripr(测试脚本):当接受到响应之后,在执行脚本
还是我们上节讲的A接口,我们来断言返回值中是不是有zouzou666,如果有,则认为接口执行成功,没有则失败

在test里设置断言
pm.test("包含字符串",function(){
    pm.expect(pm.response.text()).to.include("zouzou666");
});

如果执行成功则在Test Results里显示PASS,那我们把断言改为失败试试

我们发现,断言失败会显示成FALL的,当然我们可以在Test下面添加多个断言
postman脚本执行顺序

也就是先执行最上层的文件夹里的pre-request Script,在执行它下面文件夹里的pre-request Script,在执行请求里的pre-request Script。在发送请求,在执行最上层的文件夹里的Tests,在执行它下面文件夹里的Tests,最后执行请求里的Tests
常用的断言
判断返回结果是不是在1s之内
pm.test("返回结果在1s之内",function(){
pm.expect(pm.response.responseTime).to.be.below(1000);
});
判断返回结果是不是在300ms左右
pm.test("判断返回结果在300ms左右",function(){
pm.expect(pm.response.responseTime).to.be.closeTo(300,200);
});在300ms的上下200ms,也就是100--500ms之间
断言返回的状态码是不是200
tests["返回状态码正确"]=responseCode.code===200;
pm.test("返回正确",function(){
    // pm.response.to.have.status(200);
    pm.response.to.be.ok;
})
pm.test("包含字符串",function(){
    pm.expect(pm.response.text()).to.include("@#sd1135");
});
pm.test("包含字符串",function(){
    pm.expect(pm.response.text()).to.include("38dd572dd9c14c73b7637893c0592aa7");
});
pm.test("包含字符串",function(){
    pm.expect(pm.response.text()).to.include("10");
});
设置环境变量
pm.environment.set("variable_key", "variable_value");
将嵌套对象设置为环境变量
var array = [1, 2, 3, 4];
pm.environment.set("array", JSON.stringify(array, null, 2)); var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
pm.environment.set("obj", JSON.stringify(obj));
获取环境变量
pm.environment.get("variable_key");
获取环境变量(其值是字符串化对象)
var array = JSON.parse(pm.environment.get("array"));
var obj = JSON.parse(pm.environment.get("obj"));
清除环境变量
pm.environment.unset("variable_key");
设置全局变量
pm.globals.get("variable_key");
清除全局变量
pm.globals.unset("variable_key");
检查响应主体是否包含字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
检查响应主体是否等于字符串
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
检查JSON值
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
内容类型存在
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});
响应时间小于200毫秒
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
状态代码是200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
代码名称包含一个字符串
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});
成功的POST请求状态代码
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
postman使用--断言的更多相关文章
- postman  Tests断言
		摘要:关于postman的断言方法很多,在网上随便搜寻下,能搜出一大推,什么牛鬼蛇神都有,让人眼花缭乱..甚至在应用时出现错误.Test断言都是根据js规则来写的,对于我这种不懂js语言的来说确实不友 ... 
- postman的断言/环境变量的处理
		我们做接口测试都会有一个断言操作:也有一个变量被频繁使用,这时候可以用环境变量来处理 目录 1.postman之断言 2.postman之环境变量 1.postman之断言 同样以postman的登录 ... 
- Postman—添加断言和检查点
		前言 postman断言是JavaScript语言编写的,在postman客户端指定区域编写即可. 断言会在请求返回之后,运行,并根据断言的pass\fail情况体现在最终测试结果中. 一.断言步骤 ... 
- 三、postman测试断言设置语法
		postman的基本介绍跟基本的用法,在此就不做过多赘述,主要是受限于时间,网上有很多大神总结的已经算是很详尽了,给出链接并感谢大神的辛苦与奉献: postman基本用法:http://www.jia ... 
- 四、postman增加断言
		预期和实际结果的判断 预期==实际:用例通过,写到报告里 预期!==实际:用例失败,写到报告里 一.例子演示 相当于首页右侧的10大每天的内容 url:http://www.v2ex.com/api/ ... 
- ~postman基础断言方法
		postman官方文档:https://learning.getpostman.com/docs/postman/scripts/test_examples/ 断言1:检查响应主体是否包含字符串 // ... 
- postman常用断言
		1.Code is 200 断言状态码是200 2.contains string 断言respoonse body中包含string 3.json value check (检查JSON值) 
- postman(断言)
		一.断言 1.Code is 200 断言状态码是200 2.contains string 断言respoonse body中包含string 3.json value check (检查JSON值 ... 
- postman之断言
		1 (状态码断言)和(返回内容断言) 
随机推荐
- 使用CompletableFuture+ExecutorService+Logback的多线程测试
			1. 环境 Java: jdk1.8.0_144 2. 背景 Java多线程执行任务时,Logback输出的主线程和各个子线程的业务日志需要区分时,可以根据线程池和执行的线程来区分,但若要把它们联系起 ... 
- Codeforces Round #436 (Div. 2) E. Fire(背包+记录路径)
			传送门 题意 给出n种物品,抢救第\(i\)种物品花费时间\(t_i\),价值\(p_i\),截止时间\(d_i\) 询问抢救的顺序及物品价值和最大值 分析 按\(d_i\)排序的目的是防止以下情况 ... 
- hdoj2859【DP基础】
			/* 看题解A的. 总结:小矩阵--> 大矩阵 dp[i][j]=min(t,dp[i-1][j+1]+1); */ #include <iostream> #include < ... 
- poj 1988 Cube Stacking【带权并查集】
			设s[x]为x所在栈里的个数,c[x]表示x下面有几个,合并的时候直接合并s,然后路径压缩的时候更新c即可 #include<iostream> #include<cstdio> ... 
- django接受表单
			from django.shortcuts import render from django.shortcuts import HttpResponse import os # Create you ... 
- Squid启动报:Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
			在squid.conf中添加 visible_hostname squid.packet-pushers.net 或者编辑/etc/hosts文件, 在该文件中制定主机IP地址与主机名的对应. 
- JAVA 运用流编程实现简单的"记事本"功能
			一.概要 1.功能介绍 2.实现的思路及步骤代码 3.完整代码 二.功能 运用IO流和Swing实现简单的记事本功能(打开.保存.退出) 三.思路及实现步骤 1.在构造函数中画出操作界面 //创建jt ... 
- Mysql多表联合更新、删除
			UPDATE snyts_user u INNER JOIN snyts_order o ON u.user_id = o.user_id INNER JOIN snyts_refund_order ... 
- random模块详解
			1.import random random·randint(a,b) 括号里是一个范围,random·randint()是取括号里范围的随机数. >>> import random ... 
- Hibernate核心接口和工作原理
			Hibernate核心接口和工作原理 Hibernate有五大核心接口,分别是:Session .Transaction .Query .SessionFactory .Configuration . ... 
