一、postman概述
1.1定义
1、postman:一款功能强大的网页调试与发送网页HTTP请求的工具。
2、测试集合collection:collection可以看作是request的集合,也可以看作是testsuite,对接口测试进行归类,支持导入/导出。
3、测试沙箱:可以使用JS编写测试脚本,对request结果添加测试断言等。
4、环境与变量:支持设置运行的环境与该环境下的一些变量,也支持设置一些和环境无光的变量。
1.2下载与安装
1、下载地址:https://www.getpostman.com/downloads/
2、支持系统:Mac、Windows、Linux
3、安装步骤:双击EXE文件根据安装提示进行即可完成安装。
二、postman使用详解
2.1 postman功能区域
postman主界面分为7个功能区域,分别为:工具栏、快速功能图标区域、快速检索、测试项目或测试集管理区域、环境变量配置与设置区域、请求配置区域、响应展示区域。如下图所示:
2.2 Request四要素
1、URL:
请求的地址,如果有参数会自动解析显示在params中,如果手动在params中添加参数,也会自动补充到URL中;
2、Method:
几乎支持所有的method:GET、POST、PUT、PATCH、DELETE、COPY......
3、Headers:
可以随便添加、编辑header attribute,打出首字母时,会很贴心的在下拉菜单中显示标准的attribute;
4、Request Body:
(1)form-data:可以上传一个文件作为key的value提交,key—value不写入URL,而直接提交;
(2)x-www-form-urlencoded:key—value会写入URL
(3)Raw:可以包含任何东西,都会随时请求发送;
(4)Binary:image、audio、video、text files;
2.3 Response介绍
1、Body、Cookie、Header、Test四个模块;
2、可复制、保存、搜索response;
3、Body提供三种视图查看:
(1)Pretty:格式化后显示,方便查看;
(2)Raw:最原始数据,即text格式;
(3)Preview:自动解析HTML页面并显示;
4、status、time、size单独显示在旁边,鼠标悬浮可查看详情。
2.4环境与变量
1、当测试存在多个环境时,可以先设置一个环境,然后在此环境下设置一系列变量。
2、也可单独设置一系列变量,不选择环境(默认环境)时,这些变量生效,选择环境后,环境变量覆盖这些变量。
3、变量的格式为:{{XXX}}
4、环境与全局变量
(1)postman.setEnvironmentVariable(variableName, variableValue)
设置一个环境变量“variableName”,并为其分配字符串“variableValue”。您必须为此方法选择一个环境才能工作。
注意:只能存储字符串。存储其他类型的数据将导致意外的行为。
(2)postman.getEnvironmentVariable(variableName)
返回环境变量“variableName”的值,用于预请求和测试脚本。您必须为此方法选择一个环境才能工作。
(3)postman.setGlobalVariable(variableName, variableValue)
设置一个全局变量“variableName”,并为其分配字符串“variableValue”。
注意:只能存储字符串。存储其他类型的数据将导致意外的行为。
(4)postman.getGlobalVariable(variableName)
返回全局变量“variableName”的值,用于预请求和测试脚本。
(5)postman.clearEnvironmentVariable(variableName)
清除名为“variableName”的环境变量。您必须为此方法选择一个环境才能工作。
(6)postman.clearGlobalVariable(variableName)
清除名为“variableName”的全局变量。
(7)postman.clearEnvironmentVariables()
清除所有环境变量。您必须为此方法选择一个环境才能工作。
(8)postman.clearGlobalVariables()
清除所有全局变量。
(9)Environment
当前环境中的变量字典。使用environment["foo"]访问“foo”的环境变量的值。
注意:这只能用来读取变量。使用setEnvironmentVariable()设置值。
(10)Globals
全球变量字典使用globals["bar"]访问“栏中的”全局变量的值。
注意:这只能用来读取变量。使用setGlobalVariable()设置值
2.5测试沙箱
2.5.1测试沙箱描述
Postman测试沙箱:是一个JavaScript执行环境,可以通过JS脚本来编写pre-requist和测试脚本。
1、Pre-request script:可以修改或设置一些默认参数,在request之前执行;
2、Tests使用语言Java script,用来建议response是否满足要求;
3、由描述性的Key和布尔型结果组成,可以理解为断言,并且可以创建多个Key;
4、Snippets:可以助你快速添加代码,其他代码可参考官方文档;
2.5.2 测试断言
Postman断言:在请求返回之后,运行,并根据断言的pass\fail情况体现在最终测试结果中。
1、校验返回状态是否正确:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2、校验请求响应时间是否低于某个值:
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
3、校验某个字段的返回值是否等于指定的值:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
或
pm.test("Your test name", function () {
var jsonData = pm.response.json();
console.log(jsonData.data);
console.log(jsonData.data[0]);
console.log(jsonData.data[0].value);
pm.expect(jsonData.data[0].value).to.eql(100);
});
4、校验某个字段的返回值中是否包含指定的值:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.include(100);
});
5、用for循环的方式校验一组数据中某个字段的返回值是否等于指定的值,并打印出返回值:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
for(var i=0;i<1;i++){
}
pm.expect(jsonData.value).to.eql(100);
});
2.6 Postman Console
1、定义:postman在脚本使用变量时,通过console控制台,查看接口测试log。
2、操作步骤:
(1)Menu --> View ---> Show Postman Console,打开Postman Console的页面;
(2)在Request中的Pre-request Script或者Tests里插入脚本console.log("variables")。当你发送请求时,此脚本将会执行,将参数对应的值打印到Postman Console中;
(3)查看运行当前接口在Console中打印的记录。
2.7多接口测试管理
2.7.1 collection描述
1、如果每个request看作是testcase,那么collection就是testsuite;
2、collection可以一键运行所有的request;
3、collection可以使用csv或者json文件导入变量,官网提供模板文件;
4、引用变量语法有2个:data.username 或者data.['username']