1、Postman 使用详解前言:Postman 是一款功能强大的网页调试与发送网页 HTTP 请求的 Chrome 插件。接口请求流程一、get 请求GET 请求:点击 Params,输入参数及 value,可输入多个,即时显示在 URL 链接上,所以,GET 请求的请求头与请求参数如在接口文档中无特别声明时,可以不填。get 请求示例GET 响应:右上角显示响应 HTTP 状态码、请求的耗时。get 响应示例需特别注意的是注意区别 HTTP 状态码与响应正文中的状态码,只有 HTTP 状态码是 200 时,才代表这个接口请求是正确的,这个是 HTTP 协议定义的,而响应正文的状态码,是程序员自
2、已定义的,可以是200,也可以定义为其它值,是为了让接口使用者去区分正常数据与异常数据。状态码与响应码不一致二、POST 请求1、POST 请求一:表单提交先看下图 POST 表单提交示例:表单提交示例上图示例中设置了请求方法,请求 URL,请求参数,但没有设置请求头。有一个要明确的点是,请求头中的 Content-Type 与请求参数的格式之间是有关联关系的。Content-Type 与请求参数的格式之间的关联当选择 x-www-form-urlencoded 的参数方式后,postman 自动的帮我们设置了 Content-Type,所以不需要我们人工干预,这就是使用一款流行工具的好处,把
3、一些基础点都帮我们处理了。2、POST 请求二: json 提交先看下图 json 提交示例:json 提交示例上图中,当我们选择了 JSON(application/json)时,postman 同样帮我们自动设置了 Content-Type,可以自行的去查看 Headers.3、post 请求三:xml 提交先看下图 XML 提交示例:XML 提交示例上图中,当我们选择了 XML(text/xml)时,postman 同样帮我们自动设置了 Content-Type,可以自行的去查看 Headers.4、post 请求四:自行设置 Content-TypeHTTP 的 POST 请求的参数,
4、都是放在请求正文中的,只是根据 Content-Type 来判断请求正文的格式,那么我们同样可以在表单提交时,选择 raw,然后自行设置 Content-Type 为 application/x-www-form-urlencoded。POST 请求的参数自行设置 Content-Type5、POST 请求五:二进制文件提交先看下图二进制文件示例:二进制文件提交Body 下,选择 binary,在这里你可以发送视频、音频、文本等文件。三、postman 断言一个完整的接口测试,包括:请求-获取响应正文- 断言,我们已经知道了请求与获取响应正文,下面来介绍如何用 postman 进行断言。Tes
5、ts这个”Tests”就是我们需要处理断言的地方,postman 很人性化的帮我们把断言所用的函数全给准备好了:SNIPPETS举例说明:首先设置一个断言场景,根据断言场景来举例说明 Postman 断言如何使用。1、判断 HTTP 返回状态码为 2002、判断响应正文中是否包含:“statusCode“:2003、解析响应正文,并判断 statusCode 的值是 200,message 的值是”Success”第一步:在 SNIPPETS 中,往下拉,有一项 ”Status code:Code is 200”,这个就是为场景中的第 1 条准备的,判断 HTTP 返回状态码是否为 200。点
6、击这一项,可以看到在其左边,断言代码自动添加,见下图:Status code解释一下这句代码的意思: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
7、200”的断言中,判断 responseCode 对象的code 属性值( HTTP 状态码)是否为 200。第二步:同样在 SNIPPETS 中,找到一项 ”Response body:Contains string”,这个就是为场景中的第2 条准备的,判断响应正文中的字段。点击后,在其左边,断言代码自动添加,见下图:Contains string1其中我们需要修改想要在响应报文中找到的内容:tests“Body matches string“ = responseBody.has(“statusCode“:200); /对照第 2 条场景:判断响应正文中是否包含:“statusCode“:
8、200Contains string2第三步:我们需要解析 JSON 串了,所以,在 SNIPPETS 中找到”Response body:JSON value check”并点击,在其左边,断言代码自动添加,见下图:JSON value check1我们可以看出,这里面其实是 JS 代码,jsonData 变量其实是解析完 JSON 后的对象,在 JS 中,一个JSON 对象获取其属性的值,直接是用 jsonData.value,于是,我们把代码给修改一下,来判断第 3 条场景:tests“response statusCode“ = jsonData.statusCode = 200; /
9、判断 statusCode 的值是200tests“response message“ = jsonData.message = Success; /判断 message 的值是”Success”JSON value check2这样一来,我们可以看到一共有 Tests 的断言 4 个,点击 Send,发送请求,在响应区内可以看到如下图:表示断言全部通过。以上,SNIPPETS 中还有很多的函数提供给我们 ,努力学习吧四、管理用例-CollectionsCollections 集合:也就是将多个接口请求可以放在一起,并管理起来。什么样的接口请求可以放在同一个 collection 里?在这里告诉大家可以这样:一个工程一个 Collection,这样方便查找及统一处理数据。第一步:创建 Collections点击上图中的带+号的图标,输入 Name:”demo”,Description:”demo for Collections”,点击Create 按钮即创建成功一个 Collections.