Postman实战篇:实现场景接口自动化

接口运行步骤

  • 按照顺序正序执行
    Postman实战篇:实现场景接口自动化_第1张图片
    实际上这种执行顺序并不能满足需求,比如:此处是Task处理接口与Task列表接口,循环这两个接口,直到完成所有任务后停止。需要人为的设计脚本,放置在代码区。
var data = JSON.parse(responseBody);
pm.collectionVariables.set("taskId", data.data[0].taskId);
pm.collectionVariables.set("busiCode", data.data[0].busiCode);

if(null != data.data[0].taskId){
     
    postman.setNextRequest("spmsgSubmit");//指定下一个执行接口
}else{
     
    postman.setNextRequest(null);//停止循环
}
postman.setNextRequest("findTaskListapp");

参数化数据驱动
断言–查看报告
在之前的文章中有介绍过一些通用的断言脚本,这里根据实际需求组合了相关的断言。

//断言:以下条件满足且的关系
var data = JSON.parse(responseBody);
pm.test("Successful POST request", function () {
     
    pm.response.to.have.status(200);
    pm.response.to.be.ok;
    pm.response.to.be.json;
    pm.expect(data.code).to.eql("01");
    pm.expect(data.msg).to.eql("成功");
});

断言的深浅根据需求而定,但需要考虑性能相关影响。主要看此处你的测试点是什么,各司其职,物尽其用。
Postman实战篇:实现场景接口自动化_第2张图片
以上是测试报告结果,请求成功,但因为其中一个参数未取到值报错,需要在脚本中处理下,怎么处理呢?

var data = JSON.parse(responseBody);
if(0 != data.data.length){
     
    if(null != data.data[0].taskId){
     
        pm.collectionVariables.set("taskId", data.data[0].taskId);
    }
    if(null != data.data[0].busiCode){
     
        pm.collectionVariables.set("busiCode", data.data[0].busiCode);
    }

if(null != data.data[0].taskId){
     
    postman.setNextRequest("spmsgSubmitNO");
}else{
     
    postman.setNextRequest(null);
}

}
//也可以利用函数查询data内容是否为空。
console.log(pm.response.json().total)

Collection Runs值得注意的一点:一定一定要保存之后运行。
参考文章:常用函数列表

你可能感兴趣的:(#,postman)