postman json 中写注释_postman图文讲解典藏版

postman安装

https://www.getpostman.com/

   本文内容较长,欢迎当做字典用,本文主要讲解postman的几个常用的技巧。

  • 单个接口测试

  • 管理多个接口

  • 抓取网络请求

  • 导入接口请求到postman方法

  • 生成请求时token

  • 断言接口请求

  • 批量执行多个接口请求

  • 其他

单个接口测试

单个接口,可以在Chrome浏览器里面直接通过开发者工具,然后选择copy as curl,然后在postman里面使用import--->paste raw text,然后倒入就可以生成全部的该接口的请求参数,从header到form表单。

640?wx_fmt=png

640?wx_fmt=png

下面为导入后的效果:

640?wx_fmt=png

管理多个接口

可以使用postman的collection,这个东西就是postman为了管理多个相关接口弄出来的东西。

这一组接口,可以使用一些共用的参数,比如下图:

640?wx_fmt=png

可以使用公共变量,这些变量的使用方法是{{XXX}},在需要的地方添加即可,但是需要注意collection范围内有效。

postman这里的认证方式,提供了多种,我们比较常用的是使用父级collection的认证,或者在header里面添加一些关键id参数,比如下图这样的设置,这样就方便我们可以多个接口不用挨个设置关键id了。

640?wx_fmt=png

抓取网络请求

从官网的介绍来看,目前只支持http的抓取,HTTPS还在开发中,看官网的开发进度大概是1个季度后,就可以支持了。当然不支持HTTPS目前来说这个抓取是比较鸡肋的,当然他也支持手机端抓取,现在看也没有意义了。

postman抓取网络请求的方式分2步:第一步:postman自己的设置,如下图所示。

640?wx_fmt=png

第二步:在自己的浏览器设置对应的代理,比如Chrome浏览器,我这边是Mac,Windows下面直接修改IE的设置即可。

640?wx_fmt=png

----------

附:官网的开发进度:这个mid Term,他自己的注释里面说明是季度性的完成进度。

640?wx_fmt=png

快速导入接口请求到postman

postman不支持批量导入多个curl的接口,这是官方说法,貌似没有批量导入的标准格式。所以不太好用。不过国内有曲线救国的。http://www.51testing.com/html/87/n-4462487.html

感兴趣的自己研究了,不咋好,不细看了。

640?wx_fmt=png

640?wx_fmt=png

 生成token

postman可以在接口请求之前,生成token,然后添加到请求头里面去。

但是脚本需要用JS编写,如下为示例代码:

// JWT generation script adapted from// https://gist.github.com/corbanb/db03150abbe899285d6a86cc480f674dvar jwtSecret = pm.environment.get('jwt_secret') || ''// Set headers for JWTvar header = {  'typ': 'JWT',  'alg': 'HS256'};// Prepare timestamp in secondsvar currentTimestamp = Math.floor(Date.now() / 1000)var data = {  'iss': pm.environment.get('jwt_iss') || '',  'ist': pm.environment.get('jwt_ist') || '',  'iat': currentTimestamp,  'exp': currentTimestamp + 30, // expiry time is 30 seconds from time of creation  'jti': 'jwt_nonce'}function base64url(source) {    // Encode in classical base64    encodedSource = CryptoJS.enc.Base64.stringify(source)        // Remove padding equal characters    encodedSource = encodedSource.replace(/=+$/, '')        // Replace characters according to base64url specifications    encodedSource = encodedSource.replace(/\+/g, '-')    encodedSource = encodedSource.replace(/\//g, '_')        return encodedSource}// encode headervar stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header))var encodedHeader = base64url(stringifiedHeader)// encode datavar stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data))var encodedData = base64url(stringifiedData)// build tokenvar token = `${encodedHeader}.${encodedData}`// sign tokenvar signature = CryptoJS.HmacSHA256(token, jwtSecret)signature = base64url(signature)var signedToken = `${token}.${signature}`pm.environment.set('jwt_signed', signedToken)console.log('Signed and encoded JWT', signedToken)

这个会在发起请求之前运行

640?wx_fmt=png

问题是,你需要使用JS编写脚本,这个就有点麻烦,因为大部分token是后端业务写的,也就是基本是Java代码,开发给你Java代码,你要改成JS代码。这个要求就有点高了。

如果我们只是创建一个变量或者获取一个系统变量,那简单,右边有快捷键。

640?wx_fmt=png

断言接口请求结果

postman还可以做断言,断言就是在接口请求完成后,直接做Tests,这样的话就可以直接把接口请求的结果断言了,比如里面包含关键参数,或者状态码,或者响应时间。下图所示为从右边直接点击后,创建的。

640?wx_fmt=png

批量执行多个接口请求

postman还可以批量执行多个接口请求,这样的话,就可以方便我们一次性执行多个接口后,做对应的接口自动化测试了。

他批量的方式就是选择collection,然后直接run collection。

640?wx_fmt=png

在对应的collection runner里面,点击run就可以了。

640?wx_fmt=png

如果需要的话,还可以设置参数,比如执行几遍,保留响应结果,或者选择对应的环境,比如开发环境、测试环境、预发布环境、线上环境等。

其他

1.postman还可以设置mock server,这个mock的意思就是当前服务器没有开发完成,使用postman弄的临时的,当使用postman发起对应的接口请求时,postman会直接拦截,然后通过设置好的mock server去处理后,返回对应的response。

这是postman的高级用法,postma让注册账号后才行,因为网络原因,这里注册失败就不演示了。

2.postman里面的这些写法都可以参考模板,也就是下图所示位置的,直接获取后,比着葫芦画瓢就行。总体来说postman发展的速度还是很快,功能也越来越强大了。

640?wx_fmt=png

3.postman还支持跟Jenkins集成,集成的方式,就是让Jenkins去执行postman命令行下面的工具,Newman。

    以上是postman的本文全部介绍,欢迎扫描关注公众号,各种聊骚,或者加作者微信号:

640?wx_fmt=png                         640?wx_fmt=png

因为不能直接留言,欢迎直接关注公众号,直接跟老张聊天。老张都会认真回复的。

640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值