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"); //获取变量,该函数在全局变量和活动环境中搜索变量
第三步
在查询接口的请求头中获取这个环境变量
断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。把如下代码写在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保存,不然不生效的。