首页 > 其他分享 >postman教程(五)postman请求参数化

postman教程(五)postman请求参数化

时间:2022-09-04 13:44:13浏览次数:72  
标签:教程 postman test 参数 key variable 请求 Math pm

请求参数化
数据参数化是Postman最有用的特征之一。你可以将使用到的变量进行参数化,而不是使用不同的数据创建相同的请求。
这些数据可以来自数据文件或环境变量。参数化有助于避免重复相同的测试,可用于自动化迭代测试。
postman参数化的形式主要有三种:
1、内置变量实现
内建变量为postman自带的系统变量

Variable Name Description Examples
{{$guid}} 添加一个V4风格的GUID “611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4”
{{$timestamp}} 添加当前的时间戳,精确到秒 1562757107 , 1562757108 , 1562757109
{{$randomint}} 添加0-1000之间的随机整数 0-1000之间的随机整数
{{$randomFullName}} 随机英文全名(名字 姓氏) Connie Runolfsdottir , Sylvan Fay , Jonathon Kunze
{{ $randomBoolean}} 随机布尔值 (true/false) true , false , false , true

更多内置变量可参考:https://blog.csdn.net/minzhung/article/details/102531880 内建变量一般放在request里

2、使用Pre-request Script实现

  • 首先先获取一个随机数, Math.random()是JavaScript中一个获取随机数的方法
    var test = parseInt(Math.random()*9);

  • 如果我们要调试结果,可以把获取到的随机数在postman的控制台(console)中打印出来,console的入口在postman的页面下方
    console.info("随机生成test为",test)

  • 把生成的数字生成一个全局变量,方便请求参数中引用
    pm.globals.set("test", test);

  • 最后在请求参数中引用变量{{test}}

  • 点击发送接口,发送从成功后,可以通过控制台(console)中查看此次发送接口的请求参数


    常见的方法如下:

    pm.environment.get("variable_key"); // 获取环境变量
    pm.globals.get("variable_key"); // 获取全局变量
    pm.variables.get("variable_key"); // 获取变量,该函数在全局变量和当前环境变量中搜索变量
    pm.collectionVariables.get("variable_key"); // 获取集合变量
    pm.environment.set("variable_key", "variable_value"); // 设置环境变量
    pm.globals.set("variable_key", "variable_value"); // 设置全局变量
    pm.collectionVariables.set("variable_key", "variable_value"); // 设置集合变量
    pm.environment.unset("variable_key"); // 删除环境变量
    pm.globals.unset("variable_key"); // 删除全局变量
    pm.collectionVariables.unset("variable_key"); // 删除集合变量
    pm.sendRequest("https://postman-echo.com/get", function (err, response) {console.log(response.json());});// 发送请求
    
    //1、获取当前时间戳并设置全局变量
    var now_time = Date.now();
    pm.globals.set("now_time", now_time);
    //2、获取guid值并设置全局变变量 
    const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
    .replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
    .replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
    pm.globals.set("guid_value", guid);
    //3、获取随机整数并设置全局变量,随机整数值的范围可以设置(9,15)
    const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;//随机数和手机号生成的前提
    pm.globals.set("random_number", randomInt(8,14) );
    //4、从多个选项中选择实现
    const getRandomValue = list => list[randomInt(0, list.length - 1)];
    const charsInName = ['王','李','张'];
    pm.globals.set("people_name", getRandomValue(charsInName) );
    //5、生成随机手机号
    var mobile_num = `13${randomInt(500000000, 599999999)}`;
    pm.globals.set('mobile_num',mobile_num);
    //6、设置等待时间,毫秒级别
    const sleep = (milliseconds) => {
    const start = Date.now();
    while (Date.now() <= start + milliseconds) {}
    };
    sleep(5000);
    
  • 如果觉得使用创建全局变量,再引用的方式太繁琐,也可以在Pre-request Script中直接添加参数,代码如下:

//定义一个随机数(600, 700)之间
var test = parseInt(Math.random()*9);
//打印出生成的随机数,便于调试
console.info("随机生成test为",test)
// 在body中添加参数test,并且值为随机数
pm.request.body.formdata.add({'key':'test','value':test});


3、外部文件的方式实现,通过csv文件或者json格式的文件实现参数化
3.1csv的运用,首先通过在文件中设置参数名及参数值
关键字之间需要用英文逗号分隔开,第一行写定义的参数变量,切记需要以utf-8的编码格式、.csv的文件后缀名保存,点击runner按钮

引用CSV文件参数

设置run参数

查看测试结果

3.2通过json格式的文件实现参数化,导入文件的时候记得校验文件是否为json

​注意:
iteration设置迭代次数,每次迭代都会使用数据文件中的一行,如果迭代次数超过数据文件中的行数,将会重复使用最后一行数据。

4、环境变量设置:

标签:教程,postman,test,参数,key,variable,请求,Math,pm
From: https://www.cnblogs.com/wyunuo/p/16654954.html

相关文章

  • Python 中的冒泡排序和解释 - 教程。
    Python中的冒泡排序和解释-教程。冒泡排序是您比较相邻值并相应地交换它的地方。这种排序算法有一些应用,其中一些是对数据库中的数据进行排序,例如:按价格对亚马逊产品进......
  • postman教程(四)-创建请求及添加参数
    一、处理GET请求Get请求用于从指定的URL获取信息,不会对端点进行任何更改。在Postman的工作区中:1、选择HTTP请求方式为GET2、在URL区域输入链接:https://jsonplacehol......
  • 使用媒体查询的响应式菜单 - 教程
    使用媒体查询的响应式菜单-教程HTML在HTML中,我们有标题和菜单。在菜单项中,我们有桌面和移动元素。屏幕大于500px时显示桌面,小于500px时显示手机。在移动类中,我们将......
  • PS新手教程 --如何使用ps将普通图片制成发光创意效果海报
    如何使用ps将普通图片制成发光创意效果海报?给大家介绍如何使用ps将普通图片制成发光创意效果海报,一起来看看吧。发光创意效果海报图如下1、打开ps,导入素材并且复制一个......
  • PS新手教程 --如何使用PS融合图片?
    如何使用PS融合图片?给大家介绍如何使用PS融合图片,一起来看看吧。1、用ps打开两张图片。2、用快速选择工具把这个人抠出来,按键Ctrl+J。3、人物图片拖移到风景图片中,拖......
  • postman教程(三)postman各模块介绍
    一、顶部及左侧工作栏1、MyWorkspace-可以单独或以团队的形式创建新的工作区。2、New,可以创建新的请求、集合或环境;还可以创建更高级的文档、MockServer和Monitor......
  • 页面请求 Waiting (TTFB) 时间过长
     这个Wating(TTFB)可以理解是指从客户端开始和服务端交互到服务端开始向客户端浏览器传输数据的时间(包括DNS、socket连接和请求响应时间),是能够反映服务端响应速度的重要......
  • postman教程(一)下载安装
    一、下载下载地址:https://www.postman.com/downloads/二、安装1、下载到电脑之后直接双击安装软件,postman会自动安装2、安装成功完成,自动启动postman,并在桌面创建快......
  • MySQL教程 - 触发器(Trigger)
    更新记录转载请注明出处。2022年9月4日发布。2022年9月4日从笔记迁移到博客。触发器说明一段SQL语句一种特殊的存储过程不可以自己手动调用,在触发条件下自动调......
  • MySQL教程 - 存储过程与自定义函数(Produce & Function)
    更新记录转载请注明出处。2022年9月4日发布。2022年9月4日从笔记迁移到博客。存储过程与函数说明存储过程和函数是一条或多条SQL语句的集合存储过程的返回值通......