一、前言
pm对象只能在Postman本地应用版本中使用,不能早Chrome浏览器的Postman插件中使用。
二、pm.cookies对象
pm.cookies对象包含一个与请求所创建的域相关的Cookies列表。
pm.cookies.has(cookieName:String):Function -> boolean
检查所请求的域是否存在一个特定的Cookie(由他的名称处理)。
pm.cookies.get(cookieName:String):Function ->string
获取特定Cookie的值
pm.cookies.toObject:Function -> object
以对象的形式获得请求对应的Cookies和Cookies的值。
pm.test(testName:String, specFunction:Function):Function
此函数用于在沙箱中编写测试规范。在这个函数中编写测试可以准确地命名测试,并确保在这个函数内出现任何错误的情况下,脚本的其余部分不会被阻塞。
在下面的示例测试中,检查所有关于响应的内容是否有效。
pm.test("response should be okay to process",function () {
pm.response.to.not.be.error;
pm.response.to.hava.jsonBody(' ');
pm.response.to.not.have.jsonBody('error');
});
pm.expect(assertion:*):Function -> Assertion
pm.expect是一个通用的断言函数。这是ChaiJs expect BDD库,使用这个库,可以编写可读性很高的测试。pm.expect用于处理来自响应或变量的数据断言。
pm.test('environment to be production',function(){
pm.expect(pm.environment.get('env')).to.equal('production');
});
三、测试脚本中的响应断言API
Postman提供的测试脚本断言包含一下API
pm. response.to.have.status(code : Number )
pm. response.to.have.status (reason:String)
pm. response . to.have.header (key:String)
pm. response . to.have.header (key:String,optionalValue:String)
pm. response. to. have . body ()
pm. response. to. have . body (optionalValue:String)
pm. response. to. have . body (optionalValue:RegExp)
pm. response. to . have.jsonBody()
pm. response. to . have.jsonBody(optionalExpectEqual:Object)
pm. response. to . have.jsonBody(optionalExpectPath:String)
pm. response. to. have .jsonBody (optionalExpectPath: String, optionalValue:*)
四、.*
通过对象属性,可以断言预定义的规则。
①pm.response. , 检查响应码是否为1 X X,如果是则断言为真,否则为假。
②.success, 检查响应码是否为2 X X,如果是则断言为真,否则为假。
③ .redirection, 检查响应码是否为3 X X,如果是则断言为真,否则为假。
④.clientError, 检查响应码是否为4 X X,如果是则断言为真,否则为假。
⑤.serverError, 检查响应码是否为5 X X,如果是则断言为真,否则为假。
⑥pm.responsetoberror, 检查响应码是否为4 X X或者5 X X,如果是则断言为真,否则为假。
⑦.ok,检查响应码是否为200,如果是则断言为真,否则为假。
⑧.accepted,检查响应码是否为202,如果是则断言为真,否则为假。
⑨. badRequest, 检查响应码是否为400,如果是则断言为真,否则为假。
⑩.unauthorized, 检查响应码是否为401,如果是则断言为真,否则为假。
⑪. forbidden, 检查响应码是否为403,如果是则断言为真,否则为假。
⑫ pm.respose.to.be.noFound, 检查响应码是否为404,如果是则断言为真,否则为假。
⑬ .rateLimited,检查响应码是否为429,如果是则断言为真,否则为假。