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)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END