Postman使用完全指南

时间:2022-07-23
本文章向大家介绍Postman使用完全指南,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. postman的环境变量

1.1. 全局变量

在这里插入图片描述

可以看到我的请求url中有个{{domain}},这是什么东西呢?这其实是环境变量,我们可以在如下设置环境变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2. 测试环境和生产环境设置不同的环境变量

这里设置的变量为全局变量,除此之外我们还可以根据不同的环境设置不同的变量,比如测试环境和生产环境

在这里插入图片描述
在这里插入图片描述

接下来我们就可以使用这个环境的环境变量

在这里插入图片描述

在报文中通过{{username}}取值

1.3. 设置每一个请求的局部变量

除了上面的两种方式外,我们还可以设置每一个请求的局部变量

通过var定义一个变量,通过setGlobalVariable设置局部变量,如下所示

在这里插入图片描述
在这里插入图片描述

1.4. Postman的内置环境变量

除了自己设置的环境的变量外,Postman还内置了5个环境变量

{{$guid}} //生成GUID 
{{$timestamp}} //当前时间戳 
{{$microTimestamp}} //当前毫秒时间戳 
{{$randomInt}} //0-1000的随机整数 
{{$randomFloat}} //0-1000的随机浮点数;

2. 如何依赖前一个接口的返回值

有时候比如我们有个查询接口,该接口需要先登录,拿到登录后的token,然后放到查询接口的请求头中查询接口才能查询,postman应该怎么设置呢?

第一步

创建一个集合

在这里插入图片描述

第二步

在登录接口的Tests中编写如下代码

var jsonData = pm.response.json();
var token = jsonData.data.token;
pm.environment.set("token",token);

该代码的意思为获取返回的json值并且把他设置到环境变量中,除了environment.set设置环境变量,还有如下方法

pm.environment.get("variable_key"); //获取环境变量
pm.environment.unset("variable_key"); //清除一个环境变量
pm.globals.set("variable_key", "variable_value"); //设置一个全局变量
pm.globals.get("variable_key"); //获取一个全局变量
pm.globals.unset("variable_key"); //清除全局变量
pm.variables.get("variable_key"); //获取变量,该函数在全局变量和活动环境中搜索变量

第三步

在查询接口的请求头中获取这个环境变量

在这里插入图片描述

3. Postman断言

断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。把如下代码写在Tests中

在这里插入图片描述

检查响应主体是否包含字符串

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

检查响应主体是否等于一个字符串

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

检查JSON值

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

内容类型存在

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

响应时间小于200ms

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

状态码是200

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

4. Postman的其他比较有用的功能

加密并进行base64编码

var hash = CryptoJS.HmacSHA1(s,key);
postman.setGlobalVariable("checksum", hash.toString(CryptoJS.enc.Base64));

base64解码

var intermediate = CryptoJS.enc.Base64.parse(base64content);

发送异步请求,该功能既可以作为预先请求,也可以作为测试脚本使用

pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

4. 写在最后

以上设置完了记得按ctrl+s保存,不然不生效的。