详细讲解postman设置断⾔
postman在tests页签获取响应内容
postman在tests页签获取响应内容:
tests页签⽀持javascripts语法,可以把获取的响应内容放⼊定义的变量中。然后使⽤tests[变量名]进⾏输出1、获取响应⾏
var code = de; //获取响应状态码
var name = responseCode.name; //获取响应状态信息
2、获取响应头
var content_type = ResponseHeader('Content-Type') //获取响应头
var path = ResponseCookie('_ac_app_ua').path ; //获取cookie信息
3、获取响应正⽂
var body = responseBody;
postman在tests页签获取响应内容
postman在tests页签获取响应内容:
4、获取响应时间
var time = responseTime;
5、利⽤正则表达式截取部分响应正⽂
var title = body.match(new RegExp('<title>(.+?)</title>'))[1];
6、响应正⽂为json时,可以利⽤postman进⾏解析再获取部分响应正⽂
var jsondata = JSON.parse(responseBody); //把响应正⽂转化为json对象
var token = jsondata.access_token; //json对象名.键名
postman环境变量&全局变量设置
postman环境变量、全局变量设置:
在公司中,⼀般会存在开发环境、测试环境、线上环境等,如果需要在不同的环境下切换做接⼝测试,
显然我们需要把所有接⼝的域名进⾏修改,如果接⼝测试⽤例较多,那么修改会⾮常费⼒,postman可直接通过切换环境来实现多个环境中的参数切换。
postman设置环境变量:
1、点击右上⾓设置图标,选择Manage Environments--Add,在页⾯中设置环境信息,点击ADD;
2、然后在休要使⽤环境变量的地⽅使⽤{{环境变量名}}替换静态的固定值;
3、设置好后,在左上⾓的下拉框可以下拉来切换环境。
postman设置全局变量:
1、点击右上⾓设置图标,选择Manage Environments--Add,点击Globals进⼊全
局变量管理界⾯;
2、添加全局变量后,点击ADD;
3、然后在休要使⽤环境变量的地⽅使⽤{{全局变量名}}替换静态的固定值。
postman多接⼝顺序执⾏
Runner的使⽤:postman都是单独运⾏某个接⼝,⽽postman的Runner模块,可以实现真正意义上的⾃动化接⼝测试,它的主要功能如下:按顺序调⽤接⼝,执⾏⽤例;批量发送请求;对接⼝数据进⾏参数化
操作步骤:
1、左侧选择要批量执⾏的Collections
2、右侧选择接⼝和调整要执⾏的接⼝顺序
3、点击执⾏
postman设置接⼝关联:在实际的接⼝测试中,后⼀个接⼝经常需要⽤到前⼀个接⼝返回的结果,从⽽让后⼀个接⼝能正常执⾏,这个过程的实现称为关联。
在postman中实现关联操作的步骤如下:
1、利⽤postman获取上⼀个接⼝指定的返回值
2、使⽤postman全局变量保存上⼀个接⼝的值,代码如下:
postman.setGlobalVariable("全局变量名", str); 其中前⾯的参数为全局变量名称
,后⾯为变量
3、和之前引⽤全局变量⼀样,使⽤{{全局变量名}}即可。
postman实现参数化:
在实际的接⼝测试中,部分参数每次发送请求时都要唯⼀(⽐如注册),这时可采⽤postman把测试数据进⾏参数化处理。postman设置参数的形式主要
有三种:
内建变量实现
Pre-request Script页签中使⽤代码实现
外部⽂件的⽅式实现
postman实现参数化:
Postman有以下内建变量,适合⼀次性使⽤:
{{$guid}}//⽣成GUID
{{$timestamp}}//当前时间戳
{{$randomInt}}//0-1000的随机整数postman实现参数化postman实现参数化:
Pre-request Script页签中使⽤代码实现:
Pre-request Script为执⾏接⼝请求之前要做的操作,⽽tests是执⾏完请求要做的操作。内建变量⼀般放在Request⾥,我们也可以⽤代码在Pre-request Script中实现,⽤代码实现的好处是可以复⽤。
时间戳实现:
var times = w();
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));
随机整数实现:
const randomInt = (min, max) => Math.floor(Math.random() * (max -min + 1)) +
min;
postman实现参数化:
从多个选项中选择实现:
const getRandomValue = list => list[randomInt(0, list.length -1)];
const charsInName = ['王','李','张'];
随机⼿机号实现:
environment.randomMobile = `18${randomInt(100000000, 999999999)}`;
同步等待实现:
const sleep = (milliseconds) => {
java设置环境变量的方法代码const start = w();
while (w() <= start + milliseconds) {}
};
postman实现参数化:外部⽂件⽅式实现参数化:
在postman中,除了上述两种⽅法实现参数化,还可以利⽤外部数据⽂件(⽀持csv⽂件和包含json格式⽂本的数据)。外部数据⽂件⽬前是通过Runner页签可以进⾏导⼊。csv⽂件要在Collection Runner中⼯作,
第⼀⾏必须是在request中要使⽤的变量名,每⼀⾏是⼀条⽤例,并表⽰⼀次迭代。json⽂件你需要确保你的⽂件有键/值对数组。数组中的每个元素是键值对对象,代表⼀次迭代。key作为request中要使⽤的变量名,value作为key的取值。
postman实现参数化:外部⽂件⽅式实现参数化步骤:
1、准备要使⽤的测试数据⽂件;
2、在postman脚本中,HTTP requests中使⽤{{ key }}去引⽤,在script中使⽤data. key 或者data[“key”] 去引⽤;
3、打开Runner窗⼝,点击Data旁边的Select File按钮,导⼊参数化⽂件;点击Data File Type类型后,点击Preview按钮,检查是否数据正确,如果不正确,调整数据格式或编码;
4、设置迭代次数,每次迭代都将使⽤你的数据⽂件中的⼀⾏,如果迭代次数超过数据⽂件中的⾏数,将重复使⽤最后⼀⾏数据。postman定义公共函数:
在postman中,如下⾯的代码:
1、返回元素是否与预期值⼀致
var assertEqual=(name,actual,expected)=>{tests[`${name}:实际结果:
${actual} ,期望结果:${expected}`]=actual===expected;};
2、返回元素是否与预期值不⼀致
var assertNotEqual=(name,actual,expected)=>{tests[`${name}:实际结果:
${actual} ,期望结果:${expected}`]=actual!==expected;};
以上都是⾃定义的断⾔函数,还有之前课程中的参数化实现脚本,每次在使
⽤的时候都需要把代码进⾏复制粘贴,很不⽅便,可以使⽤公共函数来实现。
postman定义公共函数:
eval() 函数作⽤:可以接受⼀个字符串str作为参数,并把这个参数作为脚本代码来
执⾏。
举例:
var s = "var a = 10; var b = 20;"
eval(s);
var c = eval("a+b");
tests[c] = true;
var str = "var randomInt = (min, max) => Math.floor(Math.random() * (max -min
+ 1)) + min;";
eval(str);
tests[ randomInt(50,80) ] = true;
postman定义公共函数:
根据上⼀个PPT中eval()函数的应⽤和之前全局变量的知识,可以做如下操作完成公共函数的编写:
把定义好的函数作为字符串存放在变量中;把上⼀个定义的变量设置到全局变量中;
在需要使⽤函数的地⽅,使⽤eval()函数把全局变量中的值转换为代码进⾏执⾏备注:只能使⽤var定义的函数,不能⽤const
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论