当前位置: 首页 > news >正文

Postman接口断言上下游参数传递

断言

将测试断言数据写进到Test模块当中, 每次发送API请求的时候会自动进行断言检查数据。

常见的断言方法如下:

判断状态码:pm.response.to.have.status()

判断返回体: const responseJson = pm.response.json();pm.expect(responseJson.code).to.eql(0);

判断返回头:pm.response.headers.get()     

拿气象局获取添加接口举例说明

url中填写:http://weather.cma.cn/api/climate?stationid=54511

在test模块添加下列代码

​​


//判断状态码
pm.test("Status code is 200", function () {
  pm.response.to.have.status(200);
});

//如果返回格式为JSON, 判断返回内容
pm.test("The response has all properties", () => {
    //parse the response JSON and test three properties
    const responseJson = pm.response.json();
    pm.expect(responseJson.code).to.eql(0);
    pm.expect(responseJson.msg).to.eql('success');
    pm.expect(responseJson.data.data).to.have.lengthOf(12);
});


//返回内容包含某字段
pm.test("Body contains string",() => {
  pm.expect(pm.response.text()).to.include("beginYear");
});

//返回状态码只要满足其中一个则表示成功
pm.test("Successful POST request", () => {
  pm.expect(pm.response.code).to.be.oneOf([200,201,202]);
});

//判断返回头内容是否满足要求
pm.test("Content-Type header is application/json", () => {
  pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json;charset=UTF-8');
});

pm.test("Content-Type header is application/json", () => {
  pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');
});

//判断返回是否携带JSESSIONID
pm.test("Cookie JSESSIONID not is present", () => {
  pm.expect(pm.cookies.has('JSESSIONID')).to.be.false;
});


//判断返回题字段类型
const jsonData = pm.response.json();
pm.test("Test data type of the response", () => {
  pm.expect(jsonData).to.be.an("object");
  pm.expect(jsonData.msg).to.be.a("string");
  pm.expect(jsonData.code).to.be.a("number");
  pm.expect(jsonData.data.data).to.be.an("array");
  pm.expect(jsonData.website).to.be.undefined;
//  pm.expect(jsonData.email).to.be.null;
});

上下游参数传递

首先需要明确如何设置参数, 参数是环境变量还是全局变量。此处以环境变量举例说明, 打开postman之后点击设置,由于我们是环境变量点击import, 我最近在拿中国气象局接口练手, 所以以气象局接口举例说明。 从接口https://weather.cma.cn/api/weather/view?stationid=取到的id赋值给下一个接口(具体获取方法如下图), 获取成功可以点击查看标识检查数据是否获取成功。再后续接口中使用{{stationid}}即可使用, 如{{url}}/api/climate?stationid={{stationid}}

 

 

 

var jsonData = JSON.parse(responseBody)
postman.setEnvironmentVariable("stationid",jsonData.data.location.id);

 

具体可参考:

Postman官方文档:

Introduction | Postman Learning Cent

相关文章:

  • Amazon S3 Compatibility 兼容API 封装AWS S3工具类 生成预前面url跨域问题解决
  • 请问各位大神如何写论文的摘要?
  • C++ 基础语法
  • 什么是ForkJoin
  • OpenCV-漫水填充cv::floodFill
  • 【精品】SpringSecurity在前后端分离项目中的应用
  • MySQL知识点总结_1
  • 深入理解Python生成器
  • SpringBoot+Vue项目校园商铺系统
  • “不学数学就去当厨子”,兰大校友入选全球竞赛最强10人,决赛最后几小时才想起做题...
  • Python基础_判断语句(if、elif、else)、if 嵌套、逻辑运算符(and、or、not )、随机数的处理
  • 【C语言】小游戏系列——扫雷(内含详细过程)
  • C++系列文章 —— 类和对象篇(上)(从入门到精通合集)
  • 7.5 文件系统
  • java计算机毕业设计伊伊物流公司的管理系统源码+数据库+系统+lw文档+部署
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • DataBase in Android
  • pdf文件如何在线转换为jpg图片
  • react-native 安卓真机环境搭建
  • WinRAR存在严重的安全漏洞影响5亿用户
  • Zepto.js源码学习之二
  • 分类模型——Logistics Regression
  • 欢迎参加第二届中国游戏开发者大会
  • 技术发展面试
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 那些年我们用过的显示性能指标
  • 浅谈Golang中select的用法
  • 悄悄地说一个bug
  • 双管齐下,VMware的容器新战略
  • 思考 CSS 架构
  • 通过几道题目学习二叉搜索树
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #、%和$符号在OGNL表达式中经常出现
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (007)XHTML文档之标题——h1~h6
  • (4) PIVOT 和 UPIVOT 的使用
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (全注解开发)学习Spring-MVC的第三天
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • ***监测系统的构建(chkrootkit )
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET实现之(自动更新)
  • //解决validator验证插件多个name相同只验证第一的问题
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [Android]使用Git将项目提交到GitHub
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [BJDCTF2020]The mystery of ip
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]