- 在之前的文章中介绍过postman中的两个脚本——pre-request script或test script,在这两个脚本中都有使用到pm对象。(pre-request script详细介绍、Test script详细介绍)
- pm对象是在postman的脚本中非常重要,也是十分常用的方法。
- 本篇主要介绍pm对象的使用方法操作接口请求。
下面内容涉及以下知识点:
(pre-request script详细介绍、console控制台详细介绍)
pm.request.url //接口URL
通过URL对象对接口URL进行访问和操作:
pm.request.url.getHost()
pm.request.url.getPath()
pm.request.url.getPath()
pm.request.url.getQueryString()
pm.request.url.getRemote()
pm.request.url.addQueryParams({key: "variable_key",value: "variable_value"})
//运行后添加的查询参数为 variable_key=variable_value
//删除单个查询参数
pm.request.url.removeQueryParams(“variable_key”) //运行后删除查询参数 variable_key
//删除多个查询参数
pm.request.url.removeQueryParams([“variable_key”,“variable_key2”]) //运行后删除查询参数 variable_key和variable_key2
pm.request.url.update("http://postman-echo.com/post")
//运行后添加的URL为 http://postman-echo.com/post
在pre-request script中使用上述方法,通过控制台查看运行之后的效果:

pm.request.headers //接口请求头列表
pm.request.headers.add({key: "variable_key",value: "variable_value"})
//运行后添加请求头参数为 variable_key=variable_value
pm.request.headers.all()
pm.request.headers.get("variable_key")
pm.request.headers.has("variable_key")
pm.request.headers.clear()
pm.request.headers.upsert({key: "variable_key",value: "variable_value"})
pm.request.headers.remove("variable_key")
pm.request.headers.contentSize()
pm.request.headers.count()

pm.request.headers.each(function(i) {console.log(i)}) //返回请求头列表里每一个参数,并可以通过函数处理参数
pm.request.headers.filter({value: "value_1"})//过滤器,根据条件返回对应的请求头参数。此方法的返回结果为数组,只要符合条件的参数都会返回。
pm.request.headers.find({value: "value_1"}) //查找请求头参数,返回符合条件的参数。此方法只会返回第一个匹配的结果。
pm.request.headers.idx(0) //传入整数,返回请求头参数列表中对应位置的参数
pm.request.headers.insert({key: "header_3",value: "value_3"},"header_1") //插入一个请求头参数,默认插入在末尾,如果第二个参数传入请求头参数的key,也可以插入这个请求头参数之前。
pm.request.headers.insertAfter({key: "header_3",value: "value_3"},"header_1") //与insert类似,不一定的是这个方法是插入在指定参数之后
pm.request.headers.prepend({key: "header_3",value: "value_3"})//在请求头列表的第一位添加请求头参数
pm.request.headers.toObject() //以Object形式返回请求头列表
pm.request.headers.toString() //以字符串形式返回请求头列表
请求body各个类型的介绍可以参考专栏之前的文章:
(请求body类型介绍与配置)
pm.request.body //接口请求头列表
pm.request.body.isEmpty()
pm.request.body.toJSON()
pm.request.body.mode
pm.request.body.urlencoded
pm.request.body.formdata
pm.request.body.file
pm.request.body.graphql
pm.request.body.raw
pm.request.body.formdata.count()
pm.request.body.formdata.add({key: "key",value: "value"})
pm.request.body.formdata.append({key: "key",value: "value"})
pm.request.body.formdata.all()
pm.request.body.formdata.toJSON()
pm.request.body.formdata.clear()
pm.request.body.formdata.get("key")
pm.request.body.formdata.has("key")
pm.request.body.formdata.remove("key")
pm.request.body.formdata.upsert({key: "key",value: "value"})
pm.request.body.formdata.each(function(i) {console.log(i)})
console.log("过滤器:",pm.request.body.formdata.filter({value: "value_"}))//过滤器,根据条件返回对应的参数。此方法的返回结果为数组,只要符合条件的参数都会返回。
console.log("查找:",pm.request.body.formdata.find({value: "value_"})) //查找参数,返回符合条件的参数。此方法只会返回第一个匹配的结果。
console.log("获取排在第x位的参数:",pm.request.body.formdata.idx(0)) //传入整数,返回请求头参数列表中对应位置的参数
pm.request.body.formdata.insert({key: "body_3",value: "body_3"},"body_") //插入一个参数,默认插入在末尾,如果第二个参数传入参数的key,也可以插入这个请求头参数之前。
pm.request.body.formdata.insertAfter({key: "body_4",value: "body_4"},"body_3") //与insert类似,不一定的是这个方法是插入在指定参数之后
pm.request.body.formdata.prepend({key: "body_0",value: "body_0"})//在参数列表的第一位添加请求头参数
console.log("参数列表(Object):",pm.request.body.formdata.toObject()) //以Object形式返回参数列表
pm.request.body.raw.toString() //以字符串的形式返回参数
pm.request.body.raw.toUpperCase() //将字符串中的所有字母字符转换为大写。
pm.request.body.raw.trim() //从字符串中删除前导空格和尾随空格以及行终止符。
pm.request.body.raw.toLowerCase() //将字符串中的所有字母字符转换为小写。
pm.request.body.raw.split() //使用指定的分隔符将字符串拆分为子字符串,并将其作为数组返回。
pm.request.body.raw.slice() //返回字符串的一部分。
pm.request.body.raw.search() //在正则表达式搜索中查找第一个子字符串匹配项。
pm.request.body.raw.replace() //使用支持字符串内替换的对象替换字符串中的文本。
pm.request.body.raw.match() //匹配支持匹配的字符串或对象,并返回数组包含该搜索的结果,如果未找到匹配项,则为空。
pm.request.body.raw.length //长度
pm.request.body.raw.indexOf() //在字符串中搜索关键字,返回关键字第一次出现的位置。
pm.request.method //接口请求头列表
关于pm.request的实际运用也可以参考专栏另一个篇文章:
实战:pre-request script加密接口请求参数(AES、MD5)
//设置请求参数模式
pm.request.body.mode = "raw"

pm.request.body.mode= "raw"//body的模式
pm.request.body.raw = "raw_value,raw_value2" //设置raw参数

本篇文章姊妹篇:
Postman进阶篇(十二)-在脚本中使用pm对象访问接口响应数据(pm.response.*)
零基础入门接口功能测试教程-目录
—————————————————————————————————
postman系列文章内所使用的示例文件已经上传到了本人运营公众号【软件测试必备技能】

有需要可点击文章下发二维码,前往领取~
