-
点击Tests编写测试断言
-
断言响应时间
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200); }); // 断言响应事件小于200ms -
断言状态码
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([200,202]); }); // 断言状态码200-202区间 -
断言响应中包含某个字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("ok"); }); // 断言响应中包含"ok" -
断言响应中的字段等于某个值
pm.test("message test", function () {
var jsonData = pm.response.json(); pm.expect(jsonData["message"]).to.eql("ok"); }); // 断言响应中"message" = ok" -
断言响应中的字段不等于某个值
var jsonData = JSON.parse(responseBody);
tests["message不为bad"] = jsonData["message"] != "bad"; // 断言响应中"message" != bad" -
断言响应中的列表长度
pm.test("data list test", function () {
var jsonData = pm.response.json(); pm.expect(jsonData["data"].length).to.eql(41); }); // 断言响应中"list"的字段长度 -
断言响应中的列表中第几个元素的字段值
pm.test("data list 0 test", function () {
var jsonData = pm.response.json(); pm.expect(jsonData["data"][0]["time"]).to.eql("2018-11-28 17:27:41"); }); // 断言响应中"list 0的"的time字段的值 -
json schema验证
tv4是postman内置的JSON Schema验证库,参考:https://geraintluff.github.io/tv4/
responseBody如下==:==
{
"errCode": 0, "errMsg": "", "data": { "id": 3210, "title": "", const customerSchema = { "type": "object", "properties": { "errCode": { "type": "integer", "minimum": 0, "maximum": 3, "minLength": 2, "maxLength": 3 }, "errMsg": {"type": "string"}, } }; var customer = JSON.parse(responseBody); // console.log(customer); tests["Valid Data1"] = tv4.validate(customer, customerSchema); //验证json中的errCode类型是integer,并且验证最小值和最大值区间、验证长度区间 -
测试前准备
发送请求之前往往需要准备数据,比如设置header中参数或者计算签名.
使用Pre-request Script可以编写一些准备数据.
-
在header头中引入刚刚设置{{timestamps}}环境变量.
-
可以看到header中已经填写了时间戳参数.
-
请求前编写加密算法
var username = "test";
var pwd = "123321"; var base64Str = CryptoJS.enc.Utf8.parse(username+pwd); var token = CryptoJS.enc.Base64.stringify(base64Str); postman.setGlobalVariable("token",token); console.log(token); // 使用账号+密码的base64位加密算法 -
header头中携带生成加密的token变量
-
服务端使用base64位解密