postman脚本编写规则

 

PostMan脚本编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
设置环境变量
 
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");
 
获得一个环境变量(其值是一个字符串化的对象)
 
// These statements should be wrapped in a try-catch block if the data is coming from an unknown source.
 
var array = JSON.parse(pm.environment.get("array"));
 
var obj = JSON.parse(pm.environment.get("obj"));
 
清除一个环境变量
 
pm.environment.unset("variable_key");
 
设置一个全局变量
 
pm.globals.set("variable_key", "variable_value");
 
获取一个全局变量
 
pm.globals.get("variable_key");
 
清除一个全局变量
 
pm.globals.unset("variable_key");
 
获取一个变量
 
该函数在全局变量和活动环境中搜索变量
 
pm.variables.get("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);
 
});
 
Content-Type 存在
 
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
 
});
 
返回时间少于200ms
 
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]);
 
});
 
为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;
 
});
 
解码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
 
});
 
发送异步请求
 
此函数可作为预请求和测试脚本使用
 
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
console.log(response.json());
 
});
 
将XML主体转换为JSON对象

  

posted @   陈晓猛  阅读(208)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示