所在位置:首页 → 软件测试 → postman之pm对象详解

postman之pm对象详解

发布: 更新时间:2022-10-23 21:00:01

pm对象包含与正在执行的脚本有关的所有信息,并允许访问正在发送的请求的副本或接受到的响应,它还允许获取和设置环境变量和全局变量

一、pm.info

方法描述结果类型
pm.info.eventName输出脚本是在哪个脚本栏中执行的字符串类型
pm.info.iteration输出当前运行迭代的次数(从0开始,请求第几次执行)数值类型
pm.info.iterationCount输出计划运行的迭代总数(每个请求迭代执行的次数)数值类型
pm.info.requestName 返回请求名字符串类型
pm.info.requestId 返回请求ID 字符串类型

二、pm.sendRequest

 pm.sendRequest对象允许异步发送HTTP/HTTPS请求。简单的来说就是:用户有一个繁重的计算任务或需要发送多个请求,那么现在可以在后台执行该逻辑。用户可以指定一个回调函数,并在底层操作完成时得到通知,而不是等待调用来完成(因为这会阻碍任何下一个请求)

pm.sendRequest("http://192.168.10.206:8099/rest/news/list.page?sortType=1&title=%E6%B5%8B%E8%AF%95&pageNum=1&pageSize=10&status=1",function(err,res){
    if(err){
        console.log(err);
    }else{
        id=res.json().data.records[0].id;  //这句话是获取查询新闻接口返回的body->data->records数据的第一个元素的id值
        pm.environment.set("id",id);  //将获取到的id的值设置为全局变量,方便在编辑新闻接口的body中使用
    }
})
console.log(pm.environment.get("id"));  //输出设置的全局变量的值,检验是否正确

三、管理变量

1.pm.global

global:全局变量,在postman中引用变量的形式必须为{{Variables}}的形式进行引用;

方法 描述
pm.globals.has("variableName")验证是否存在该全局变量
pm.globals.get("variableName") 获取执行全局变量的值
pm.globals.set("variableName","variableValue") 设置全局变量
pm.globals.unset("variableName") 清除指定的全局变量
pm.globals.clear()清除全部全局变量
pm.globals.toObject()将全局变量以一个对象的方式全部输出

这些方法全局变量、环境变量、集合变量、数据文件变量、变量都是通用的

2.pm.environment

环境变量

3.pm.collectionVariables

测试用例集的变量

4.pm.iterationData

数据文件集,参数化时传入的变量

5.pm.variables

1、在Postman中,所有的变量都符合特定的层次结构。在当前迭代中定义的所有变量优先于当前环境中定义的变量,这些变量覆盖全局范围内定义的变量,即迭代数据<环境变量<全局变量

2、调用:pm.variables.get("variableName") 获取变量中的某个值,全局变量和环境变量都可以获取到

四、管理请求与响应

1.pm.request

pm.request对象用来获取请求对象的所有信息

方法描述
pm.request 获取当前发起请求的全部headers
pm.request.url获取当前发起请求的url
pm.request.headers 数组的方式返回当前请求中的header信息

2.pm.response

pm.response对象包含响应有关的所有信息

方法描述
pm.response.code获取当前请求返回的状态码如200,404,500等
pm.response.reason() 当前请求成功返回OK
pm.response.headers以数组的形式返回当前请求成功后的response的headers
pm.response.responseTime获取执行此次请求的时间单位为ms
pm.response.text()以文本的方式获取响应里面的body的内容
pm.response.json() 将body里面的内容解析为一个json对象

3.pm.response.to.be

也可以用pm.response.not.be对象

方法描述
pm.response.to.be.info 检查响应码是否为1XX,如果是则断言为真,否则为假
pm.response.to.be.success 检查响应码是否为2XX,如果是则断言为真,否则为假
pm.response.to.be.redirection 检查响应码是否为3XX,如果是则断言为真,否则为假
pm.response.to.be.clientError 检查响应码是否为4XX,如果是则断言为真,否则为假
pm.response.to.be.serverError 检查响应码是否为5XX,如果是则断言为真,否则为假    
pm.response.to.be.error 检查响应码是否为4XX或5XX,如果是则断言为真,否则为假
pm.response.to.be.ok检查响应码是否为200,如果是则断言为真,否则为假
pm.response.to.be.accepted检查响应码是否为202,如果是则断言为真,否则为假
pm.response.to.be.badRequest检查响应码是否为400,如果是则断言为真,否则为假
pm.response.to.be.unauthorised检查响应码是否为401,如果是则断言为真,否则为假
pm.response.to.be.forbidden 检查响应码是否为403,如果是则断言为真,否则为假
pm.response.to.be.notFound检查响应码是否为404,如果是则断言为真,否则为假
pm.response.to.be.rateLimited 检查响应码是否为429,如果是则断言为真,否则为假

4.pm.response.to.have

方法 描述 
pm.response.to.have.
status(code:Number) 
根据状态码判断响应是否成功 pm.test("code = 200",function(){    pm.response.to.have.status(200);//检查响应状态码是否是200});
pm.response.to.have.
status(reason:String)
根据返回的状态值判断响应是否成功 pm.test("status = OK",function(){    pm.response.to.have.status("OK");//检查status是否是ok});
pm.response.to.have.
header(key:String)
根据response中的headers的key判断响应是否成功 pm.test("key = Date",function(){    pm.response.to.have.header("Date");//根据response headers的key,判断响应是否成功,也就是key中是否有我们所写的脚本的值});
pm.response.to.have.
header(key:String, optionalValue:String)
对response中的header中的key和value校验,判断响应是否成功 pm.test("header-Connection = keep-alive",function(){    pm.response.to.have.header("Connection","keep-alive");});
pm.response.to.have
.body()
获取响应返回的资源 
pm.response.to.have
.body(optionalValue:String)
对响应返回的body内容校验,判断响应是否成功pm.test("body is {msg:操作成功,code:200}",function(){    pm.response.to.have.body('{"msg":"操作成功","code":200}');});
pm.response.to.have
.body(optionalValue:RegExp) 
对响应返回的body进行正则校验,判断响应是否成功 
pm.response.to.have
.body(optionalValue:RegExp) 
判断响应返回的body是否是json,判断响应是否成功 
pm.response.to.have.
jsonBody(optionalExpectEqual:Object)
判断响应返回的body是否是json,并对json内容进行校验pm.test("body not have error",function(){    pm.response.to.not.have.jsonBody('error');})

五、pm.cookies

方法描述
pm.cookies.has("cookieName")检查请求的url站点是否存在cookie,返回值Boolean
pm.cookies.get("cookieName")获取存在的cookie的值
pm.cookies.toObject将请求的url站点中获取到的所有存在的cookie输出到一个对象中去
console.log(pm.cookies);  // 获取所有cokie
let type = pm.cookies.map((item) => {
          return item.name
 });   // 转化为Map对象,提取值
console.log(type)
标签:, ,
文章排行