一、postman功能区展示
postman侧边栏、主功能区、顶部导入、runner、环境变量设置
在接口测试工程中将相关项目的接口或者相同域名的接口放在同一文件夹下方便查找
在侧边栏中如果没有保存的接口,也可以在历史记录中查找
二、postman添加接口请求
1、postman可以抓取http和https接口
HTTP是明文传输数据,直接请求就可以了
HTTPS是ssl加密传输数据所以在请求过程中需要验证;如果https是单项传输数据,直接请求就可以了
如果是双向验证数据就需要在postman中设置file--setting中关闭ssl验证
在certificates中添加客户端公钥和私钥
其中CRT file、KEY file、Passphrase需要我们填写,其中CRT file为客户端密钥库的公钥,KEY file为客户端密钥库的私钥,下面我会仔细讲生成方法;Passphrase为密钥库的密码,这是我们之前生成客户端证书时自己设置的密码,经测试不填写也不影响。
生成公钥和私钥的文档转自:Postman请求https接口_liuxingdeyun的博客-CSDN博客_postman请求https
2、接口设置
在Postman的body的类型主要由四种类型的参数: form-data、x-www-form-urlencoded、raw、binary,如图
get的请求参数一般都直接跟在url后面;
post请求在控制台中查看到content-type=ultipart/form-data 时使用form-data, 一般在表单中如果需要进行文件上传时,就需要使用该格式 ;可以是文件和参数一起发送
content-type=application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=python&age = 24,这种方式只能以键值对形式发送参数,一般如果不指定content-type,默认便是application/x-www-form-urlencoded
Content-Type=application/json时,则可以使用这种方式,这个是实际接口测试中,使用到最多的方式了。越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串
他是可以上传任意格式的参数,可以上传text、json、xml、html、js
三、postman 的断言功能
1、在postman中断言设置是在Tests中,
断言响应状态码
(1)//状态码
pm.test("断言:HTTP状态码为200",function(){pm.response.to.have.status(200)});
(2)断言json中某一个值
//断言其中一个json数据的值
var jss=pm.response.json();
var mag=jss.msg;
var source=jss.result.baseData.source;
pm.test("断言:msg为操作成功",function(){pm.expect(mag).to.equal("操作成功")});
pm.test("断言:source值为eng",function(){pm.expect(source).to.equal("eng")})
(3).pm.request
request为脚本执行请求。对于前置脚本,这是将要发送的请求,在测试脚本中,这是已发送的请求 。
request包含以下结构信息:
pm.requests.url: 包含发出请求的URL,返回json数据,主要包括了url中的protocol,host,path,query,variable部分 。可以通过.解析出每一部分 。
pm.request.headers :包含发送请求的headers ,返回列表数据 。
pm.request.method : 发送的请求方法
pm.request.body :包含与请求正文相关的所有数据
pm.request.headers.add(headerName):为当前请求添加请求头headerName
pm.request.headers.remove (headerName):删除请求头中的headerName
pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}) : 插入给定当前请求的键值对 。(如果该键不存在,否则将已存在的键值更新为新值)
(4).pm.response
pm.response对象包含与收到的响应有关的所有信息 。响应信息格式如下:
pm.response.code : 返回响应状态码
pm.response.status : 返回响应状态消息
pm.response.headers:返回响应头
pm.response.responseTime : 返回响应时间
pm.response.responseSize: 返回响应大小
pm.response.text():返回响应体的文本数据
pm.response.json() :返回响应体的json数据
(5).pm.test
格式:pm.test(testName:String, specFunction:Function)
我们可以使用此方法在Pre-request Script 或Tests标签中,即使该方法内部存在错误,也可以确保脚本的其余部分不会被阻塞。
该作者有详细的Tests的详解,postman做接口测试17-pm对象解析_venustech0919的博客-CSDN博客_pm.environment
四、postman的压测和文件csv
在postman的入参中使用{{参数}}来设置参数化设置好参数化后,设置Tests中添加断言设置,然后在点击Runner设置迭代次数和添加入参文件
执行完后展示如图:
所以postman也可以做接口压测就是因为它有同一个接口的迭代和数据csv的功能
注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有一个要测试的接口。