postman使用(三)

本文详细介绍了Postman Runner的使用,包括环境设置、循环次数、延迟时间、响应日志、数据文件读取及变量持久化。通过实例展示了如何从CSV文件读取数据执行循环,并通过流程控制实现错误处理,确保测试的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

postman使用(三)

上一篇我们已经实现了将前一个请求的响应值传递下来,那么接下来跑一下工程(collection)

一、Runner

runner,我个人把他称为执行器
这里写图片描述
打开runner界面,可以看到左边上方是collections,前面说过collection相当于一个工程,下面是执行的环境,循环次数,延时时间、log、数据文件、是否允许变量变化,右侧为执行结果,选择好要执行的collection,设置好下方的选择,点击run就开始执行了
这里写图片描述

二、Runner设置项

1、environment

不选择environment就无法使用对应环境变量,当然全局变量是可以使用的

2、iterations

循环次数,我们设置2跑一下看看
这里写图片描述
执行结果可以看到循环1和循环2

3、delay

延时…间隔多少ms发送下一个请求

4、log responses

这里写图片描述
em…理解不了,那就直接搞一下看看
这里写图片描述
这是for all requests
这里写图片描述
这是for failed requests,因为request是成功的,so,没记录response body,for no requests就不试了,总归就是都不记录的了

5、data

嗯,从文件读取数据,支持json和csv,我们试下csv
这里写图片描述
第一行是变量名(key),下面是值(value)
这里写图片描述
在变量配置处设置key,value=data.key,这里注意下,文件中的key名字要和引用时变量名一致,比如文件key为phone,变量设置key=mobile,value=data.phone,最后引用{{mobile}}这样是不行的,我也不懂为什么要这样限制,不是很友好
++++++++++++++++++++++++++++我是分割线+++++++++++++++++++++++++++++++++++++++
Sorry,分割线上方有误,现更正 当runner中使用datafile,无需设置environment variable,也就是无需设置那个value=data.XXX,所以也就解释了为什么引用时的key name必须和datafile中的key name一致的问题。。。比如发请求时引用{{mobile}},会直接去datafile中找mobile这个key,而不是去environment variable中找mobile这个key的value值data.XXX再去datafile中找XXX这个key
这里写图片描述
添加后可以发现iterations自动变成了文件中value的行数,每一行数据都会执行一个循环,run一下看看
这里写图片描述
iteration2的mobile传了第二条数据158,iteration1的mobile传了第一条数据136,done,由此我们也实现了从文件读取数据,可以在文件中准备测试数据了

6、persist variables

字面意思“保持变量”,好像读着不太明白,那继续搞一下看看,我们之前登录后存下了环境变量userkey,value是之前登录用户的userkey值,我们初始化变量值为111
这里写图片描述
把persist variables勾去掉,执行一下
这里写图片描述
看到userkey正常获取并传递使用,再来看环境变量
这里写图片描述
value还是111
我们把persist variables勾上再执行一下
这里写图片描述
再看一下环境变量
这里写图片描述
看下userkey的value,done!

三、流程控制

runner执行collection是将collection中的请求按顺序从上往下顺序跑,万一我们准备了一个错误密码的数据呢,我们把之前文件的密码改一个222222看看
这里写图片描述
emm…报错了,打开console再看一下,在View下可以找到show postman console,再跑一次看看
这里写图片描述
没有user对象,密码错误,接口返回的结构也就变了,没有了user也就拿不到userkey了,没有userkey也就没必要再调后续接口了,那我们就改下tests
这里写图片描述
加个if判断下是否登录成功,不成功则终止这轮iteration,成功则设置userkey环境变量
这里使用了postman.setNextRequest();方法,空值则代表终止,也可以填入自定义的接口name,或者collection中的顺序位置比如1、2、3等,指定下一个执行哪个request,保存一下,再次执行
这里写图片描述
没有报错,可以看到iteration1请求了checklogin后就终止了,记得指定request不要导致死循环

下一篇写postman的tests中我如何与数据库中的数据进行比较

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值