postman之pm对象详解

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

一、pm.info

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

二、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)

原创文章,作者:三酷猫,如若转载,请注明出处:https://www.sankumao.com/4227.html

(0)
上一篇 2022年10月23日 下午5:25
下一篇 2022年10月23日 下午9:25

相关推荐

  • 使用Pymysql操作数据以及工具类封装

    数据库操作应用场景 接口自动化测试数据库主要应用场景? 1.校验测试数据 接口发送请求后明确会对数据库中的某个字段进行修改,但,响应结果中无该字段数据时。 如:ihrm删除员工接口…

    2022年8月28日
  • 使用JMeter来下载第三方插件

    说明:先下载JMeter插件管理工具包,再用此包下载JMeter插件 一、安装插件管理器 1.在Jmeter官网上下载插件管理器Plugins-manager.jar 下载地址:h…

    2022年9月18日
  • Pytest框架+Allure自动生成美观的测试报告!

    一、安装Allure 已安装可以跳过此步骤,没安装的可以按照下面教程安装: 二、安装Allure插件 安装pytest的allure插件:pip install allure-py…

    2022年9月10日
  • 7.测试用例设计方法之边界值分析法

    一、边界范围节点 选取正好等于、刚好大于、刚好小于边界的值作为测试数据 Ø 上点:边界上的点(正好等于) Ø 离点:距离上点最近的点 离点的选取:上点在范围内,选范围外;上点在范围…

    2022年7月28日
  • PostMan Monitors用法详解

    Postman的监控允许用户定期运行一个集合,以检查其性能和响应。可以设置一个监视器,以检查集合中的所有请求是否正常运行。普通用户只能设置小时级以上,分钟级需要付费 一、监控的配置…

    2022年10月29日
  • UI自动化测试介绍

    认识UI自动化测试 UI:User Interface,简称UI,用户界面是系统和用户之间进行交互和信息交换的媒介,主要包括:app、web UI自动化测试:使用程序、脚本对系统界…

    2022年9月20日
  • 性能测试教程二:JMeter基本使用

    JMeter是Apache组织开发的基于Java的开源软件,用于对系统做功能测试和性能测试。 它最初被设计用于Web应用测试,但后来扩展到其他测试领域,例如静态文件、Java 程序…

    2022年9月17日
  • Postman的基础使用(发送请求、断言、环境变量、参数化、测试报告生成)

    一、发送请求 步骤: 选择 请求方法 填写 URL 填写请求头 填写请求体 发送请求 Postman发送GET请求 Postman发送POST请求 put和delete请求,只需要…

    2022年8月27日
  • 3.unitest 参数化(数据驱动)

    通过参数的方式来传递数据,从而实现数据和脚本分离。并且可以实现用例的重复执行。(在书写用例方法的时候,测试数据使用变量代替,在执行的时候进行数据传递) – unitte…

    2022年8月20日
  • PostMan Mock用法详解

    什么是mock? Mock:模拟的、仿制的、虚假的 mock 接口,模拟一些接口,在别的接口没有开发好,但又需要使用那些接口时,可以先模拟一个接口来调用。 在postman中我们要…

    2022年10月29日