前戏

在我们测接口的时候,没有断言的接口都是耍流氓,因为做自动化的时候,不加断言我们不知道这个接口是执行成功了还是执行失败了,所以断言是做接口自动化必须的

断言

断言就是我们预期值和接口返回值是否一样,就和我们写功能测试用例时的预期结果一个意思

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使用--断言的更多相关文章

  1. postman Tests断言

    摘要:关于postman的断言方法很多,在网上随便搜寻下,能搜出一大推,什么牛鬼蛇神都有,让人眼花缭乱..甚至在应用时出现错误.Test断言都是根据js规则来写的,对于我这种不懂js语言的来说确实不友 ...

  2. postman的断言/环境变量的处理

    我们做接口测试都会有一个断言操作:也有一个变量被频繁使用,这时候可以用环境变量来处理 目录 1.postman之断言 2.postman之环境变量 1.postman之断言 同样以postman的登录 ...

  3. Postman—添加断言和检查点

    前言 postman断言是JavaScript语言编写的,在postman客户端指定区域编写即可. 断言会在请求返回之后,运行,并根据断言的pass\fail情况体现在最终测试结果中. 一.断言步骤 ...

  4. 三、postman测试断言设置语法

    postman的基本介绍跟基本的用法,在此就不做过多赘述,主要是受限于时间,网上有很多大神总结的已经算是很详尽了,给出链接并感谢大神的辛苦与奉献: postman基本用法:http://www.jia ...

  5. 四、postman增加断言

    预期和实际结果的判断 预期==实际:用例通过,写到报告里 预期!==实际:用例失败,写到报告里 一.例子演示 相当于首页右侧的10大每天的内容 url:http://www.v2ex.com/api/ ...

  6. ~postman基础断言方法

    postman官方文档:https://learning.getpostman.com/docs/postman/scripts/test_examples/ 断言1:检查响应主体是否包含字符串 // ...

  7. postman常用断言

    1.Code is 200 断言状态码是200 2.contains string 断言respoonse body中包含string 3.json value check (检查JSON值)

  8. postman(断言)

    一.断言 1.Code is 200 断言状态码是200 2.contains string 断言respoonse body中包含string 3.json value check (检查JSON值 ...

  9. postman之断言

    1 (状态码断言)和(返回内容断言)

随机推荐

  1. http://www.cnblogs.com/Javame/p/3632473.html

    http://www.cnblogs.com/Javame/p/3632473.html

  2. 任务45:Identity MVC:注册逻辑实现

    任务45:Identity MVC:注册逻辑实现 做登陆 在注册成功直接进行登陆,使用SignIn 这里的signIn实际上是HttpContext.Signin的封装 await _signMana ...

  3. bash 脚本编程七 将命令输出保存到变量中(转载)

    转自:http://blog.csdn.net/csfreebird/article/details/7978699 `符号包含的命令执行完后,可以讲其输出结果保存到变量中 #!/bin/bash v ...

  4. java使用new Date()和System.currentTimeMillis()获取当前时间戳(转载)

    转自:http://www.cnblogs.com/wuchen/archive/2012/06/30/2570746.html 在开发过程中,通常很多人都习惯使用new Date()来获取当前时间, ...

  5. 与adb相关的问题,比如掉线问题、Android Studio 提示Session 'app':Error Installing APK、找不到设备

    这一篇帖子 会写的比较简单 不过相信大家也可能遇到这些问题   为了怕自己忘记  记录下来  顺便也和大家一起分享 描述:在一些机型上安装软件 提示卸载原先的软件  但是又安装不上新软件 DELETE ...

  6. bzoj 2599: [IOI2011]Race【点分治】

    点分治,用一个mn[v]数组记录当前root下长为v的链的最小深度,每次新加一个儿子的时候都在原来儿子更新过的mn数组里更新ans(也就是查一下mn[m-dis[p]]+de[p]) 这里注意更新和初 ...

  7. 手机测试用例-wap测试用例

    Software Test Case P/F comment tester test time P/F comment tester ID 功能描述 操作步骤 预期结果 备注 wap_001 wap ...

  8. PostgreSQL - 转义字符

    转载至:postgresql字符转义 前言 在PostgreSQL 9之前的版本中,可以直接使用反斜杠\进行转义:比如:\b表示退格, \n表示换行, \t表示水平制表符,\r标示回车,\f表示换页. ...

  9. div 四周都有阴影的写法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. POJ244Set Operation(bitset用法)

    Bryce1010模板 /* 题意:给出n个集合(n<=1000),每个集合中最多有10000个数, 每个数的范围为1~10000,给出q次询问(q<=200000), 每次给出两个数u, ...