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

postman变量,断言,参数化

环境变量

1.创建环境变量

正式环境是错误的,方便验证环境变化

2.在请求中添加变量

3.运行前选择环境变量

全局变量

能够在任何接口访问的变量

console中打印日志

console.log(responseBody);//将数据解析为json格式
var data = JSON.parse(responseBody);
console.log(data.access_token);

手动关联接口

方式一:json提取器

在第一个接口提取变量//获取access_token的值
var access_token = data.access_token;
//这个变量保存到环境变量中,这样大家都能用了
pm.environment.set("access_token", access_token);在第二个接口使用变量{{access_token}}

设为环境变量

//将数据解析为json格式
var data = JSON.parse(responseBody);
console.log(data.access_token);
//获取access_token的值
var access_token = data.access_token;
//这个变量保存到环境变量中,这样大家都能用了
pm.environment.set("access_token", access_token);

设为全局变量

方式二:正则表达式提取

第一个接口提取:
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(result[1]);
pm.globals.set("token",result[1]);第二个接口:
{{token}}

postman内置动态参数

{{$timestamp}} 时间戳

{{$randomInt}} 随机0-1000

{{$gui}} 随机guid

自定义动态参数

script->pre-request

var times= Date.now();
pm.globals.set("times",times)使用时
{{times}}

断言

断言一般包括

  1. 状态断言
  2. 业务断言

常用断言

pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});
pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);
});
pm.test("Body is correct", function () {pm.response.to.have.body("response_body_string");
});
pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type");
});pm.test("Response time is less than 200ms", function () {pm.expect(pm.response.responseTime).to.be.below(200);
});

自定义动态参数的断言

create-tag请求中

将动态参数在pre-request 

var tagname = "tag"+Math.random().toString(36).substring(2,15)
pm.globals.set("tagname", tagname);

body中使用tagname

{"tag": {"name": "{{tagname}}" //标签名   } } 
}

在断言中

添加方式

pm.globals.get("tagname")
globals.tagname
globals["tagname"]
pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});console.log(responseBody)
var tagid = responseBody.match(new RegExp('"id":(.*?),'));
console.log(tagid[1])//设置标签为全局变量
pm.globals.set("tagid", tagid[1]);
设置变量 tagname
tagname = pm.globals.get("tagname");
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.tag.name).to.eql(tagname);
});

全局断言

数据驱动

1.先写参数csv

2.在请求中设置对应参数

3.修改断言

4.执行测试用例时上传参数csv文件

http://www.lryc.cn/news/459827.html

相关文章:

  • Nginx实战指南:基础知识、配置详解及最佳实践全攻略
  • 百度搜索引擎(SEO)优化师的未来将何去何从?
  • 如何在UE5中创建加载屏幕(开场动画)?
  • 【WebGIS】Cesium:地形加载
  • 前端程序员策略:使用框架还是纯JavaScript?
  • npm 配置淘宝镜像
  • C++ include头文件的顺序以及双引号““和尖括号<>的区别
  • Flutter鸿蒙版本灵活使用方法间的回调处理复杂化的逻辑
  • 视频号直播自动回复与循环发送话术-自动化插件
  • springcloud之服务集群注册与发现 Eureka
  • C++:模拟实现list
  • 解锁5 大无水印热门短视频素材库
  • 【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库
  • AD9248驱动的简易示波器设计——FPGA学习笔记21
  • 微软十月补丁星期二发现了 118 个漏洞
  • 到底是微服务,还是SOA?
  • JDK17常用新特性
  • 【分布式微服务云原生】探索负载均衡的艺术:深入理解与实践指南
  • 拥抱云原生
  • 关于使用若依并快速构建系统的操作指南
  • 【分布式微服务云原生】 选择SOAP还是RESTful API?深入探讨与实践指南
  • HarmonyOS NEXT 应用开发实战(五、页面的生命周期及使用介绍)
  • C# 比较两个集合和比较对象
  • Spark高级用法-自定义函数
  • 『Mysql进阶』Mysql explain详解(五)
  • 【工具】音视频翻译工具基于Whisper+ChatGPT
  • 学成在线——关于nacos配置优先级的坑
  • Nginx在Windows Server下的启动脚本
  • 【国科大】C++程序设计秋季——五子棋
  • Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南