postman的使用技巧

2020-08-25 11:07:42 浏览数 (2)

有段时间调用接口比较频繁。虽然用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上。这里就不折腾了。

0 人点赞