postman 参数化详解

摘要:
在接口测试中,部分参数每次发送请求是都要唯一的数值,这时可以采用把测试数据参数化处理的方式实现,postman参数化的形式主要有三种1、内置变量实现内建变量为postman自带的系统变量,但是不能进行精确化的对比VariableNameDescriptionExamples{{$guid}}添加一个V4风格的GUID“611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4”{{$

在接口测试中,部分参数每次发送请求是都要唯一的数值,这时可以采用把测试数据参数化处理的方式实现,postman参数化的形式主要有三种

1、内置变量实现

内建变量为postman自带的系统变量,但是不能进行精确化的对比

Variable NameDescriptionExamples
{{$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页签中使用代码实现

单一请求执行顺序如下图所示:

postman 参数化详解第1张

Pre-request-Script→request→response→Tests

这是比较推荐的一种参数化方法,可以通过自己写脚本的方式,提高了可塑性,

值得注意的是接口测试执行时接口会先执行这里的代码,然后发送请求,最后进行断言,与test一样都支持js语法

Pre-request-Script为执行接口请求之前要做的操作,而tests是执行完请求要做的操作,内建变量一般放在request里,我们

也可以用代码在pre-request-Script中实现,用代码实现的好处是可以复用,以下为部分举例:

示例一、Pre-request-Script先定义当前时间并获取,把当前时间设置为全局变量后传入请求参数中,然后在Tests中进行断言

postman 参数化详解第2张

postman 参数化详解第3张

二、下面是其他部分参数化方式的实现

postman 参数化详解第4张

代码如下

var now_time = Date.now();
pm.globals.set("now_time", now_time);

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);

const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

pm.globals.set("random_number", randomInt(8,14) );

const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','张'];
pm.globals.set("people_name", getRandomValue(charsInName) );

var mobile_num = `13${randomInt(500000000, 599999999)}`;
pm.globals.set('mobile_num',mobile_num);

const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
};
sleep(5000);

3、外部文件的方式实现

一、通过csv文件或者json格式的文件实现参数化

csv的运用,首先通过在文件中设置需要搜索的字段和搜索出来的结果

postman 参数化详解第5张

关键自之间需要用英文逗号分隔开,第一行写定义的参数变量,切记需要以utf-8的编码格式、.csv的文件后缀名保存,点击runner按钮

postman 参数化详解第6张

postman 参数化详解第7张

也可以在控制台查看具体运行结果

postman 参数化详解第8张

断言的期望结果如果也写入文件中的话,也可以在Tests断言中调用,这里不再举例

postman 参数化详解第9张

二、外部文件也可以通过json格式的文件实现参数化,导入文件的时候记得校验文件是否为json

postman 参数化详解第10张

postman 参数化详解第11张

值得注意的是iteration设置迭代次数,每次迭代都会使用你的数据文件中的一行,如果迭代次数超过数据文件中的行数,讲会重复使用最后一行数据

免责声明:文章转载自《postman 参数化详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PHP类型判断ROS(Robot Operating System)常用环境变量介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP中0、空、null和false的总结

<?php $test=0; if($test==''){ echo '<br />在php中,0即为空'; //被输出 } if($test===''){ echo '<br />在php中,0即为空'; //不被输出 } if($test==NULL){ echo '<br />在php中,0即为空';...

Oracle自定义函数

  自定义函数和存储过程类似,区别是,存储过程注重于处理某件事情,多和DML有关,而函数注重于获取某些数据,多和DQL有关 格式 CREATE OR REPLACE FUNCTION 函数名(参数 数据类型) RETURN 返回的数据类型 IS 变量名 返回的数据类型;-- 存储返回的数据 BEGIN -- 略 ,此处给变量赋值 RETURN...

R中.rda文件如何读取(专用)

一、问题描述和解决 在用R读取数据的时候,常见的一般是.txt或.cvs结尾的文件。突然遇见一个.rda结尾的文件一下子不知道如何读取。经过查资料和自己尝试,终于找到了读取的方法。 这里需要使用load函数,使用load(“文件名.rda”)即可将数据读取,但需要注意的是,有一点特殊的地方就是,读取出来,直接用变量名输出出来并不是文件里的数据,而是文件里...

sql server 的临时表和表变量

临时表 本地临时表   适合开销昂贵   结果集是个非常小的集合 -- Local Temporary Tables IF OBJECT_ID('tempdb.dbo.#MyOrderTotalsByYear') IS NOT NULL DROP TABLE dbo.#MyOrderTotalsByYear; GO CREATE...

jmeter 中的 Beanshell 使用

一、操作变量:通过使内置对象vars可以对变量进行存取操作     a) vars.get("name"):从jmeter中获得变量值     b) vars.put("key","value"):数据存到jmeter变量中 二、操作属性:通过使用Bean shell内置对象props 可以对属性进行存取操作     a) props.get("STAR...

在ORACLE中存储过程变量名和表字段名相同

1.事件概述 今天再写存储过程使用变量没注意到问题,导致SQL执行缓慢,找了许久才发现哪里有问题。 2.发现问题 在存储过程中执行下图sql需要20秒左右,执行计划发现走了全表扫描,而在存储过程中相同的SQL不会有问题。 然后我单独把SQL拿出来跑,将变量名替换成真实数据,1秒就执行出来了,执行计划走了索引。 存储过程重新看了很久,是不是哪里有问题,变量...