Postman
基础功能
collection在postman里面相当于一个文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹:
新建文件夹
新建请求
请求区域介绍
Params:GET请求时写的参数
Headers:请求的头部信息
Authorization:身份验证,主要用来填写用户名密码,以及一些验签字段,postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题
Body:POST请求时必须要带的参数
Pre-requerst Script:可以在请求之前自定义请求数据,这个运行在请求之前,语法使用JavaScript语句
tests:通常用来写测试,它是运行在请求之后。支持JavaScript语法。postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量以及对错情况。它也可以用来设计用例,比如要测试返回结果是否含有某一字符串
form-data:,它将表单数据处理为一条消息,以标签为单元,用分隔符分开。既可以单独上传键值对,也可以直接上传文件(当上传字段是文件时,会有Content-Type来说明文件类型,但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。);post请求里较常用的一种
x-www-form-urlencoded:对应信息头-application/x-www-from-urlencoded,会将表单内的数据转换为键值对
raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送
binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且没有键值对,一次只能上传一个文件, 也不能保存历史,每次选择文件,提交
导出和导入接口集
导出
导入
设置环境变量
添加完成后,在右上角的地方我们要进行选择所需要的环境,然后再点击请求。就可以成功的请求到了环境地址
设置全局变量
然后发请求
请求成功
将返回值的某个数据设置为环境变量
在某些时候,我们需要获取到一个变量,并保存下来,因为在后面我们会使用到。比如token,sign等信息,这时候就需要用到tests区域,使用js语法
下面是一个简单的将返回值的某个数据设置为环境变量或者全局变量:
定义一个xxx,获取body中返回的所有参数,并转化为JSON格式var xxx = JSON.parse(responseBody);
//把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数, 如:检查json中某个数组元素的个数(这里检测programs的长度)
var data = JSON.parse(responseBody);tests[“program’s lenght”] = data.programs.length === 5;
将返回中的值设置为一个环境变量pm.environment.set(“key”,xxx.data.value);或者postman.setEnvironmentVariable(“key”, “value”);
将返回中的值设置为一个全局变量pm.global.set(“key”,xxx.data.value);或者postman.setGlobalVariable(“key”, “value”);
常用的tests方法:
1.设置环境变量
postman.setEnvironmentVariable(“key”, “value”);
pm.environment.get(“key”, “value”);
2.设置全局变量
postman.setGlobalVariable(“key”, “value”);
pm.globals.set(“variable_key”, “variable_value”);
3.检查response body中是否包含某个string
tests[“Body matches string”] = responseBody.has(“string_you_want_to_search”);
pm.test(“Body is correct”, function () {
pm.response.to.have.body(“response_body_string”);
});
4.检测JSON中的某个值是否等于预期的值
var data = JSON.parse(responseBody);
tests[“Your test name”] = data.value === 100;
5.验证Status code的值
tests[“Status code is 200”] = responseCode.code === 200;
pm.test(“Status code is 200”, function () {
pm.response.to.have.status(200);
});
6.POST 请求的状态响应码是否是某个值
tests[“Successful POST request”] = responseCode.code === 201 || responseCode.code === 202;
pm.test(“Successful POST request”, function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
更多详情看Tests界面右侧下拉单
使用postman进行接口自动化测试
判断请求返回的 code 是否符合预期
判断请求返回的内容中是否包含预期的内容(关键字)