Scriptjson
Postman 提供了一个强大的基于 Nodejs 的运行环境,容许开发人员在请求或集合中填加动态行为,如编写测试用例,动态参数,请求以前传递数据等。Postman 提供了两个事件来填加 Javascript 代码来实现特定行为。分别为
1.pre-request script 在请求发送以前
2.test script 在响应完成以后api
简单的测试用例数组
响应参数dom
{"statusCode":200,"result":["swimwear","bikinis","two-piece outfits","tops","dresses","tees"],"msg":""}
测试脚本post
// example using pm.response.to.have pm.test("response is ok", function () { pm.response.to.have.status(200); // 响应状态码必须为200 }); pm.test("response must be valid and have a body", function () { // assert that the status code is 200 pm.response.to.be.ok; // 响应体是否OK pm.response.to.be.json; // 响应体是否为 json 格式,它也会较验响应体是否存在,若是写了这个,上面这个断言就没有必要了 }); pm.test("response is correct", function () { var jsonData = pm.response.json(); pm.expect(jsonData.statusCode).to.equal(200); // 响应体 statusCode 字段值等于200,区分数据类型,如响应的字段串200,那这里就较验通不过 pm.expect(jsonData.result).to.be.an('array') // 响应体 result 字段必须是个数组 }); // json schema 较验 var schema = { "items": { "type":"string" } } pm.test("响应参数格式不合法", function () { var jsonData = pm.response.json(); pm.expect(tv4.validate(jsonData.result, schema)).to.be.true; // scheme 较验是经过 tv4 这个类库来实现的,Postman 内置了它,并不须要额外填加 })
pm.response 表示获取到响应体
pm.response.to.be 声名预约义的规则,如 pm.response.to.be.json 表示响应体为 json 格式。测试
变量ui
变量有5种类型,从外到里优先级从低到高spa
变量读取经过双大括号包围 {{variable}}.net
变量传递能够经过设置设量来实现code
pm.globals.set() // 全局变量 pm.environment.set() // 环境变量 pm.variables.set(); // 本地变量
同时还提供了三个动态变量
{{$guid}} //添加v4风格的guid {{$timestamp}} //添加当前时间戳 {{$randomInt}} //添加0到1000之间的随机整数
循环和分支
在实现真实逻辑时,每每须要根据不一样的状况作不一样的操做,执行不一样的接口。能够经过
postman.setNextRequest("request_name")
request_name 为自已时表示循环,切注循环必定要有结束条件
postman.setNextRequest(null) //这个表示结束执行流程
参考
断言脚本语法:https://www.chaijs.com/api/bdd/
JSON Scheme 自动生成:https://www.jsonschema.net/