2023年11月27日发(作者:)
Postman:脚本应⽤_pm对象
pm对象
pm对象包含与正在执⾏的脚本有关的所有信息,并允许访问正在发送的请求的副本或接受到的响应,它还允许获取和设置环境变量和全局
变量
对象
对象包含与正在执⾏的脚本有关的信息,如请求名称、请求ID和迭计数等有⽤信息储存在该对象中
⽅法描述结果类型
ame输出脚本是在哪个脚本栏中执⾏的字符串类型
ion输出当前运⾏迭代的次数(从0开始)数值类型
ionCount输出计划运⾏的迭代总数数值类型
quest对象
1、quest对象允许异步发送HTTP/HTTPS请求。简单的来说就是:⽤户有⼀个繁重的计算任务或需要发送多个请求,那么现
例2_1:发送get请求并断⾔
quest("/get?name=mouse",function(err,res){
if (err){
(err);
s对象包含以下⽅法可供调⽤
⽅法 描述
("variableName")验证是否存在该全局变量
("variableName") 获取执⾏全局变量的值
("variableName","variableValue") 设置全局变量
("variableName") 清除指定的全局变量
()清除全部全局变量
ct()将全局变量以⼀个对象的⽅式全部输出
例3:
(("variableName"));
1、在Postman中,所有的变量都符合特定的层次结构。在当前迭代中定义的所有变量优先于当前环境中定义的变量,这些变量覆盖全局范
围内定义的变量,即迭代数据<环境变量<全局变量
2、les对象包含以下⽅法可供调⽤
⽅法 描述
("variableName") 获取变量中的某个值
t对象
1、t对象⽤来获取请求对象。但request中的参数只可读
2、在"Pre-request Script"选项卡下,t对象表⽰:将要发送的请求
3、在"Tests"选项卡下,t对象表⽰:上⼀个发送的请求(与在"Pre-request Script"选项卡下感觉没什么区别:都是同⼀个请求)
例3_1:s
se对象
//获取响应头状态码
var headers_code = ;
(headers_code);
//获取响应头状态码⽂本
var headers_reason = ();
(headers_reason)
例4_2:
var response_body = ();
(response_body);
//其实这个⽅法就是前⾯说的:将se⽅法返回的信息转换成字符串型
var body = se;
(());
例4_3:
1、因为返回的值为json格式,因此可以使⽤字典的"索引"和列表的索引
例4_4:顺便补充下python
1、如果返回结果是字符串型的:要获取字符串中具体某个键的值的话,不能使⽤遍历的⽅法,可以将字符串转为字典(前提是字符串是json
格式的)
2、个⼈感觉:不管是在python中还是在js中:只要请求返回的是⼀个json格式的,就可以直接⽤python或js处理字典的⽅式来进⾏处理了
import json
body = """
{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":2,"translateResult":[[{"src":"⼼有猛虎,细嗅蔷薇","tgt":"The heart has the tiger, fine smell rose"}]]}"""
result = (",",3)[3]
print(result)
print("--------------------")
"""
因为返回的是字符串型的。因此肯定就不能有字符串的遍历了:字符串⾥⾯的每⼀个符号、每⼀个字都是⼀个元素
因此可以⽤字符串的分⽚、正则表达式等
因为字符串是json格式的字符串,因此可以使⽤()⽅法将json格式的字符串转为字典,再⽤字典的索引
"""
new_body = (body)
print(new_body)
print(type(new_body))
print(new_body['translateResult'])
print("--------------------")
#字典的遍历:只会遍历出字典的键
例4_5:响应内容格式相互转换
1、():从⼀个字符串中解析出json对象
2、ify():从⼀个对象中解析出字符串
//返回json型响应
var body_json = ();
//将json格式的响应转为字符串
(ify(body_json));
(typeof(ify(body_json)));
//返回string型响应
var body_str = ();
//将字符串格式的响应转为json对象
((body_str));
(typeof((body_str)));
s对象
s对象包含⼀个与请求所创建的域相关联的Cookies列表
⽅法描述
("cookieName")检查请求的url站点是否存在cookie,返回值Boolean
("cookieName")获取存在的cookie的值
ct将请求的url站点中获取到的所有存在的cookie输出到⼀个对象中去
例5:
注:从上⾯例⼦的输出可以看出
1、()⽅法:是⽤于判断该请求域下是否存在指定的cookies,不存在或存在与其他请求域时,返回空
2、()⽅法:⽤于获取该请求域下指定键名的cookies的值,不存在或存在与其他请求域时,返回NULL
ionData对象
iterationData对象包含数据集运⾏期间提供的数据⽂件,主要⽅法有如下
("response should be okay to process", function () {
;//这种也是断⾔的⼀种
dy('error');
});
("Status code is 200", function () {
(200);
});
.*对象
通过对象属性,可以断⾔预定义的规则(判断当前请求响应的状态值)
拓展:
测试脚本
在Postman中关于测试脚本有不同的写法;且同样的断⾔也有不同的写法
例1:
//检查response body中是否包含某个string
("测试1:检查响应是否含有某个字符串", function () {
(()).e("⼼有猛虎,细嗅蔷薇");
});
tests["测试2:检查响应是否含有某个字符串"] = ("⼼有猛虎,细嗅蔷薇");
//检测JSON中的某个值是否等于预期的值
var data = (responseBody);
tests["测试3:某个值是否等于预期的值"] = ateResult[0][0].src === "⼼有猛虎,细嗅蔷薇";
//检查json中某个数组元素的个数(这⾥检测programs的长度)
var data = (responseBody);
tests["测试4:检查某个数组元素的个数"] = === 1;
获取值
1、本⽂章前⾯说过⼀个t对象,⽤该对象在获取headers信息时,会有点问题,因此这⾥介绍另⼀种
2、获取请求头可以使⽤这个⽅法,获取响应头可以使⽤ponseHeader⽅法
⽅法描述
在使⽤()⽅法进⾏数据转换时,报错:JSONError | Unexpected token 'o' at 1:2 [object Object] ^
1、⾸先看下函数作⽤


发布评论