newman的安装就不说了主要说怎么使用
- newman执行postman collections:
- 第1步,导出collections的json文件,collections对应的环境变量文件,collections对应的数据驱动文件
- 第2步, 在命令行窗口,cd到collections的json文件所在目录,执行newman命令运行测试集
- 报告样式---html文档
- 报告样式---命令行
- 具体命令:
- 输出html格式的报告
newman run ddt-login-api.postman_collection.json -d Ddt.csv -r cli,html --reporter-json-export tesidingreport.html #ddt-login-api.postman_collection.json #Ddt.csv. -d #cli,html -r #--reporter-json-export 文件名.html #-e 这里的例子没有用到环境变量,环境变量文件格式一般也用json 比如 -e environment_logins.json
- 输出json格式的报告
-
#把命令行里的html换成json就可以了,其他不变 newman run ddt-login-api.postman_collection.json -d Ddt.csv -r cli,json --reporter-json-export tesidingreport.html #ddt-login-api.postman_collection.json #Ddt.csv. -d #cli,json -r #--reporter-json-export 文件名.json #-e 这里的例子没有用到环境变量,环境变量文件格式一般也用json 比如 -e environment_logins.json
- 输出html格式的报告
在 postman 中封装了我们常见的断言(Tests),当然 Tests 除了可以作为断言,还可以当做后置处理器,经常应用于:
【1】获取当前接口的响应,传递给下一个接口
【2】控制多个接口间的执行顺序。断言对象有哪些?如何使用?
- 1】校验接口响应的状态码,常见的有 200、404、500当然也包括前面鉴权学到的 401 等等。
pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
- 2】检查响应信息中是否包含某些指定的字符串;
pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
- 3】检查从JSON响应中获取到某个字段,判断其是否与预期字段一致;
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); });
- 4】检查实际获取的响应体(即 Body 信息)与预期结果的响应体是否一致;
pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); });
- 5】检查响应中的头域信息(Headers)是否与预期一致。
pm.test("Content-Type is present", function () { pm.response.to.have.header("Content-Type"); });
- 6】判断实际响应时间是否与低于预期时间。
pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });
- 7】检查响应码是否与预期集合中的某个值一致。
pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); });
- 8】检查响应信息中是否包含某个预期值
pm.test("Status code name has string", function () { pm.response.to.have.status("Created"); });
- 9】转化XML格式的响应成JSON对象
var jsonObject = xml2Json(responseBody);
postman中变量作用域
- global变量:作用域最广,在整个postman中都会生效
- collection变量:在collection中设置,也只有在当前collection中才会生效
- environment变量:只有选择了相应的environment来执行执行send,才会
- environment中设置的变量值。这个场景类似于,在sit环境中测试或者在uat环境中测试,post可以用environment来管理两个测试环境及其相应的变量参数
- data变量:这是引用外部文件,例如CSV或者json文件,用于参数化
- local变量:由于postman支持同步协作,local变量是只在本地生效,不会同步。这个场景适用于,你在本地调试接口,你不想影响其他人调用接口的参数,就可以设置local变量值
- 以上各种变量尽量不要同名,如果同名,postman会默认取global的变量值。
- 以两个花括号引用:{{变量名}}