基于PostMan的接口自动化测试

 

理解pm对象

pm对象 - 是PostMan中非常核心的一个对象。包含与正在执行的脚本有关的所有信息,并允许访问正在发送的请求的副本或接收到的响应,还允许获取和设置环境变量和全局变量

pm对象内部的核心功能(属性)

  • pm.info -- info对象包含与正在执行的脚本有关的信息(请求名称、请求id、请求次数....)
  • pm.variables/pm.environment/pm.global -- 变量管理
  • pm.request -- 当前脚本所在的请求
  • pm.response -- 当前脚本所在请求的响应结果
  • pm.cookies -- 包含与请求域相关联的cookie列表
  • pm.test -- test函数用于编写测试脚本
  • pm.expect -- 断言函数

pm上的方法(此部分不需死记,需要的时候查找就ok)

pm.info对象

pm.globals对象 

 pm.environment对象

pm.variables对象 

pm.request对象 

pm.response对象 

PostMan中的Test

在postman中用于测试、断言的函数主要有

理解变量

  • 全局变量,一但声明了全局变量,全局有效。在postman中的任何集合、任何请求中都可以使用这个变量。作用域最大
  • 集合变量,集合变量是针对集合的,声明的变量必须是基于某个集合,使用范围也只是针对某个集合有效
  • 环境变量,声明环境变量,首先要创建环境,然后在环境中才能创建变量,如果想要使用这个环境变量,必须先选择这个环境.环境可以创建多个,每个环境下又可以有多个变量

 

上图展示了postman中变量的关系,由小到大依次为 data->local->-environment->clooection->global。local变了暂时我还没研究,data对象下面我会讲到

定义变量(环境变量&全局变量)

定义变量(集合变量)

 

使用变量

1.在请求参数中使用变量:{{变量名}},请求参数包括URL、Params、Authorization、Headers、Body

2.在Tests或者Pre-request Script中获取变量

  • 获取全局变量 - pm.globals.get("变量名")
  • 获取集合变量 - pm.collectionVariables.get("变量名")
  • 获取环境变量 - pm.environment.get("变量名")

外部文件实现数据参数化(导入csv文件)

实现步骤

1.创建数据文件,支持的格式为csv和json
2.请求中替换参数变量,{{}}或者data.xxx(我们导入的csv文件中的字段,可以直接通过data对象访问)
3.选择集合->点击Run->选择对应数据文件

 

断言

    //pm.expect是一个通用的断言函数,主要与pm.test联合使用,常见的用法如下
    pm.test("testName",function(){
        pm.expect('xxx').to.include('xxx');
    })
    // pm.expect()接收一个断言内容(实际结果,一般为response返回的结果)
    // .to 是连接符,用于连接断言与判断,这些连接符不会对结果造成任何影响,只是让断言语句更复核英文语法。连接符包括to,be,been,is,that,which,and,has,have,with,at,of,same
    //.include()断言方式,接收预期结果
复制代码

常用的断言方式

.equal(value)--断言是否严格相等
.not--取非,对之后的断言无条件取反
.include(value)/.contains(value)--表示实际结果是否包含预期结果
.ok/.true--断言目标为真

Newman

介绍

Newman是一款基于node.js开发的可以运行postman的工具,可以直接从命令行运行和测试postman集合

安装

npm install -g newman - 安装newman
npm intall -g newman-reporter-html - 安装生成html报告时需要的插件

语法

newman run xxx.json -d xxx.json/xxx.csv

  • run xxx.json - 标识要执行的postman脚本,就是我们导出的集合
  • -d xxx.json/xxx.csv - 标识要执行的数据data,就是我们自定义的参数文件

生成html格式的报告

newman run xxx.json -d xxx.json/xxx.csv -r html --reporter-html-export /Users/lz01/Desktop/tdtest.html
默认将html报告保存在当前目录下,如想保存到指定目录,在文件名前加路径即可

结尾

以上就是postman配合newman的使用,我们可以把每个接口需要的参数和期望的状态导入csv文件或者json,然后通过命令就能直接测试出每次的结果,节省了大量的测试时间。至于集成到Jenkins上实现真正的自动化测试,这个还的我们老大来搞,能力有限就不多介绍了,有兴趣的小伙伴可以自行查看

学习安排上

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。【保证100%免费】

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值