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、⾸先看下函数作⽤