前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >postman的使用技巧

postman的使用技巧

作者头像
赵云龙龙
发布2020-08-25 11:07:42
3720
发布2020-08-25 11:07:42
举报
文章被收录于专栏:python爱好部落python爱好部落

有段时间调用接口比较频繁。虽然用charles, fiddler都能胜任。但是不想用代理去连手机。而且各个环境来回切换比较麻烦。很早以前用过一段时间postman, 觉得还不错,最近又想用一下,发现不是很熟悉了。

首先得去官网下载一个postman安装。 建一个collection, 将请求都放入其中,方便管理。配置url, 设置header

填写body

因为后续的接口需要获取token,session,可以在test里面设置全局变量

大致语法如下:

代码语言:javascript
复制
测试response Headers中的某个元素是否存在 tests["元素Content-Type是否存在"] = postman.getResponseHeader("Content-Type");
//getResponseHeader()方法会返回header的值;

定义一个xxx,获取headers值 var.xxx = postman.getResponseHeader("key");
将Headers中的值设置为一个环境变量 postman.setEnvironmentVariable("key",xxx);或者pm.environment.set("key",xxx);


检查response的code值是否为200 tests["Status code is 200"] = responseCode.code === 200;
// tests["Status code is 200"]中的tests是一个内置对象,
tests["Status code is 200"]是指为这个断言起个名称叫”Status code is 200”,这个名称可以自行修改。
responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200.
综合起来,这句代码的意思是:名称为”Status code is 200”的断言中,判断responseCode对象的code属性值(HTTP状态码)是否为200。

检查response的body中是否包含字符串 tests["Body matches string"] = responseBody.has("type");
// tests["Body matches string"]中的tests是一个内置对象,
tests["Body matches string"]是指为这个断言起个名称叫”Body matches string”,这个名称可以自行修改。
这句代码的意思是:名称为”Body matches string”的断言中判断响应正文中是否包含:type这个字段。type无论是key或者value,只要匹配就可以。多个类型可用“,”分割。

检查Response Body是否等于字符串 tests["测试点"] = responseBody === "Response Body返回的内容";
//这个可以用在接口返回内容为纯字符串时,直接检查整个返回结果的正确性

检查Response time 是否小于200ms tests["Response time 小于200毫秒"] = responseTime < 200;

检查Response time 是否大于200ms tests["Response time 大于200毫秒"] = responseTime > 200;

postman.setNextRequest('Request 4')
// postman.setNextRequest()是一个带有一个参数的函数,它是接下来要运行的请求的名称或ID。往往用来跳转至某个接口,只在运行该集合时有用,单独运行无效

当然不需要记这么多,后面有文档,点击一下就能得到提示。 当我们跑通了一个环境后,就设置环境变量来跑各个环境了。 我们可以在全局变量里面添加:

不同的环境叫一个名字,所有的公用的可以叫同一个名字。这样可以自由选择。 然后可以在collection里面运行了。

当然如果觉得一个一个添加接口太麻烦,可以用录制的方法来添加,然后参数化。

  • 设置代理 1.1 点击雷达图标

image 1.2 设置端口及目标

image

image

  • 设置手机代理 前提:手机和电脑在同一局域网
  • 输入过滤条件(可忽略)

然后就是参数化,不管是是设置的全局变量,还是获取的,都可以用{{variable}}来替换,当然,如果有“”, 这个是放在引号里面的,如:"{{variable}}" 这样就可以随心所欲的调试接口了。 当然也可以结合newman来命令行执行,还可以配到jenkins上。这里就不折腾了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python粉丝团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档