Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。html
一、环境变量和全局变量设置json
环境变量可使用在如下地方:api
- URL
- URL params
- Header values
- form-data/url-encoded values
- Raw body content
- Helper fields
先设置好变量名及数值后,接下来就能够调用环境变量名,例如:数组
key对应的values,填写{{address}},注意须要用双花括号引用。安全
全局变量设置方法跟环境变量同样,点击"Globals" 后就会出现添加环境变量相似的页面,进行变量和值的设置。并发
全局变量设置应用于整个(Collection)中的请求。app
GET 和POST 的区别:less
- GET 使用URL 或Cookie 传参,而POST将数据放在Body 中。
- GET的URL 在长度上会有限制,而POST没有。
- POST比GET相对安全,由于在地址栏不可见。
- 通常POST请求用来获取数据,POST请求用来发送数据。
二、Get请求:函数
参考开发提供的接口设计文档,提供传参数据录入。post
三、post请求:
如常见基本认证的登陆用的较多,用户名和密码也能够经过设置的环境变量获取。Postman支持不一样的认证机制如: Basic、Digest、OAuth等),支持收到响应语法高亮(HTML\JSON\XML等)。
下面举一个添加发布会接口例子开展:
选择form-data方式传参发送。
1、Body:
1. form-data
就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既能够上传键值对,也能够上传文件。当上传的字段是文件时,会有Content-Type来讲明文件类型;content-disposition,用来讲明字段的一些信息;因为有boundary隔离,因此multipart/form-data既能够上传文件,也能够上传键值对,它采用了键值对的方式,因此能够上传多个文件。
2.x-www-form-urlencoded
就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对
3.raw
能够上传任意格式的文本, 能够上传text、 json、 xml、 html等
4.binary
至关于Content-Type:application/octet-stream 只能够上传二进制数据,一般用来上传文件,因为没有键值,因此, 一次只能上传一个文件。
对于环境变量和全局变量的使用,除了上面所讲的方法外,也能够用Pre-requestScript 方法。
以login接口为例,在"Pre-requestScript"中设置环境变量 "username", "password",在Body 中选取"form-data" 格式,输入所需的key-value, value即为变量{{username}}, {{password}}。



经常使用tests用法以下: 1.检查response body中是否包含某个string tests["Body matches string"] = responseBody.has("string_you_want_to_search"); 注意:"Body matches string" 需惟一。 2.检测JSON中的某个值是否等于预期的值 var data = JSON.parse(responseBody); tests["Your test name"] = data.value === 100; JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 如:检查json中某个数组元素的个数(这里检测programs的长度) var data = JSON.parse(responseBody); tests["program's lenght"] = data.programs.length === 5; 3.检查response body是否与某个string相等 4.转换XML body为JSON对象 var jsonObject = xml2Json(responseBody); tests["Body is correct"] = responseBody === "response_body_string"; 5.测试response Headers中的某个元素是否存在(如:Content-Type) tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); //getResponseHeader()方法会返回header的值,若是该值存在 或者: tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type"); 上面的方法,不区分大小写。下面的方法,要区分大小写。 6.验证Status code的值 tests["Status code is 200"] = responseCode.code === 200; 7.验证Response time是否小于某个值 tests["Response time is less than 200ms"] = responseTime < 200; 8.name是否包含某个值 tests["Status code name has string"] = responseCode.name.has("Created"); 9.POST 请求的状态响应码是不是某个值 tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202; 10.很小的JSON数据验证器 var schema = { "items": { "type": "boolean" } }; var data1 = [true, false]; var data2 = [true, 123]; console.log(tv4.error); tests["Valid Data1"] = tv4.validate(data1, schema); tests["Valid Data2"] = tv4.validate(data2, schema);
四、传参场景(好比测试登陆接口须要不的帐号,密码)
在接口测试过程当中,有的时候须要构建多组同类型数据测试(正常数据,异常数据),固然不必写多条测试用例,可以使用CSV格式传参
举个例子,在测试用户登陆接口的时候,须要用户输入相应的手机号和密码
那么,须要构建的测试数据有:手机号&密码正确,手机号正确&密码错误,手机号错误&密码正确,手机号为空&密码不为空,手机号正确&密码为空,手机&密码均为空。
如post请求:/api/login?phone={{phone}}&password={{password}}
a、可本地建立一个txt文档,并编辑数据,数据的头部必须参数名称保持一致,也就是phone和password,数据以下:
b、而后选择批量运行,即collection runner,操做以下:
数据预览图,以下:
c、最后点击运行就OK,能够在collection runner->Run Results查看运行结果。
五、压力测试
压力测试只能以文件夹的方式执行多个接口,不能单独执行。
设置并发10次。执行后结果:
以上是postman基本操做总结。具体详细可参考官方样例:https://learning.getpostman.com/docs/postman/scripts/test_examples/