IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> postman断言篇 -> 正文阅读

[开发测试]postman断言篇

Postman断言

一、postman提供断言方法

方法名

注解

Get an environment variable

获取一个环境变量(只会再活动的环境变量中搜索)

Get a global variable

获取一个全局变量

Get a variable

获取一个环境变量(全局变量和活动的环境变量中搜索)

Get a collection variable

获取一个集合变量

Set an environment variable

设置一个环境变量

Set a global variable

设置一个全局变量

Set a collection variable

设置一个集合变量

Clear an environment varlable

清除一个环境变量

Clear a global variable

清除一个全局变量

Clear a collection varlable

清除一个集合变量

Send a request

发送一个请求

Status code: Code is 200

检查状态码为200

Response body: Contains string

响应结果:包含指定字符串

Response body: JSON value check

响应结果:json检查

Response body: Is equal to a string

响应结果:等于指定字符串

Response headers: Content-Type header check

header报文检查

Response time is less than 200ms

响应时间小于200ms

Status code: SuccessfulPOST request

post请求成功的状态码

Status code: Code name has string

检查状态码名字(OK)

Response body: Converl XML body to a JSON Object

将xml主题转化为json对象

Use Tiny Validator for JSON data

为JSON data使用微小验证器

Get an environment variable(获取活动的环境变量variable_key)

pm.environment.get("variable_key");

Get a global variable(获取全局变量variable_key)

pm.globals.get("variable_key");

Get a variable(获取一个变量variable_key,搜索范围为全局和活动的环境变量)

pm.variables.get("variable_key");

Get a collection variable(获取一个集合变量variable_key)

pm.collectionVariables.get("variable_key");

Set an environment variable(设置一个环境变量,变量名variable_key,属性值variable_value)

pm.environment.set("variable_key",?"variable_value");

Set a global variable(设置一个全局变量,设置后global中真实存在,不用时需要进行删除)

pm.globals.set("variable_key",?"variable_value");

Set a collection variable(设置一个集合变量)

pm.collectionVariables.set("variable_key",?"variable_value");

Clear an environment varlable(删除环境变量为variable_key,该变量只能时当前选择的环境)

pm.environment.unset("variable_key");

Clear a global variable(删除全局变量variable_key)

pm.globals.unset("variable_key");

Clear a collection varlable(删除集合变量variable_key)

pm.collectionVariables.unset("variable_key");

Send a request(请求"https://postman-echo.com/get",并记录在log中)

pm.sendRequest("https://postman-echo.com/get",?function?(err,?response)?{
????console.log(response.json());
});

Status code: Code is 200(检查状态码是200)

pm.test("Status?code?is?200",?function?()?{
????pm.response.to.have.status(200);
});

Response body: Contains string(检查响应结果包含"hello,world")

pm.test("Body?matches?string",?function?()?{                                                          pm.expect(pm.response.text()).to.include("hello,world");
});

Response body: JSON value check(转json格式,检查value属性值为100)

pm.test("Your?test?name",?function?()?{
????var?jsonData?=?pm.response.json();
????pm.expect(jsonData.value).to.eql(100);
});

Response body: Is equal to a string(检查响应结果等于"response_body_string")

pm.test("Body?is?correct",?function?()?{
????pm.response.to.have.body("response_body_string");
});

Response headers: Content-Type header check(检查header中存在的类型"Conten-Type")

pm.test("Content-Type?is?present",?function?()?{
????pm.response.to.have.header("Content-Type");
});

Response time is less than 200ms(检查响应时间小于200毫秒)

pm.test("Response?time?is?less?than?200ms",?function?()?{
????pm.expect(pm.response.responseTime).to.be.below(200);
});

Status code: SuccessfulPOST request(检查post请求状态码为201或202)

pm.test("Successful?POST?request",?function?()?{
????pm.expect(pm.response.code).to.be.oneOf([201,?202]);
});

Status code: Code name has string(检查请求状态字符为OK)

pm.test("Status?code?name?has?string",?function?()?{
????pm.response.to.have.status("OK");
});

Response body: Converl XML body toaJSON(xml格式转为json格式)

var?jsonObject?=?xml2Json(responseBody);

Use Tiny Validator for JSON data(为JSON data使用微小验证器)

var?schema?=?{
????"items":?{
????????"type":?"boolean"
????}
};

var?data1?=?[true,?false];
var?data2?=?[true,?123];

pm.test('Schema?is?valid',?function?()?{
????pm.expect(tv4.validate(data1,?schema)).to.be.true;
????pm.expect(tv4.validate(data2,?schema)).to.be.true;
});

二、自定义的编写的断言方法

tests["响应时间小于1000毫秒"] = responseTime < 1000;
tests["响应状态码等于200"] = responseCode.code === 200;
tests["响应结果包含hello"] = responseBody.has("hello");

var data = JSON.parse(responseBody);
tests["value等于100"] = data.value ==== 100;
tests["value等于100或者200"] = data.value ==== 100 || data.value === 200;

console.log("打印log");

三、多接口运行

  1. 讲需要运行的接口放在一个collection(集合)中;

  2. run collection

  3. 勾选需要运行的接口

  4. 可选择select File

    1. json格式:[{"data":"1"},{"data":"2"},{"data":"3"},{"data":"4"}]

    2. text格式:

  1. run 集合名称

四、案例:批量运行时,一个接口需要用到另一个接口的数据时怎么实现?

第一个接口在Tests中将数据设置全局变量

pm.globals.set("variable_key",?"variable_value");

第二个接口只需要获取到这个全局变量就可以使用

pm.global.get("variable_key");

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 16:01:27  更:2021-12-11 16:02:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:37:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码