Postman 断言和返回数据提取

发表于:2023-1-04 09:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:逆流的鱼2016    来源:博客园

  一、环境变量和全局变量
  1.1 环境变量
  环境变量是用来标识不同的测试环境的,例如可以有沙箱环境、预生产环境和生产环境。在postman中,可以通过创建环境变量按钮来不同的变量。
  不同的开发,测试,生产环境通过双大括号{{url}}来引用环境变量。
  1.2 全局变量
  全局变量是指可以在任意接口引用的变量,其中环境变量也是全局变量的一种形式。通过双大括号的形式来引用。
  {{变量名}}
  二、接口关联
  2.1 json提取器实现接口关联
  第一个接口
  //通过json提取器提取access_token值
  //把返回的字符串格式数据转换为对象的形式
  var result = JSON.parse(responseBody);
  //把access_token设置为全局变量
  pm.globals.set('access_token',result.access_token);
  第二个接口
  {{access_token}}
  2.2 正则表达实现接口关联
  第一个接口
  //通过正则表达式提取器实现接口关联,match匹配,.*?匹配任意字符
  var result = responseBody.match(new RegExp('"access_token":"(.*?)"'))
  console.log(result[1])
  //把access_token设置为全局变量
  pm.globals.set('access_token',result[1]);
  第二个接口
  {{access_token}}
  2.3 从xml返回的数据中提取关键字
  返回信息:
  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <securityPinTransmission xmlns="http://www.aws.com/mobbed/rolesAndRights">
      <challenge>86E3498793E8D2FA1D2FE3F60A2BFFF6C1FB22B20A29F86B250E0A9003F3293D</challenge>
      <hashProcedureVersion>2</hashProcedureVersion>
  </securityPinTransmission>
  Tests脚本:
  //将xml的返回值转为json格式
  var DATA = xml2Json(responseBody);
  //获取challenge的值,并将其设置为全局变量,按照原来的xml标签对,逐级向下获取
  pm.globals.set('challenge',DATA.securityPinTransmission.challenge);
  如果xml的标签对中包含特殊字符,如冒号,则不能使用DATA.XX 的方式来获取,需要用中括号+单引号来获取。
  // 将xml格式转为json格式
  var data = xml2Json(responseBody);
  //将返回值输出到控制台调试 key=ns3:certificate,需要用['ns3:certificate']来表示,不要加点
  console.log(data['ns3:certificate']['ns3:service'][0]['ns1:dirt']['ns1:APN']);
  // 定义变量来接收制定的返回值,
  var test_dyn = data['ns3:certificate']['ns3:service'][0]['ns1:dirt']['ns1:APN']
  // 设置test_dyn为全局变量
  pm.globals.set("test_dyn", test_dyn);
  2.4 响应断言中使用if判断
  判断响应码:
  if(tests["code is 409"] = responseCode.code === 409){ 
      pm.test("Body matches string", function () {
          pm.expect(pm.response.text()).to.include("The vehicle is already linked to the  user");
      });
  }
  else{
      pm.test("Status code is 200", function () {
          pm.response.to.have.status(200);
      });
  }
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号