说实话,刚接触那会儿,看着那一堆术语也挺懵的。

postman下载安装教程_postman界面导航说明_Postman请求参数设置

哪种查询参数,表单,JSON,文件上传,好像呈现出四种各异的生物形态。

但其实上手了发现,也就是层窗户纸的事儿 。

第一种,看着最实诚:查询参数接口

这种最简单,就像你在浏览器里直接敲地址。

把URL直接贴进地址栏,完事。

当然,要是你打算把那些问号之后的参数,像?name=test这样的,单独填进框里,这也是可行的,其效果是相同的。

比如,你叫人时,可以直接呼喊其完整的姓名。或者,把姓氏与名字分隔开来去做些像填表格这类事情,其实这般的做法,在本质上并没有什么差异的。

然后就是这种,带着“体香”的接口:表单类型

怎么判断?

贼简单,看请求头里的 Content-Type

POST http://localhost/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html HTTP/1.1
Content-Type: multipart/form-data
file=a1.jpg

假设它所呈现的是 application/x-www-form-urlencoded 这种形式,好了,此情形即为表单提交。

此时间点你得于工具当中,像是借助那个有着小狐狸头标识的软件,又或者是邮差先生那般的,挑选 body,接着勾选上 x-www-form-urlencoded

把参数名和值像填表一样列出来就行。

POST http://xxx/api/sys/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
{"account":"root","password":"123456"}

那股子“体香”一出来,你就知道该怎么伺候它。

第三种,现在最潮的,见面就递张名片:JSON类型

这应该是现在最常见的了。

在请求报文当中,Content-Type所显写情形之下,呈现的是 application/json

一看这格式,你就得换个姿势。

于工具之中,同样选取 body,然而这次需选取 raw,随后将旁边的格式类型,由 Text 转变为 JSON

Postman请求参数设置_postman下载安装教程_postman界面导航说明

随后,将那一段由花括号括起来的“名片”,也就是JSON数据,贴进去。

它讲究,咱就得按它的规矩来。

点发送,服务器处理完,会给你吐回来一个东西,叫响应

这响应涵盖三类内容,其一为状态行,它会告知你此请求究竟达成与否,像200便代表请求成功,404则意味着请求针对的对象寻无踪影;其二是响应头,它包含了一系列元数据;更为关键的是还有响应体,其承载着实际的数据。

postman下载安装教程_postman界面导航说明_Postman请求参数设置

有时瞅见返回的确是HTML页面,就像模拟着手去打开百度,而后点击那个标着Preview的选项,如此一来便能直接瞧见渲染呈现出的页面效果,真的是蛮直观的。

有了这些基础,才算是刚推开大门。

Postman请求参数设置_postman下载安装教程_postman界面导航说明

真正的折腾,在后面。

比如说,你于一个项目之中构建了一批接口测试用例,这些测试用例宛如一个个散装的积木,那么要怎样促使它们共同运行起来呢?

postman下载安装教程_Postman请求参数设置_postman界面导航说明

这就是批量执行

Postman请求参数设置_postman下载安装教程_postman界面导航说明

能够挑选出一个文件夹,或者是整个集合,通过一键操作来运行,瞧它们成排待着接受查看。

代码写久了总得报错吧?

这时候就得靠查看日志打印变量了 。

postman界面导航说明_postman下载安装教程_Postman请求参数设置

这就如同你于黯淡无光的房间之内行走,手中需要持有一个打火机,每隔小段时间把它点燃照亮一下,瞧瞧前方究竟是道路还是坑洼。

借由那个形如 console.log 这般的语句,能够将程序运作期间的心里话,也就是变量值给打印出来,助力你找出究竟是何处存在问题。

postman下载安装教程_postman界面导航说明_Postman请求参数设置

还有那个断言,这才是从“能跑”到“靠谱”的关键 。

if (!response.has("token")) {

抛出一个新的错误,内容是登录失败了,没拿到标识令牌!

}

用了断言,就像给测试用例装上了眼睛和脑子,能自动判断对错。

这是做自动化的地基 。

变量与脚本:让接口活起来

这功能是真玩出花样的开始。

变量,说白了就是个存东西的盒子 。

在请求当中,存在着某个值,举例来说,它是登录之后所返回的 token,针对这个值,采取右键选中的操作,从中选择 Set: 环境变量 这一选项,进而将其进行存储了。

下次再用,直接 {{token}} 引用就行。

Postman请求参数设置_postman下载安装教程_postman界面导航说明

然而需要留意,于请求参数的URL当中如此书写并无问题,倘若在用于编写代码的Tab里(像是 Tests 或者 Pre-request Script),那就必须采用 pm.environment.get("变量名") 这般正规的语法了。

说到脚本,就得提前置脚本

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200); //这里填写的200是预期结果,实际结果是请求返回结果
});

这儿物品的施行次序饶有趣味:于发出请求之前,先行运行前置脚本之中的代码。

所以你可以在请求发出前,对数据做点手脚。

pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK"); //断言响应状态消息包含OK
});

比如密码需要加密?

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type"); //断言响应头存在"Content-Type"
});

在前置脚本里写个md5函数。

比如参数需要个随机数?

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
//注解
pm.expect(pm.response.text()).to.include("string") 获取响应文本中包含string

在那儿用JS生成一个。

这恰似在出门去会见客户之前,先朝着镜子去整理一番领带,将状态调节至最为佳妙的程度。

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
//注解
pm.response.to.have.body("response_body_string"); 获取响应体等于response_body_string

接口关联:这才是真实世界的玩法

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
//注解
var jsonData = pm.response.json() 获取响应体,以json显示,赋值给jsonData .注意:该响应体必须返会是的json,否则会报错
pm.expect(jsonData.value).to.eql(100) 获取jsonData中键名为value的值,然后和100进行比较

真实场景里,接口都不是孤岛。

通常情况下,前一个接口所返回得出的数据,常常会作为下一个接口的输入内容,而这种情况就被称作是接口关联。

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200); //断言响应时间<200ms
});

假设你首先去调试那个用于上传头像的接口,之后它会给你返回这样一个内容:"avatar_url":"xxxx.jpg"

你得把这个 xxxx.jpg 提取出来,存成全局变量。

{
    "cityid": "101120101",
    "city": "济南",
    "update_time": "2020-04-17 10:50",
    "wea": "晴",
    "wea_img": "qing",
    "tem": "16",
    "tem_day": "20",
    "tem_night": "9",
    "win": "东北风",
    "win_speed": "3级",
    "win_meter": "小于12km/h",
    "air": "113"
}

而后,于紧接着的下一个“图像预览”接口当中,再借助 {{avatar_url}} 将其叼走。

postman界面导航说明_Postman请求参数设置_postman下载安装教程

核心就两步:提取 -> 保存变量 -> 使用变量。

困难之处在于,所返回的JSON数据,有时会如同俄罗斯套娃那般嵌套,出现层层嵌套包裹的情况。

以那一大串字符串而言,怎么样才能够在其中准确无误十分精确地捞出那个thumb的值呢,那串字符串是data.user.profile.avatar.thumb?

这就考验你对JSON解析的熟练度了。

别怕。

这物件好似谈恋爱,刚开始时觉着对方心思难测,存在四种接口类型,相处较久后发觉也就那几种模式。

postman界面导航说明_postman下载安装教程_Postman请求参数设置

多测测,多看看日志,慢慢就摸着门道了。

毕竟,机器比人实在,它错了就是错了,从不装。