一、postman测试脚本

测试脚本是在发送请求之后运行的,并且已经从服务器接收到响应。

二、测试举例

1、设置环境变量
pm.environment.set("variable_key", "variable_value");
2、将嵌套对象设置为环境变量
1 var array = [1, 2, 3, 4];
2 pm.environment.set("array", JSON.stringify(array, null, 2));
3
4 var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
5 pm.environment.set("obj", JSON.stringify(obj));
3、获取环境变量
pm.environment.get("variable_key");
4、获取环境变量(其值是严格化对象)
var array = JSON.parse(pm.environment.get("array"));
var obj = JSON.parse(pm.environment.get("obj"));
5、清除环境变量
pm.environment.unset("variable_key");
6、设置全局变量
pm.globals.set("variable_key", "variable_value");
7、获取全局变量
pm.globals.get("variable_key");
8、清除全局变量
pm.globals.unset("variable_key");
9、获取变量
pm.variables.get("variable_key");
10、检查响应体是否包含字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
11、检查响应体是否等于字符串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
12、检查JSON值
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
13、内容类型存在
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
14、响应时间小于200毫秒
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
15、状态代码为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
16、代码名包含字符串
pm.test("Status code name has string", function () {
pm.response.to.have.status("Created");
});
17、成功后请求状态代码
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
18、为JSON数据使用TinyValidator
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;
});
19、解码BASE64编码数据
var intermediate,
base64Content, // assume this has a base64 encoded value
rawContent = base64Content.slice('data:application/octet-stream;base64,'.length); intermediate = CryptoJS.enc.Base64.parse(base64content); // CryptoJS is an inbuilt object, documented here: https://www.npmjs.com/package/crypto-js
pm.test('Contents are valid', function() {
pm.expect(CryptoJS.enc.Utf8.stringify(intermediate)).to.be.true; // a check for non-emptiness
});
20、发送异步请求
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
console.log(response.json());
});
21、将XML体转换为JSON对象
var jsonObject = xml2Json(responseBody);

最新文章

  1. ENode框架Conference案例分析系列之 - 订单处理减库存的设计
  2. 【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩
  3. 使用js批量选中功能实现更改数据库中的status状态值(批量展示)
  4. win8_64下安装paramiko
  5. Almost Sorted Array
  6. C++中默认构造函数中数据成员的初始化
  7. 如何提交docker镜像到DockerHub
  8. Linux Systemcall Int0x80方式、Sysenter/Sysexit Difference Comparation
  9. php--如何解决网站分页导致的SEO问题
  10. winform 发布应用程序 提示 “未能注册模块(程序路径)\ieframe.dll”
  11. Axel linux下多线程下载工具
  12. 动态规划(计数DP):JLOI 2016 成绩比较
  13. HTML5 <a>标签download 属性
  14. int main(int argc,char *argv[])参数的应用
  15. SQLServer之DEFAULT约束
  16. C# GDI+绘制一维条码打印模糊的解决办法
  17. xss之cookie窃取
  18. 记录 Ext 日历月份选择控件bug解决过程结果
  19. Individual P1: Summary
  20. python处理转义字符

热门文章

  1. ua5.4源码剖析:三. C++与Lua相互调用
  2. 【学习笔记】QT从入门到实战完整版(基础控件)(4)
  3. Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便
  4. Pycharm中图标的含义
  5. 从零开始,打造属于你的 ChatGPT 机器人!
  6. python3使用requests模块发https请求,提示caused by ssl error, can't connect to https url because the ssl module is not available
  7. Window10环境下,Stable Diffusion的本地部署与效果展示
  8. 研发效能DevOps推荐书单
  9. JavaSE 对象与类(二)
  10. python 依据IP查找其所属网段