postman 使用手册之脚本测试

脚本执行过程

单个
描述

集合执行流程
描述

脚本

  • 前置脚本
  • 后置脚本

断言测试

创建断言
描述
描述
描述

语法

  • 环境变量
//设置
pm.environment.set("variable_key", "variable_value");

var array = [1, 2, 3, 4];
pm.environment.set("array", JSON.stringify(array, null, 2));

var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
pm.environment.set("obj", JSON.stringify(obj));

// 获取环境变量
var value = pm.environment.get("variable_key");
// 清除环境变量
pm.environment.unset("variable_key");
  • 集合变量
//设置
pm.collectionVariables.set(variableName:String, variableValue:String);
//获取
pm.collectionVariables.get(variableName:String);
//移除
pm.collectionVariables.unset(variableName:String);
  • 全球变量
//设置
pm.globals.set("variable_key", "variable_value");
//获取
pm.globals.get("variable_key");
//移除
pm.globals.unset("variable_key");
  • 全局变量和活动环境中搜索变量
var value = pm.variables.get("variable_key");
  • 检查响应主体是否包含字符串
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);
});
  • 存在Content-Type标头
pm.test("Content-Type header 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);
});
  • 成功的POST请求状态代码
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});

断言测试例子

  • 是否存在子字符串
pm.test("Check if pattern is in target string",function () {
    pm.expect('foobar').to.have.string('bar');
});

//严格比较
const TEN = 10;
pm.test('Check if number is equal to 10', function () {
  pm.expect(TEN).to.equal(10);
});

//宽松
pm.test("Our JSON is loosely equal to the provided JSON", function () {
 pm.expect(data1).to.deep.equal(data2);
});
  • 目标的类型等于给定的字符串 type
pm.test("Check if target is string", function () {
 pm.expect('Postman').to.be.a('string');
});

pm.test("Check if target is an object", function () {
pm.expect({a: 1}).to.be.an('object');
});

pm.test("Check if target is undefined", function () {
 pm.expect(undefined).to.be.an('undefined');
});
  • 为空
 pm.test("Check if string is empty", function () {
     pm.expect('').to.be.empty;
    });
  • 目标包含所述属性

判断JOSN 的key 是否存很有帮助

  pm.test("Check if object contains the property", function () {
     pm.expect({a: 1}).to.have.property('a');
    });
  • 目标长度
  pm.test("Check the length of the target", function () {
     pm.expect('foo').to.have.lengthOf(3);
    });
  • 目标数组具有与给定数组集相同的成员
  pm.test("Check if the target has same members as the array set", function () {
     pm.expect([1, 2, 3]).to.have.members([2, 1, 3]);
    });

默认情况下,.members进行严格比较。
成员的顺序无关紧要。
描述

  • 目标包含所提供的项目
 pm.test("Check if the target array includes the number provided", function () {
     pm.expect([1, 2, 3]).to.include(2);//判断2是否在数组里面
    });

 pm.test("Check if the target object includes the properties provided", function () {
     pm.expect({a: 1, b: 2, c: 3}).to.include({a: 1, b: 2});
    });

更多断言语法

https://www.chaijs.com/api/bdd/

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。